Und hier ist er, actindo ShopConnector für Shopware 3.5

Hallo alle zusammen, wir haben zwei kleine Probleme mit dem neuen Connector. Das erste, die Bestellnummer kann nicht mehr als Projektnr. übergeben werden hier zieht er sich nun die Order ID und nicht die Ordernumber machen wir hier was falsch? Das zweite ist das der Import der Bestellung nicht mehr richtig läuft hier bringt er bei der standard Auswahl den Fehler: Fehler beim laden der Tabelle: Verbindungsfehler mit dem Shop: Ungültige Rückgabe vom Server (XML error at line 1, check URL “(…)5520896 bytes exhausted (tried to allocate 86 bytes) in /engine/connectors/api/actindo/xmlrpc/xmlrpc.inc on line 3246”) Date: Thu, 12 May 2011 10:58:12 GMT Server: Apache/2.2.16 (Debian) X-Powered-By: PHP/5.3.3-7 Vary: Accept-Encoding Content-Length: 190 Connection: close Content-Type: text/html Fatal error: Allowed memory size of 205520896 bytes exhausted (tried to allocate 86 bytes) in /var/www/shopware.kabellager24.de/engine/connectors/api/actindo/xmlrpc/xmlrpc.inc on line 3246 ----------- ENDE DER DATEN VOM SERVER ----- Wenn wir aber aud alle Bestellungen klicken geht es was kann das sein? Läuft da irgend wo eine schleife? Wir hatten die PHP zu Memorysize zum Test auf 196 MB gesetzt was wirklich mehr als genug sein sollte. Hier dann noch eine kleinigkeit, wenn wir auf alle Bestellungen gehen und gerade keine zu importierende Bestellung da ist sag Actindo: Fehler beim laden der Tabelle: Verbindungsfehler mit dem Shop: Sonnst schein alles ganz sauber zu laufen.

@kabellager24 Genau dieses Problem habe/ hatte ich auch. Die Anzeige ist heute noch da und wurde Actindo bereits vor 2 Monaten gemeldet (ohne Lösung, da ja ein neue Connector in Arbeit war.) Dein Problem mit dem Speicher hatte ich vorher und teilweise heute noch und das ist viel ernster. Die Antwort von Actindo war: Du brauchst mindestens 512 MB RAM auf Deinem Server. Alles darunter funktioniert nicht. Ich mußte dafür sogar einen größeren Server anbieten. Trotzdem hat es Actindo bei mehreren Abfragen geschafft, auch die dann aufgestockten 1 GB RAM zu crashen. Der Shop war dadurch sogar offline und ist seitdem unter höherer Supportstufe beim Hoster. Die Diskussion mit Actindo, ob ein größerer RAM-Speicher erforderlich ist, hat mich mehrere Wochen gekostet. Antwort: 512 MB minimum Das Problem des Servercrashs trotz 1 GB RAM ist nach 2 Monaten noch nicht bearbeitet.

Zu dem Speicher Problem gibt es im Wiki eine Information, hilft die? http://wiki.actindo.de/wiki/index.php?t … tellimport [edit] wir haben die das memory limit für php auf 256M, primär für die Produkt Exporte, sonst klappen die nicht. und mit der Einstellung haben wir keinerlei Probleme [/edit] Bezüglich der Bestellnummer: beim actindo Support anfragen, die stellen im Hintergrund was um und dann klappt das auch mit dem Import der nummern (bei uns kommen sie sauber als Projektnummer an.

@ stephan redest du hier vom Server RAM Speicher oder vom PHP Memory Limit? Ich meine das PHP Memory Limit, der RAM Speicher ist groß genug liegt auf eine neuen IBM Kiste. @ronecker Danke für den Tipp hatte ich aber auch schon probiert und Bestellanzahl auf 30 reduziert und nun noch mal auf 15 das Problem bleibt bestehen. Wir setzen dann mal das Memory Limit von 196M auf 256M wie bei Ihnen mal sehen ob es Abhilfe schafft. Dazu noch eine Frage ist es denn ratsam einen PHP Skript so viel Speicher zu erlauben?

So haben es eben mal das Memory Limt auf 512 MB gesetzt Problem bleibt bestehen. Nun haben wir dem Shop mal den RAM Speicher auf 2 GB erhöht das Problem bleibt.

1 „Gefällt mir“

