[quote=“stephan”]Hier ein Problem noch einmal aufgegriffen: ab und zu ist es notwendig, von Shopware auf Actindo runterzuladen ein Fehler, der dies nötig macht, wurde ja von ronecker hier behoben (Thema neuer Artikel-Timestamp bei Bestellungen) Dadurch tritt aber das Problem auf, dass Actindo beim Runterladen von Shopware den Pseudopreis (aus Webshop-Reiter) abschneidet. Im Laufe der Zeit passiert dann Folgendes: Beispiel: Pseudopreis in Actindo: 7,99 > Hochladen in den Shop > Pseudopreis in Shopware: 7,99 < Runterladen auf Actindo < Pseudopreis in Actindo: 7,00 > Hochladen in den Shop > Pseudopreis in Shopware: 7,00 Es ist dann nahezu unmöglich, alle falschen Datensatz zu identifizieren und wieder auf die korrekten Daten zu bringen.[/quote] Ich habe mich dem Problem angenommen und ich muß gestehen, es fallen mir nur die Worte WTF ein. Sie sind nicht an dich gerichtet sondern an actindo und die Programmierer des ShopConnectors. Ich habe bei mir einen Artikel neu in Shopware angelegt und wollte diesen dann nach actindo importieren. Dabei wurden alle Preise falsch übergeben und zum Teil auch noch vernichtet. Ich habe folgende Fehler bei mir feststellen können. Wenn Ihr die selben Fehler bei Euch bemerkt dann ist der nachfolgende Fix die Lösung für Euch. Fehler 1) Die Preise (Pseudo & Artikelpreise) wurden am Komma abgeschnitten. Es wurde nur die Vorkommastelle übergeben. Sprich aus 7,25 EUR wurden 7,00 EUR. Wie gemerkt, sowohl bei den Pseudopreisen im Webshop Reiter als auch im Preise Reiter. Fehelr 2) Im Preise Reiter wurde bei mir immer B für brutto übergeben, obwohl ich Brutto und Netto Kundengruppen in Shopware habe und demzufolge im Artikel auch brutto und netto Preise eingebe. So wurde auf 3,25 für eine netto Kundengruppe beim Import 3,00 brutto. Fehler 3) Wenn ich Staffelpreise eingegeben habe, dann wurden der Grundpreis vernichtet (als 0 übergeben) und nur der Staffelpreis kam an. Und auf geht es an den Fix, diesmal ist er etwas komplizierter, dafür behebt er aber alle oben genannten Fehler. Datei /shopware3.5/util.php, Zeile 419 fortfolgende findet Ihr die Funktion export_price(). Sie sieht wie folgt aus function export\_price( $price\_netto, $net, $tax\_percent ) { // VORSICHT $net \> 0 ist BRUTTO, nicht netto if( !(int)$net ) return round( $price\_netto, 2 ); else return round( $price\_netto \* (1+($tax\_percent/100)), 2 ); }
Diesen Code ersetzt Ihr durch folgende Zeilen function export\_price( $price\_netto, $net, $tax\_percent ) { return round( str\_replace(',','.', $price\_netto ), 2 ); }
Und dann müssen wir noch eine zweite Stelle korrigieren. Datei /shopware3.5/export_products.php, Zeile 506 fortfolgende findet Ihr die Funktion _do_export_preisgruppen(). Im Original sieht sie so aus function \_do\_export\_preisgruppen( &$p, $articleprices, $pgruppe\_translation ) { // ACHTUNG: $price['net'] \> 0 ist BRUTTO!!!!! $p['preisgruppen'] = $p['products\_pseudoprices'] = array(); $prices\_by\_group = array(); // for now we always use EK as primary pricegroup foreach( $articleprices as $\_price ) { if( $\_price['pricegroup'] == 'EK' && $\_price['from'] == 1 ) { $p['is\_brutto'] = ((int)$\_price['net']) ? 0 : 1; $p['mwst'] = (float)$\_price['tax']; $p['grundpreis'] = export\_price( (float)$\_price['price'], $\_price['net'], $\_price['tax'] ); } $pg\_id = $pgruppe\_translation[$\_price['pricegroup']]; isset($prices\_by\_group[$pg\_id]) or $prices\_by\_group[$pg\_id] = array(); $prices\_by\_group[$pg\_id][] = $\_price; } foreach( $prices\_by\_group as $pg\_id =\> $prices ) { usort( $prices, '\_prices\_sorter' ); $p['preisgruppen'][$pg\_id] = array( 'is\_brutto' =\> ((int)$prices[0]['net']) ? 0 : 1, ); $i = 0; foreach( $prices as $price ) { if( $price['from'] == 1 ) { $p['preisgruppen'][$pg\_id]['grundpreis'] = export\_price( (float)$price['price'], $price['net'], $price['tax'] ); $p['products\_pseudoprices'][$pg\_id] = export\_price( (float)$price['pseudoprice'], $price['net'], $price['tax'] ); } else { $i++; $p['preisgruppen'][$pg\_id]['preis\_gruppe'.$i] = (float)export\_price( (float)$price['price'], $price['net'], $price['tax'] ); $p['preisgruppen'][$pg\_id]['preis\_range'.$i] = (float)$price['from']; } } } return array( 'ok' =\> TRUE ); }
Den ganzen Code ersetzen wir durch den folgenden function \_do\_export\_preisgruppen( &$p, $articleprices, $pgruppe\_translation ) { // ACHTUNG: $price['net'] \> 0 ist BRUTTO!!!!! $p['preisgruppen'] = $p['products\_pseudoprices'] = array(); $prices\_by\_group = array(); // for now we always use EK as primary pricegroup foreach( $articleprices as $\_price ) { if( $\_price['pricegroup'] == 'EK' && $\_price['from'] == 1 ) { $p['is\_brutto'] = ((int)$\_price['netto']) ? 0 : 1; $p['mwst'] = (float)$\_price['tax']; $p['grundpreis'] = export\_price( $\_price['price'], $\_price['netto'], $\_price['tax'] ); } $pg\_id = $pgruppe\_translation[$\_price['pricegroup']]; isset($prices\_by\_group[$pg\_id]) or $prices\_by\_group[$pg\_id] = array(); $prices\_by\_group[$pg\_id][] = $\_price; } foreach( $prices\_by\_group as $pg\_id =\> $prices ) { usort( $prices, '\_prices\_sorter' ); $i = 0; foreach( $prices as $price ) { $p['preisgruppen'][$pg\_id] = array( 'is\_brutto' =\> ((int)$price['netto']) ? 0 : 1, ); if( $price['from'] == 1 ) { $p1[$pg\_id]['grundpreis'] = export\_price( $price['price'], $price['netto'], $price['tax'] ); $p['products\_pseudoprices'][$pg\_id] = export\_price( $price['pseudoprice'], $price['netto'], $price['tax'] ); } else { $i++; $p2[$pg\_id]['preis\_gruppe'.$i] = export\_price( $price['price'], $price['netto'], $price['tax'] ); $p2[$pg\_id]['preis\_range'.$i] = $price['from']; } } } foreach ($p1 as $key =\> $value) { foreach ($value as $datakey =\> $datavalue) { $p['preisgruppen'][$key][$datakey] = $datavalue; } foreach ($p2[$key] as $datakey =\> $datavalue) { $p['preisgruppen'][$key][$datakey] = $datavalue; } } return array( 'ok' =\> TRUE ); }
Et voilà, fertig ist unser Fix. Und als im beim Importieren war ist mir noch ein weiterer Fehler aufgefallen, auf dem Basisdaten Reiter wurden die Felder Artikeleinheit: & Artikelgewicht: nicht übergeben. Das läßt sich einfach beheben, wobei ich mit der Annahme arbeite das “Stück” die Artikeleinheit ist die Ihr verwendet (ich übergebe sie statisch für alle importierten Artikel) Datei /shopware3.5/export_products.php, Zeile 116 ff. sieht so aus a.referenceunit AS products\_vpe\_referenzeinheit, a.purchasesteps AS products\_vpe\_staffelung, "; if( is\_shopware3() ) {
Ändert sie in a.referenceunit AS products\_vpe\_referenzeinheit, a.purchasesteps AS products\_vpe\_staffelung, d.weight AS weight, 'Stück' AS einheit, "; if( is\_shopware3() ) {
Und wie immer, geht auf Nummer sicher. Sprich legt eine Backup/Kopie der Dateien an die Ihr verändert. Und nachdem Ihr die Änderungen eingepflegt habt probiert es erst mit einem, dann mit ein paar Artikeln aus, umd zu kontrollieren ob alles korrekt funtkioniert. Erst wenn hierbei alles geklappt hat, lasst den ShopConnector auf alle Eure Artikel los. Und wie immer, die Angaben hier sind ohne Gewähr. Und ebenfalls wie immer, wenn es Euch beruhigt, ich setze sie so bei mir ein und sie funktionieren. Viel Erfolg beim programmieren wünsche ich.
P.S. @kabellager24 Der Fix sollte auch Deine Probleme mit dem Preisimport beheben. Sprich bis auf das “memory problem” wieder alle Wünsche erledigt. Wen Ihr neue Probleme/Wünsche habt schreibt es hier rein.
[quote=„ronecker“]Kurze Frage in die Runde, wärt Ihr bereit für die „ShopConnector kann E-Mail“ Funktion einen kleine Obolus zu spenden? Weil, ich habe hier in meinem Testsystem eine funktionierende Version und es war doch etwas komplizierter als gedacht. Und so wie ich actindo kenne dauert es noch ein ganzes Weilchen bis sie meine Modifizierungen aufnehmen und es damit allen zur Verfügung steht, die sind da einfach nicht so schnell … So etwas hängt bei denen gerne mal im Limbus der Entwicklungstickets fest …[/quote] hallo, auch wir sind bereit hierfür einen obolus zu entrichten lg tom/recordingladen
Hi, hier wurden ja einige Beträge von Shopware vernichtet. Wenn es noch was gibt, einfach texten und ich schaue was ich machen kann.
[quote=„ronecker“]Hi, hier wurden ja einige Beträge von Shopware vernichtet. Wenn es noch was gibt, einfach texten und ich schaue was ich machen kann.[/quote] Das stimmt. Fiel mir auch eben auf. Auch einige PM’s sind „verschwunden“. Darf ich wissen wieso, Shopware-Team (natürlich auch gerne per PM ;))?
Server-Absturz Wir mussten die Forum-Datenbank aus einem Backup wieder herstellen und das wurde bislang nur einmal pro Tag erstellt :wtf:
Die Antwort gibt es hier news-f18/shopware-forum-downtime-datenbank-rucksicherung-t2827.html Ansonsten scheinen im Moment ja alle glücklich mit dem von mir angepassten ShopConnector zu sein. Ich nutze einfach die Chance alle bisher hier vorgestellten Fehlerbehebungen und Verbesserungen als “fix4” zum allgemeinen Download zu Verfügung zu stellen. Es ist der komplette ShopConnector, mit allen hier vorstellten Änderungen, einfach wie gewohnt ins actindo Verzeichnis packen und es funktioniert. Ich empfehle ein Backup der bisherigen Daten sowie ein Test mit einer Testbestellung bevor in den Produktiv Betrieb übergegangen wird. Version 2.386 “fix4” Und für die Nutzer die sich wünschen das der ShopConnector auch wieder E-Mails versenden kann, bitte ich mich per PN zu kontaktieren. Für einen kleinen Obolus stelle ich gerne eine entsprechend angepasste Version zur Verfügung.
[quote=“Stefan Hamann”]Server-Absturz Wir mussten die Forum-Datenbank aus einem Backup wieder herstellen und das wurde bislang nur einmal pro Tag erstellt :wtf:[/quote] Hallo Stefan, danke für die schnelle Antwort. Dann bin ich ja beruhigt, dass es nur die Datenbank war :). Grüße, Alex
Nach der Weile Funkstille, habe ich nun wieder was Neues für alle Leid geplagten mit dem Memory Problem. Ich konnte es in meinem System reproduzieren. Auch wenn ich noch keine wirkliche Lösung habe, habe ich zumindest einen Workaround für Euch. Investiert in den Automator Light der Euch die Bestellungen automatisch importiert. Bei mir funktioniert der Bestellungsimport über den Weg, obwohl ich beim manuellen Bestellungsimport den not enough memomry Fehler erhalte. Ich habe mir mal den Spaß Erlaubt und das memory limit auf 2 Gigabyte hochgeschraubt, dann kam kein „nicht genug Speicher“ Fehler mehr sondern ein anderer der den Import verhindert hat. Das sieht für mich so aus als ob der Wurm in der manuellem Import Ansicht steckt. Im Moment bin ich leider überarbeitet, daher wird es keine schnelle Lösung diesmal geben. Aber ich werde es als Ansatzpunkt nutzen um den Fehler zu suchen. Mal schauen was der Support morgen so zu erzählen hat
Das Problem des Memory-Fehlers ist Actindo seit Februar ! bekannt. Die Aussage ist, man braucht mindestens 512 MB RAM, weshalb wir in teurere Serverkonfigurationen investieren mußten. Danach trat der von ronecker beschriebene Fehler auf, den wir auch bereits im Februar gemeldet haben. Für uns sieht es so aus, als ob die beiden Menuepunkte vertauscht sind: Startet man den Connector, läuft automatisch :x die Suche nach den letzten 10 nicht importierten Bestellungen an. Nachdem sich diese tot gelaufen hat, kann man in ALLE Bestellungen wechseln, wo man dann die letzten nicht importierten Bestellungen angezeigt bekommt. Durch den Austausch der Menuepunkte bzw. der Scripts dahinter würden unter den Nichtimportierten diese dann tatsächlich angezeigt, das Überlaufen der Speicher bei der ersten Auswahl würde gar nicht erst angestoßen. Leider hat sich Actindo innerhalb von 4 Monaten nicht zu diesem Problem geäußert, das bei uns mindestens einmal täglich dazu führt, dass die Auslagerungsdatei und damit der ganze Shop in die Knie geht. Ich hoffe, dass aufgrund der Vielzahl der Meldungen Actindo dieses Problem nun endlich mal ernst nimmt und bearbeitet.
Funktioniert der Connector auch fuer die 3.5.4? Oder muss da wieder modifiziert werden?
[quote=“baschti”]Funktioniert der Connector auch fuer die 3.5.4? Oder muss da wieder modifiziert werden?[/quote] Hi, ich bin mit meinem Shop bereits auf 3.5.4 und ich hatte einen kleinen Fehler der sich beim Bestellungsdownload als Fehler in der Datei “util.php” in der Zeile 73 gemeldet hat. Sollte der Fehler auch bei Euch auch auftreten, hier der “quick & dirty” Fix. Datei /shopware3.5/export_orders.php (ja, export_orders.php, trotz fehler in util.php) Zeile 187 ff sollte bei Euch so aussehen else if( $actindoorder['customer']['verf'] == 'PP' ) { if( act\_have\_table('paypal\_orders') ) { $actindoorder['payment']['pp'] = array(); $res1 = $export-\>sDB-\>Execute( "SELECT \* FROM `paypal_orders` WHERE `stransId`='".esc($order['transactionID'])."'" ); $row = $res1-\>FetchRow(); $res1-\>Close(); $actindoorder['payment']['pp']['trx\_no'] = $row['transactionId']; $actindoorder['payment']['pp']['type'] = $row['authorization'] ? 'authorization' : 'payment'; $actindoorder['payment']['pp']['payer\_id'] = $row['payerId']; } }
das ganze einfach ändern in else if( $actindoorder['customer']['verf'] == 'PP' ) { # if( act\_have\_table('paypal\_orders') ) # { $actindoorder['payment']['pp'] = array(); $res1 = $export-\>sDB-\>Execute( "SELECT \* FROM `paypal_orders` WHERE `stransId`='".esc($order['transactionID'])."'" ); $row = $res1-\>FetchRow(); $res1-\>Close(); $actindoorder['payment']['pp']['trx\_no'] = $row['transactionId']; $actindoorder['payment']['pp']['type'] = $row['authorization'] ? 'authorization' : 'payment'; $actindoorder['payment']['pp']['payer\_id'] = $row['payerId']; # } }
Fertisch. So läuft der “-fix4” problemlos bei mir. Aktuell wir auch von der actindo Seite auch untersucht was dort genau los ist. Und ich muß hier Herrn Sieg auch mal loben, er hat sich in den letzten Tagen einiges an Zeit für mich und die Shopware Probleme genommen.
[quote=„stephan“]Das Problem des Memory-Fehlers ist Actindo seit Februar ! bekannt. Die Aussage ist, man braucht mindestens 512 MB RAM, weshalb wir in teurere Serverkonfigurationen investieren mußten. Danach trat der von ronecker beschriebene Fehler auf, den wir auch bereits im Februar gemeldet haben. Für uns sieht es so aus, als ob die beiden Menuepunkte vertauscht sind: Startet man den Connector, läuft automatisch :x die Suche nach den letzten 10 nicht importierten Bestellungen an. Nachdem sich diese tot gelaufen hat, kann man in ALLE Bestellungen wechseln, wo man dann die letzten nicht importierten Bestellungen angezeigt bekommt. Durch den Austausch der Menuepunkte bzw. der Scripts dahinter würden unter den Nichtimportierten diese dann tatsächlich angezeigt, das Überlaufen der Speicher bei der ersten Auswahl würde gar nicht erst angestoßen. Leider hat sich Actindo innerhalb von 4 Monaten nicht zu diesem Problem geäußert, das bei uns mindestens einmal täglich dazu führt, dass die Auslagerungsdatei und damit der ganze Shop in die Knie geht. Ich hoffe, dass aufgrund der Vielzahl der Meldungen Actindo dieses Problem nun endlich mal ernst nimmt und bearbeitet.[/quote] Ich will jetzt noch nicht zuviel versprechen, aber es gibt seit kurzem Bewegung in diesem Bereich von daher sollte das Problem demnächst auch gelöst werden. Zumindest kamen beim Gedankenaustausch mit actindo ein paar interessante Ansatzpunkte ans Tageslicht die jetzt noch untersucht werden müssen. Es sind vermutlich keine vertauschten Menüpunkte sondern einfach zuviele Daten die an dem Punkt gesammelt werden. Wenn ich Fragen darf, wieviele Bestellungen sind grob in Deinem Shopware Shop drin? Eine Einteilung in 500, 1.000, 5.000, 10.000, 50.000, 100.000, oder „mehr“ reichen für den Anfang schon. Über Pfingsten bin ich in einer computerfreien Zone, ja ich weiß gruselig aber so etwas gibt es auch noch, von daher mehr zu dem Thema im Laufe der nächsten Woche.
@ ronecker: über 5.000 Bestellungen wäre aber schon eine komische Programmierung, wenn Actindo immer alle Bestellungen überprüfen müsste, um nicht importierte herauszufinden. Dann doch lieber eine zusätzliche Möglichkeit “alle nicht importierten der letzten Woche”. Dennoch wäre ein Vertauschen der Reihenfolge der Menuepunkte sinnvoll, denn die erste Abfrage läuft immer in den Fehler, die zweite wiederum liefert recht schnell ein Ergebnis. Oder einfach den automatischen Start abschalten, damit man den zweiten Punkt sofort manuell wählen kann.
Hallo, ich bin jetzt das Thema durchgegangen und dennoch sind mir ein paar Fragen offen geblieben. Vielleicht könnt ihr mir da besser weiterhelfen, als es die Hotline von Actindo konnte - sie sagt einfach zu allem einfach ja, machte sie aber schon, als es noch gar keinen passenden Connector gab … Ich benötige für einen Kunden die Schnittstelle zwischen Shopware und Actindo, idealerweise direkt für 3.5.4. Wie ich ein paar Postings weiter oben lesen konnte, muss für die 3.5.4 ein bisschen etwas selbst gefixt werden - klappt dann auch alles mit der 3.5.4? Auf der anderen Seite noch sehr wichtig: Der besagte Shop läuft bereits und wurde bisher aufgrund der Schwierigkeiten mit Actindo nur über das Backend gepflegt. Die meisten Artikel haben Varianten eingetragen (bspw. verschiedene Größen) sowie Eigenschaften (bspw. Farbe, Material) und teilweise eins, auf der anderen Seite aber auch 10 Bilder. Kommt Actindo damit klar oder muss irgend etwas noch im Backend gepflegt werden oder geht irgendwas davon überhaupt nicht? Wie sieht es mit der Auswahl von mehreren Kategorien aus? Wie läuft die Anlage neuer Artikel - werden einmal alle aus Shopware in Actindo importiert, anschließend nur noch neue in Actindo angelegt und in Shopware importiert? Werden bei der Anlage von Artikeln in Actindo die Bildnamen übernommen oder weiterhin in Shopware dämlich umbenannt? Viele Grüße
[quote=“mfpro”]Hallo, ich bin jetzt das Thema durchgegangen und dennoch sind mir ein paar Fragen offen geblieben. Vielleicht könnt ihr mir da besser weiterhelfen, als es die Hotline von Actindo konnte - sie sagt einfach zu allem einfach ja, machte sie aber schon, als es noch gar keinen passenden Connector gab … Ich benötige für einen Kunden die Schnittstelle zwischen Shopware und Actindo, idealerweise direkt für 3.5.4. Wie ich ein paar Postings weiter oben lesen konnte, muss für die 3.5.4 ein bisschen etwas selbst gefixt werden - klappt dann auch alles mit der 3.5.4? Auf der anderen Seite noch sehr wichtig: Der besagte Shop läuft bereits und wurde bisher aufgrund der Schwierigkeiten mit Actindo nur über das Backend gepflegt. Die meisten Artikel haben Varianten eingetragen (bspw. verschiedene Größen) sowie Eigenschaften (bspw. Farbe, Material) und teilweise eins, auf der anderen Seite aber auch 10 Bilder. Kommt Actindo damit klar oder muss irgend etwas noch im Backend gepflegt werden oder geht irgendwas davon überhaupt nicht? Wie sieht es mit der Auswahl von mehreren Kategorien aus? Wie läuft die Anlage neuer Artikel - werden einmal alle aus Shopware in Actindo importiert, anschließend nur noch neue in Actindo angelegt und in Shopware importiert? Werden bei der Anlage von Artikeln in Actindo die Bildnamen übernommen oder weiterhin in Shopware dämlich umbenannt? Viele Grüße[/quote] Actindo lief und läuft doch nun schon seit Monaten nicht,sowas kann man doch nicht an seine Kunden weitergeben. Beim nächsten update dann wieder Monate warten, es gibt doch genügend Alternativen. gruss volli
[quote=“Volker”]Actindo lief und läuft doch nun schon seit Monaten nicht,sowas kann man doch nicht an seine Kunden weitergeben. Beim nächsten update dann wieder Monate warten, es gibt doch genügend Alternativen. gruss volli[/quote] Volker, die Antwort von Dir ist leider vollständig falsch. Natürlich lauft actindo mit Shopware 3.5.4 und wenn Du meine fix4 Version nimmst sogar sehr gut. Natürlich ist der memmory Fehler beim Import nicht schön, aber es wird mit Hochdruck an einer Lösung gearbeitet. Aktuellen Vermutungen nach betrifft der Fehler auch nur grosse Shops mit vielen Bestellungen. @mfpro Mehrdimensionale Varianten mit vielen Bildern sind kein Problem, wir verkaufen Kleidung (Größe & Farbe) und haben teilweise 18 Bilder pro Variante. Die Bildernamen bleiben allerdings kryptisch, da sie über die Shopware API übergeben werden und diese die Bilder in “Shopwarekryptisch” übersetzt. Bündels und Luveshopping sind zwei Punkte die wir im Shop pflegen, der Rest in actindo. Wenn Du spezielle Fragen hast kannst Du mich gerne Antexten, wobei ich gleich sagen muss mit Import aus Shopware nach actindo habe ich keine Erfahrung, ich habe gleich alles in actindo angelegt/importiert und damit dann Shopware gefüttert.
Übrigens noch etwas gefunden… actindoTV - eLearning - Anbindung eines Webshops (am Beispiel von Shopware) http://youtu.be/zOHVFTBhCLE Viele Grüße
Hallo Leute, ich hab seit kurzem das Problem, dass ich keine Artikel mehr mit Actindo syncronisieren kann. Es kommt die folgende Fehlermeldung (siehe Screenshot). Manche Artikel funktionieren einwandfrei, allerdings sind das ca.2 %. Da ich absolut nicht weiß woran das liegt, hoffe ich jemand von Euch hat eine Idee :). http://imageshack.us/f/864/actindosync1.jpg/ Danke und VG, Alex
Gibt es eigentlich ne Möglichkeit das der Connector auch den Zahlungsstatus umsetzt? Bei Vorkasse zum Beispiel ändert sich ja nichts!