[quote=„stephan“]Ich habe schon lange gewartet, da reicht heute Abend auch :thumbup: Zu Nummer 1: die Übergabe der Inhalte der Felder funktioniert tadellos. Das Problem ist aber ein völlig unlogischer Streueffekt: wenn die Eigenschaften/ Filter aktiviert sind, wird die Preisgruppenfunktion in Shopware aktiviert, auch wenn es nur einen einzigen Grund-Preis gibt. Sind die Eigenschaften/ Filter nicht aktiviert, passiert der Fehler auch nicht Konsequenz: bei wirklich jedem Artikel mit Filtereigenschaften, der in Shopware hochgeladen wird, muss anschließend in Shopware der Haken Daten aus Preisgruppe manuell entfernt werden, damit die Anzeige des Preises wieder stimmt.[/quote] Es hat nichts mit Dir zu tun, nur zu dem Punkt fällt mir nur die nette englische Formulierung WTF ein :wink: In den ShopConnector lungert einsam und alleine ein Befehl rum der die Preisgruppe Funktion setzt … Hier der Fix: Geh in die Datei /shopware3.5/import_products.php des ShopConnectors. Dort findest Du in Zeile 52 folgenden Code $data['pricegroupID'] = 1; ersetze ihn durch // $data['pricegroupID'] = 1; if(!empty($product['pricegroupID'])) { $data['pricegroupID'] = $product['pricegroupID']; } else { $data['pricegroupID'] = 0; } if(!empty($product['pricegroupActive'])) { $data['pricegroupActive'] = $product['pricegroupActive']; } else { $data['pricegroupActive'] = 0; } Kurze Erklärung: In dem ShopConnector wird einfach der Wert aktiv gesetzt, das macht keinen Sinn. In früheren Versionen des Connects war der Befehl auch nicht vorhanden, auf der anderen Seite hat die Shopware API vor 3.5 auch nicht das stezen dieses Wertes erlaubt. Daher vermute ich das es ein Überbleibsel von actindo Programmiertests ist. Durch den doppelten Schrägstrich wird der fragliche Befehlt auskommentiert nur leider ist damit noch nicht das Problem beseitigt. Wir müssen aktive Fehlerkorrektur betreiben für die Artikel die den Wert schon gesetzt haben, daher die if Bedingung. Zusätzlich reagiert die Shopware-API auf gesetzte Filter mit setzen des Preisgruppen Häkchens. Ich tippe auf einen Bug in der Shopware-API, ich lasse das von Shopware noch mal überprüfen. Der Code oben behebt auf jeden Fall die Auswirkungen. Und hier möchte ich noch einen kurzen Disclaimer unterbringen, ich gebe hiert Tips nach bestem Wissen und Gewissen, nur ich kann keine Gewähr für die Korrektheit übernehmen. Falls es Euch beruhigt, das was ich hier poste setze ich auch produktiv bei uns ein, von daher funktioniert es auf mindestens einem System :wink:

1 „Gefällt mir“

[quote=„stephan“]> der unter Webshop - Produktstatus - Lieferstatus angegebene Wert wird nicht in Shopware - Lieferzeit (in Tagen) übergeben. Das hat vor 3.5 problemlos funktioniert[/quote] Es gibt mehrere Einstellungen in actindo die einen Einfluss auf den Lieferzeitwert haben. Ich arbeite mit folgender Annahme: In dem von Dir genannten Feld stellst Du eine Zahl ein, z.B. 10. Wenn Du nun ins Backend von Shopware gehst und Dir dort den Artikel anschaust, dann steht dort in dem Feld „Lieferzeit (In Tagen):“ ebenfalls der Wert 10. Unter dieser Annahme ist es eine Auswirkung der Template auf die Anzeige. In Shopware 3.5 wurde die Verfügbarkeitsanzeige zusammengefasst und in /templates/_default/frontend/plugins/index/delivery_informations.tpl gesteckt. Auf den Punkt gebracht, der Code der in dieser Template Datei steht ist verantwortlich für die Verfügbarkeitsanzeige an allen Stellen im Shop (Artikel, Warenkorb, etc). Es würde hier jetzt zuweit führen eine Schritt für Schritt Anleitung zu posten. Kurz die Eckpunkte zusammen gefasst - eigene Tempalte anlegen (falls noch nicht geschehen) - die oben erwähnte Datei in die neue Template Verzeichnisstruktur kopieren - die Datei den eigenen Wünschen nach anpassen. Nächte Annahme, Du hast die Artikel auf Lager, sprich Lagerbestand > 0 und Du möchtest ihnen nicht den „auf lager, geht heute raus“ text verpassen sondern den „lieferzeit 10 tage“ Dann mußt Du dafür sorgen das die Abfrage [code] {elseif $sArticle.shippingtime}

 

{se name=„DetailDataShippingtime“}{/se} {$sArticle.shippingtime} {se name=„DetailDataShippingDays“}{/se}

[/code] vor der Abfrage [code] {elseif $sArticle.instock > 0}
 

{s name=„DetailDataInfoInstock“}{/s}

[/code] steht. Die Datei ist im Endeffekt eine große If Abfrage und der erste Bedingung die greift wird angezeigt. Ich habe dort für uns eine komplexe Verkettung von mehreren Werten gemacht, die für unsere Anforderungen zugeschnitten ist und ich komme auf 25 Bedingungen …

[quote=„kabellager24“]So haben es eben mal das Memory Limt auf 512 MB gesetzt Problem bleibt bestehen. Nun haben wir dem Shop mal den RAM Speicher auf 2 GB erhöht das Problem bleibt.[/quote] Bei mir klingelt ganz dumpf was im Hinterkopf das actindo Probleme hat Bestellungen zu importieren wenn keine unbearbeiteten online sind. Ich bin mir jetzt nicht mehr sicher ob der Automator da auch noch irgendwie mit rein spielt. Die Lösung war auf alle Fälle eine Bestellung in Shopware anzulegen, die nach actindo zu importieren und dann den Beleg dort zu stornieren. Im nächsten Schritt mußte dann der Bestellstatus in Shopware wieder auf einen Wert gesetzt werden der importiert wird. Ich habe für uns einen eigenen Bestellstatus angelegt, nur das würde hier den Rahmen mal wieder sprengen, versuche es eine mit dem normalen „Offen“. Ergebnis: Es ist immer eine Bestellung für den ShopConnector im Shop, sprich er ist ein happy camper denn er hat etwas zu bearbeiten. Da die Bestellung aber bereits in actindo ist wird sie nicht neu importiert. Die Bestellung wird dabei über interne Felder identifiziert, die in de GUI nicht angezeigt werden. Das hatte bei uns ein Problem behoben. Wenn ich so drüber nachdenke, war es glaube ich etwas mit dem Automator. Naja, probier es einfach mal aus, im schlimmsten Fall hast Du eine stornierte Bestellung mehr :wink: Und wenn das nicht hilft, einfach beim Support von actindo anrufen und dort das Problem schildern. Kannst den Support ja von mir grüßen, ich bin da bekannt wie ein bunter Hund :wink:

Fertig. Der nächste bitte :wink:

@ronecker: [quote]stephan hat geschrieben:> der unter Webshop - Produktstatus - Lieferstatus angegebene Wert wird nicht in Shopware - Lieferzeit (in Tagen) übergeben. Das hat vor 3.5 problemlos funktioniert Es gibt mehrere Einstellungen in actindo die einen Einfluss auf den Lieferzeitwert haben. Ich arbeite mit folgender Annahme: In dem von Dir genannten Feld stellst Du eine Zahl ein, z.B. 10. Wenn Du nun ins Backend von Shopware gehst und Dir dort den Artikel anschaust, dann steht dort in dem Feld “Lieferzeit (In Tagen):” ebenfalls der Wert 10.[/quote] Das Problem ist, dass der Wert gar nicht erst in Richtung Shopware übergeben wird. [quote]In dem von Dir genannten Feld stellst Du eine Zahl ein, z.B. 10. [/quote] Das Feld ist gepflegt :happy: [quote]Wenn Du nun ins Backend von Shopware gehst und Dir dort den Artikel anschaust, dann steht dort in dem Feld “Lieferzeit (In Tagen):” ebenfalls der Wert 10.[/quote] Und da taucht der Wert nach der Synchronisierung nicht auf.:frowning: :thumbup: Ein ganz großes Danke an ronecker, mit Deinen Tipps kommt man weiter (und vor allem wesentlich schneller) als bei jedem Versuch mit Actindo-Support.:thumbup:

1 „Gefällt mir“

Danke für die Blumen :sunglasses: Hm, das es nicht in Shopware ankommt verwirrt mich ein wenig, in meinem System kommt der Wert an. Hast Du eventuell noch andere Anpassungen am ShopConnector vorgenommen oder ist es die normale 2.386 Version mit meinen Anpassungen aus diesem Thema? Bitte kontrolliere folgende Felder, ich poste in Klammern meine Einstellungen mit denen es hier klappt Im Artikel > Webshop: - Lieferstatus (10) - Artikel auf Lager, ausgegraut (1) - Artikelstatus bei Lagerbestand <= 0: (Voreinstellung, keine Änderung) - Lieferstatus bei Lagerbestand <= 0: (Voreinstellung, 14 Tage) Faktura > Einstellungen > Webshop: Artikelstatus bei Lagerstückzahl <= 0: (keine Änderung) Lieferstatus bei Lagerstückzahl <= 0: (14 tage) Wenn das alles nicht hilft fällt mir nur noch ein das es ein Lagerartikel sein muß (Lageristik an, mit Lagerfach etc) Soweit meine Ideen

1 „Gefällt mir“

Der Tipp hat geholfen: im alten Connector haben wir nur das Feld - Artikelstatus bei Lagerbestand <= 0: gepflegt Dieser Wert wurde dann dauerhaft in Shopware übertragen, unabhängig davon, ob das Produkt auf Lager war oder nicht. Das Feld Lieferstatus bei Lagerstückzahl <= 0 haben wir nie verwendet, da es ja anscheinend nur dann an Shopware übergeben wird, wenn keine Ware mehr lagernd ist. Da wir aber auch viel in Shopware arbeiten (einige Variable lassen sich ja nur da pflegen), sollte die Lieferzeit immer in den Artikelstammdaten auftauchen. Mit dem neuen Connector wurde möglichweise die Zuordnung der Variablen vertauscht, oder das Feld Lieferstatus einfach lahm gelegt. Jetzt, da wir das wissen, pflegen wir einfach die andere Variable in Actindo und die Daten stimmen wieder. :thumbup: wieder einmal :thumbup:

1 „Gefällt mir“

@ronecker Danke für den Tipp den Eindruck das Actindo ein kleines Problem hat wenn keine Bestellung zu holen ist hatte ich auch schon nur der simple einfall eine Testbestellung anzulegen diese zu importieren, stornieren und im Shop wieder auf offen zu setzen, ist mir noch nich gekommeb genial DANKE. Nun haben wir nur noch einen Curl Error mit Time Out aber dazu senden wir später noch eine Server Log Datei an Actindo zum prüfen. Dann noch mal für spätere Fragen wie man die Bestellnummer als Projektnummer in den Actindo Beleg bekommt. Actindo -> Einstellungen -> Faktura -> Webshop -> Bestellimport -> Bestell-ID als Projektnummer -> Nein Gruß und Danke

1 „Gefällt mir“

[quote=“kabellager24”] Nun haben wir nur noch einen Curl Error mit Time Out aber dazu senden wir später noch eine Server Log Datei an Actindo zum prüfen. [/quote] Kann es sein das Ihr mit “gigantischen” Artikeln arbeitet? Ich meine Damit als Beispiel, Konfigurator mit vielen Varianten die dann auch noch jeweils viele Bilder haben. Da sind wir auch an Ausführungslimits gestoßen, ich glaube 39 Sekunden waren es was actindo in Standard für einzelne Befehle erlaubt, und da haben die 100 Artikelbilder bei uns beim besten Willen nicht rein gepasst. Probier es mal Abends, da ist das System von actindo performanter. Optional, der Support kann den wert bis auf 2 Minuten hoch schrauben. [quote=“kabellager24”] Dann noch mal für spätere Fragen wie man die Bestellnummer als Projektnummer in den Actindo Beleg bekommt. Actindo -> Einstellungen -> Faktura -> Webshop -> Bestellimport -> Bestell-ID als Projektnummer -> Nein[/quote] Wende Dich mit der Anfrage auch den Support von actindo, die stellen im Backend was um damit die Variablen richtig zugewiesen werden. Ich kann Dir als Referenz sagen das es bei uns funktioniert, sprich es ist möglich.

[quote=„ronecker“] [quote=„kabellager24“] Dann noch mal für spätere Fragen wie man die Bestellnummer als Projektnummer in den Actindo Beleg bekommt. Actindo -> Einstellungen -> Faktura -> Webshop -> Bestellimport -> Bestell-ID als Projektnummer -> Nein[/quote] Wende Dich mit der Anfrage auch den Support von actindo, die stellen im Backend was um damit die Variablen richtig zugewiesen werden. Ich kann Dir als Referenz sagen das es bei uns funktioniert, sprich es ist möglich.[/quote] Das funktioniert bei uns nun nach dem wir das auf nein gesetzt haben, laut Actindo Support. Wenn es auf ja steht wird die OrderID genutz bei nein die Ordernumber so hat man mir es jeden Falls bei Actido erklärt und läuft nun. Bei unseren Artikel ist eigentlich nicht viel dabei, Text und 1-5 Bilder per Artikel sollte doch aber nicht bei Aufruf des Bestellimports relevant sein oder? Danke noch mal für die Tipps, probier ich heute Abend gleich mal.

So auch ein Beitrag von mir zu dem Thema der aktuellen & teilweise neu aufgetretenen Problematik mit dem Actindo Shopware Connector. Bei uns werden seit neustem die EANs nicht mehr übertragen, die Keywords ebenso nicht (funktionierte noch nie) und bei Preisänderungen und Pseudopreisen werden nur ca. 80 % geändert. Letzteres kann natürlich auch einfach mal so aufgetreten sein, und nichts mit Actindo zu tun haben. Grüße

Die EAN Problematik kann ich bestätigen. Ich hatte vor Veröffentlichung einen Fix dafür bei actindo eingereicht, sie haben ihn aber nur teilweise umgesetzt. Im Connector läuft die unglaublich intelligente logik ab - EAN (attr6) & FSK-18 (attr10) speichern, sind ja separat in actindo aufgeführt - dann attribute löschen - attribute (die zusatzfelder in actindo) speichern. Es ist schon etwas besser geworden, weil aus dem REPLACE INTO ein INSERT INTO … ON DUPLICATE KEY UPDATE wurde, aber das löschen der attribute ist immer noch drin. Ich möchte den Punkt elegant lösen, daher gib mir noch ein Moment zeit für den Fix. Bezüglich Keywrd, meinst du die eingabefelder über der produktbeschreibung? Die habe ich bisher noch nie angefasst, shopware erzeugt ja selbständig brauchbare keywords. Ich will mir die Felder aber gerne mal näher anschauen. Für den Fall das sie an Shopware gesendet werden müssen sie ja nur noch ordentlich gespeichert werden. Bei den Pseudopreisen habe ich noch keine wirklichen Referenzwerte, ich bin im Moment noch auf 3.0.5.1 mit der Live Umgebung und da funktioniert es wunderbar. Der Code hat sich zu 3.5 nicht geändert und in meinen Tests hat es bisher auch geklappt. Nutzt Du die Webshop werte für die Pseudopreise oder eine eigene Preisgruppe? Ist an den “funktioniert nicht” Artikel irgendetwas besonders oder anders als an den “es funktioniert” Artikeln?

[quote=“Alex”]Bei uns werden seit neustem die EANs nicht mehr übertragen, [/quote] Und hier die Lösung für Dich Gehe in die Datei /shopware3.5/import_products.php. In der unmodifizierten Version vor Zeile 434 folgenden Code einfügen und EANs werden im Attribut6 und FSK18 im Attribut10 gespeichert. $attribute\_translation = actindo\_attribute\_translation\_table(); foreach( $attribute\_translation as $shopware\_name =\> $actindo\_name ) { if( isset($product['shop']['art'][$actindo\_name]) ) $sql[] = "`{$shopware_name}`=".act\_quote($product['shop']['art'][$actindo\_name]); } Zur besseren Ortung, für die Nutzer die diese Datei schon angepasst haben, hier die die Umgebung der Stelle zum Einfügen } } [\<= HIER DEN CODE EINFÜGEN] if( count($sql) ) { $sql = "INSERT INTO `s_articles_attributes` SET `articleID`=".$art\_id.", `articledetailsID`=".(int)$data['articledetailsID'].", ". Wie immer, ich wünsche viel Erfolg beim nachcodieren. P.S. eine Frage in die Runde, hilft es wenn ich die Änderungen von mir gesammelt als diff Datei zur Verfügung stelle oder passt das hier mit den Antworten auf die einzelnen Problemen?

[quote=“Alex”] die Keywords ebenso nicht (funktionierte noch nie)[/quote] Soderle, gerade noch mal die Seite “Beschreibung” beim Artikel analysiert. Bei mir werden folgende Felder erfolgreich übertragen: - abweichender Artikelname (als Artikel-Bezeichnung) - Zusatz-Begriffe für Suche (als Keywords) - Artikel-Beschreibung (als Beschreibung) - Artikel-Kurzbeschreibung (als Kurzbeschreibung) Das sollte alles sein was Shopware von Hause aus anbietet, oder habe ich etwas übersehen?