Problem mit Shopware-Migration

Hallo,

sobald ich eine Migration von Kunden (Gambio-Shop) starte, erhalte ich folgende Fehlermeldung:

Beim Importieren der Kunden ist ein Fehler aufgetreten

Code : 1100
Line : 175
File : /var/www/vhosts/KUNDE/htdocs/htdocs/engine/Shopware/Plugins/Community/Backend/SwagMigration/Components/Migration/Import/Resource/Customer.php

Error : Method "Shopware::Api" not found failure
Trace : #0 /var/www/vhosts/KUNDE/htdocs/htdocs/engine/Shopware/Plugins/Community/Backend/SwagMigration/Components/Migration/Import/Resource/Customer.php(175): Enlight_Application->__call('Api', Array) #1 /var/www/vhosts/KUNDE/htdocs/htdocs/engine/Shopware/Plugins/Community/Backend/SwagMigration/Components/Migration/Import/Resource/Customer.php(175): Shopware->Api() #2 /var/www/vhosts/KUNDE/htdocs/htdocs/engine/Shopware/Plugins/Community/Backend/SwagMigration/Controllers/Backend/SwagMigration.php(474): Shopware_Components_Migration_Import_Resource_Customer->run() #3 /var/www/vhosts/KUNDE/htdocs/htdocs/engine/Shopware/Plugins/Community/Backend/SwagMigration/Controllers/Backend/SwagMigration.php(511): Shopware_Controllers_Backend_SwagMigration->runImport('import_customer...') #4 /var/www/vhosts/KUNDE/htdocs/htdocs/engine/Library/Enlight/Controller/Action.php(158): Shopware_Controllers_Backend_SwagMigration->importAction() #5 /var/www/vhosts/KUNDE/htdocs/htdocs/engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch('importAction') #6 /var/www/vhosts/KUNDE/htdocs/htdocs/engine/Library/Enlight/Controller/Front.php(227): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #7 /var/www/vhosts/KUNDE/htdocs/htdocs/engine/Shopware/Kernel.php(148): Enlight_Controller_Front->dispatch() #8 /var/www/vhosts/KUNDE/htdocs/htdocs/vendor/symfony/http-kernel/HttpCache/HttpCache.php(492): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #9 /var/www/vhosts/KUNDE/htdocs/htdocs/engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) #10 /var/www/vhosts/KUNDE/htdocs/htdocs/vendor/symfony/http-kernel/HttpCache/HttpCache.php(263): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true) #11 /var/www/vhosts/KUNDE/htdocs/htdocs/engine/Shopware/Components/HttpCache/AppCache.php(103): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true) #12 /var/www/vhosts/KUNDE/htdocs/htdocs/shopware.php(101): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) #13 {main}

OK

Weiß jemand warum das nichtmehr läuft? Wo ist denn Shopware::Api hin? (Method “Shopware::Api” not found failure)

Plugin: Shopware Migration / V2.3.1

Viele Grüße
AvL

Hallo,

das Plugin ist aktuell nur bis Shopware 5.0.4 freigegeben. Die alte Shopware-API wurde mit 5.1 aus dem Core entfernt und das Plugin wird aktuell aufwendig umprogrammiert. Aktuell ist also nur eine Migration nach 5.0.4 möglich mit anschließendem Update auf 5.1.3.

Moritz

Das heisst, ich nehme einen 5.0.4; importiere mir die Kunden und soll dann auf 5.1.3 update? Dann kann ich ja auch gleich die Kunden in 5.0.4 importieren und dann die Usertabelle austauschen. Wir brauchen nämlich nur die Kundendaten…

Ich will nicht wissen, was ich uns dann wieder zerschiesse…Wir arbeiten seit letztes Jahr Juni an an dem Shop und nun stehen wir kurz vor einem Launch und nun sowas?

Aber die Passwort-Abfragen beim Login funktionieren dann noch oder? Weil dazu muss das Plugin ja weiterhin aktiviert bleiben.

Die Passwort-Abfragen funktionieren nur mit Modul (bis der Kunde sich erstmalig neu angemeldet hat). Das Modul läuft nur bis 5.0.4. Wenn Du diese Funktion willst, darfst Du als höchste Version nur 5.0.4 einsetzen, bis das Modul für 5.1.x überarbeitet wurde.

burrito

Das heisst jetzt, wie müssen einen 5.0.4 frisch aufsetzen und alles was wir bisher an Einstellungen gemacht haben usw. enu machen?

Was bitte ist das für ein Quatsch? (Frage vom Kunden). Warum nimmt man etwas raus was gut funktioniert; was Shopbetreiber zu Shopware bringt und dann liest man das geht nicht mehr ab Version x weil man die API rausgenommen hat und solll bzgl Relaunch warten? Wir haben keine Zeit auf ein Update zu warten; ab dem 01.03 haben wir wichtige gesetzliche Auflagen zuerfüllen; ansonsten kann as Geschäft geschlossen werden.

Dann hätte ich die Plugins welche die gesetzlichen Auflagen zum erfüllen bringen auch in Gambio einbauen können.

Komische Politik. Hallo Shopware: gebau dieses Plugin hat uns zu Shopware gebracht…

Ich frickel mir dann lieber ein eigenes Plugin für das Login. Danke…

 

MFG

AvL

Hallo,

es handelt sich hier um ein Plugin ohne Support, welches kostenlos ist. Die 5.1 ist seit dem 19.10. veröffentlicht. Spätestens seit diesem Zeitpunkt könntest du auch wissen, dass es noch keine kompatible Version gibt.

Ich wüsste nicht, warum die Passwort-Funktion nicht funktionieren sollte. Warum probierst du es nicht einfach mal aus? Das hat ja erstmal nichts mit der alten Shopware API zu tun und ist eine komplett andere Funktion des Plugins. Installieren lässt es sich ja.

Es wird ja aktuell an einer neuen Version gearbeitet. Da hat sich auch schon einiges auf Github getan, einige Baustellen gibt es aber noch.

Grüße

Moritz

Hallo AvL,

ich kann schon verstehen, dass es Dich ärgert. Das Modul ist unter anderem auch der Grund, weshalb ich zu Shopware wechsel und nicht zu einem anderen Shopsystem. Aber die Migration ist ein zentraler Punkt. Den sollte man frühzeitig einplanen und testen und nicht erst nachdem die Arbeit getan wurde. Das soll keine Kritik sein, sondern eine Anregung für die Zukunft.

Das Thema wird öfter diskutiert. Letztlich wird das PlugIn ab 5.1 nicht mehr unterstützt, weil zentrale Teile, die das Plug-In nutzt ab 5.1 anders gelöst werden (ich glaube es war die Passwortverwaltung). Laut Moritz wird aktuell an der Anpassung von dem Plug-In an die 5.1 gearbeitet und innerhalb von Q1 fertig gestellt.

Erkundige Dich doch mal, ob ein Downgrade nach 5.04 möglich ist. Das weiß ich nicht. Du kannst aber auch zum Test eine 5.04 installieren und Dein Template dort hinkopieren und testen.

Egal, wie Du es machst, Du bist immer davon abhängig, dass das Plug-In ein Update erhält. Denn Du brauchst das Plug-In solange, bis Du sagst, dass sich keine „alten“ Kunden mehr anmelden werden.

Um nicht auf Dauer von der Update-Politik für dieses Plug-In abhängig  zu sein, haben wir uns dazu entschlossen mit dem Shopwechsel auch einen Bruch durchzuführen. D.h. wenn der Kunde auf ein nicht vorhandenes Konto zugreifen möchte dann teilen wir ihm mit, dass er aufgrund des Systemwechsels ein neues Konto anlegen muss. Das ist zwar unschön aber ich denke unsere Sorte Kunden wird hier mitziehen.

burrito

Das werde ich heute auch noch ausprobieren. Auf einer 5.0.4 migrieren und diese dann exprtieren und in die aktuelle importieren…

Ich halte Euch up2date…

@burrito schrieb:

Hallo AvL,

ich kann schon verstehen, dass es Dich ärgert. Das Modul ist unter anderem auch der Grund, weshalb ich zu Shopware wechsel und nicht zu einem anderen Shopsystem. Aber die Migration ist ein zentraler Punkt. Den sollte man frühzeitig einplanen und testen und nicht erst nachdem die Arbeit getan wurde. Das soll keine Kritik sein, sondern eine Anregung für die Zukunft.

Hi,

die Migration beinhaltet bei uns leider noch andere Dinge; die ich per CLI-Scripte aufgesetzt hatte. Die Migration lief immer einwandfrei. Klar, natürlich nur bis zum Zeitpunkt des Uodates. Das Problem was ich aber sehe ist, wenn ich nicht Update, dass evtl. eklatante Sicherlöchter irgendwo kläffen. Oder ich auf bestimmte Fixes angewiesen bin, damit der Shop seinen Dienst anständig verrichtet. Ich hätte politisch anders gehandelt. “Wir nehmen, das Plugin weiter mit bis wir auch das Update auf die neuste Grundlage können laufen lassen”. Klar ist das Plugin kostenlos; was auch wirklich SUPER ist; aber > Dieses Plugin ist essientiell für die Entscheidung von einem uralten GAMBIO auf Shopware umzusteigen. Ich habe letzte Woche einen Shop eines Konkurrenten meines Kunden gesehen (Magento); die auch auf einmal keine Migration mehr durchführen konnten und das gleiche Problem haben wie Du beschreibst. Ich rede von ca. 44.000 Kundenaccounts von denen ca. 40% den Shop mindestens 1 x Monat aufsuchen. Mein Kunde will diesen Kunden sowas nicht zu muten.

Deshalb gehe ich heute Abend wie folgt vor:

  1. Migration mit einem 5.0.4
  2. Kunden exportieren
  3. In die aktuelle Version importieren

Das Login denke ich, wird mit Sicherheit noch funktionieren. Ansonsten geht der Shop nicht am 01.03 online bis eine Lösung gefunden wurde. In den Sauren Apfel beissen heisst für uns: Ich muss mein Plugin welches die gesetzlichen Anforderung zum erfüllen bringt in diese Software-Ruine einbauen. (Schufa/Altersidentitätscheck) Und ich möchte ungerne weiter an diese Krüke arbeiten. Ich denke, die meisten hier kennen den Code von GAMBIO, XT usw. und Wissen was das bedeutet  Grin

In diesem Sinne…Sorry, war heute Nachmittag sehr aufgeregt wg. dem Thema…

Viele Grüße
AvL

@AvL schrieb:

  1. Migration mit einem 5.0.4
  2. Kunden exportieren
  3. In die aktuelle Version importieren

Hallo AvL,

der von Dir beschriebene Weg wird nicht gehen!

Du brauchst das Plug-In, damit sich die Kunden anmelden können.

Das Problem liegt darin, dass die Kundenpasswörter in Gambio, XTC etc. in MD5-codiert in der DB liegen. MD5 gilt schon länger als veraltet. Shopware hat schon vor einiger Zeit die Passwort-Verschlüsselung umgestellt. Mit Plug-In läuft die Anmeldung eines Bestandskunden wie folgt ab:

  1. Kunde meldet sich mit seinem Passwort an.
  2. Das Plug-In prüft, das Passwort gegen den alten MD5 Wert und speichert das Passwort (wenn richtig ) in der neuen Verschlüsselung ab.
  3. Ab diesem Moment kann sich der Kunde immer auch ohne Plug-In anmelden, da das Passwort neu verschlüsselt wurde.

Da eine Passwort-Verschlüsselung nur in eine Richtung geht, kann man die alten Passwörter nicht entschlüsseln und neu verschlüsseln. Du musst also immer warten, bis der Kunde freiwillig sein Passwort eingibt, damit Du es neu abspeichern kannst.

Wenn Du die Kundendaten brauchst, kannst Du also bis zum 01.03. nur versuchen Dein 5.1.x-Layout in einen 5.0.4-Shop zu kopieren und bis das Plug-In fertig ist (Q1 geht ja nicht mehr so lange) den Shop auf 5.0.4 laufen zu lassen.

 burrito

@burrito schrieb:

@AvL schrieb:

  1. Migration mit einem 5.0.4
  2. Kunden exportieren
  3. In die aktuelle Version importieren

Hallo AvL,

der von Dir beschriebene Weg wird nicht gehen!

Du brauchst das Plug-In, damit sich die Kunden anmelden können.

Das Problem liegt darin, dass die Kundenpasswörter in Gambio, XTC etc. in MD5-codiert in der DB liegen. MD5 gilt schon länger als veraltet. Shopware hat schon vor einiger Zeit die Passwort-Verschlüsselung umgestellt. Mit Plug-In läuft die Anmeldung eines Bestandskunden wie folgt ab:

  1. Kunde meldet sich mit seinem Passwort an.
  2. Das Plug-In prüft, das Passwort gegen den alten MD5 Wert und speichert das Passwort (wenn richtig ) in der neuen Verschlüsselung ab.
  3. Ab diesem Moment kann sich der Kunde immer auch ohne Plug-In anmelden, da das Passwort neu verschlüsselt wurde.

Da eine Passwort-Verschlüsselung nur in eine Richtung geht, kann man die alten Passwörter nicht entschlüsseln und neu verschlüsseln. Du musst also immer warten, bis der Kunde freiwillig sein Passwort eingibt, damit Du es neu abspeichern kannst.

Wenn Du die Kundendaten brauchst, kannst Du also bis zum 01.03. nur versuchen Dein 5.1.x-Layout in einen 5.0.4-Shop zu kopieren und bis das Plug-In fertig ist (Q1 geht ja nicht mehr so lange) den Shop auf 5.0.4 laufen zu lassen.

 burrito

HI buritto,

grade einen Test gemacht und es hat funktioniert. Das Plugin habe ich natürlich installiert und aktiviert. Ich habe jetzt einfach einen komplett neuen Kundenaccount in Shopware angelegt. Danach habe ich meinen MD5-Hash der Gambio Datenbank entnommen und in s_user gegen den bcrypt-Hash ausgetauscht und in der Spalte “encoder” dann auf MD5 gesetzt. Danach konnte ich mich in den Shop mit meinem alten Passwort aus der GAMBIO-Installation anmelden.

Das heisst jetzt für mich eher: Ich schreibe schnell ein CLI-Script und importiere mir die Kunden selbst aus der GAMBIO Installation nach Shopware. Die Kundenaccounts sind ja nicht wirklich kompliziert in der Abbildung (Datenbank) / Ich bin da guter Hoffnung, dass es klappen wird.

Ich gebe Euch Feedback…

Viele Grüße
Andreas

Hallo AvL,

das klingt interessant. Ich bin gespannt auf Deine Ergebnisse

burrito

Leider noch nicht dazu gekommen; heute Abend erst. Ich glaube, wenn das klappt und ich die ZEIT habe, mache ich ein Plugin daraus (GambioCustomerMigration) oder einfach nur ein CLI-Script welches ich kostenlos auf GITHUB hochlade  Wearing-Sunglasses Eine Abfrage des Passwortes MD5 ist ja nun auch kein Hexenwerk und man kann sich ja in den Login-Prozess mittels HOOK oder EVENT einklinken (Muss dann allerdings ein Plugin sein) 

Hallo Buritto, Hi All

ich habe es nun doch anders gemacht, falls Du diese Information benötigst oder an die Anderen:

  1. Parallel auf eine Subdomain eine Installation von Shopware 5.0.4 installiert.
  2. Eine Kopie der Produktionsdatenbank (Gambio) mit eigenen Benutzer angelegt
  3. Auf der Installation SW 5.0.4 das MigrationPlugin aktiviert
  4. Ausschließlich die Kundendaten mit dem MigrationsPlugin migriert. Hat sehr lange gedauert bei so vielen Kunden, ca. 3 Stunden; gefühlte 10 Stunden :wink:
  5. Als nächstes muss man in der Tabelle " s_user_attributes" noch die Spalte " sofort_ideal_bank" hinzufügen.
  6. Alle Tabellen s_user* aus der Installation SW 5.0.4 exportiert
  7. Die Datenbank der Installation SW 5.1.1 zusätzlich zu den mehrfach täglichen laufenden Backups lokale gesichert
  8. In der Datenbank der Installation SW 5.1.1 die Tabellen s_user* gelöscht
  9. Die s_user* Tabellen aus der Installation SW 5.0.4 in die Datenbank Installation SW 5.1.1 importiert
  10. Mit Testaccounts aus der Gambio-Installation konnte ich mich nun erfolgreich in der Installation SW 5.1.1 einloggen. Auch mit sehr alten Testaccounts.

( s_user* = Alle Tabelle welche mit dem Namen s_user beginnen)

Fazit: Wo ein Wille ist, ist auch ein Weg. Sobald man sich mit einem alten Gambio-Account eingeloggt hat, wird das Passwort in bycrpt umgewandelt. Heisst, das MigrationTool arbeitet in der Installation SW 5.1.1 zumindest für das Login  Thumb-Up

Auftraggeber hellauf begeistert, ich begeistert, Kunden bestimmt auch begeistert.

Dann habe ich heute noch ein Erfolgserlebnis von der Schufa; positives Feedback zu meinen Integrationstest erhalten. Hier ging es um das Produkt Identitätscheck bzgl. neuer gesetzlicher Rahmenbedingungen (Voraussichtliche Verabschiedung evtl. am Montag und am 01.03 dann in Kraft) für Shopbetreiber welche das Jugendschutzgesetz einhalten müssen. Wenn ich Glück habe bekomme ich morgen das Live-Zertifikat (kann in der Regel bis zu 5-7 Tagen dauern) und kann beruhigt schlafen   Angewandte Techniken: SIGML2, SIGXML, PHP, CURL usw. Das heisst, die Schufa wünscht über dessen XML-Schnittstelle nur signierte und verschlüsselte XML-Dateien.

Well done! Läuft heute für mich

Viele Grüße
AvL

1 Like

Hallo AvL,

das klingt ja super. Herzlichen Glückwunsch zur geglückten Migration!

Verstehe ich dich richtig, dass Du unter 5.1.1 das Migrationstool auch installiert hast, oder wer setzt die Passwörter von MD5 nach bycrpt um?

Herzliche Grüße

burrito

Hi Buritto,

ja genau. Das Migrationstool muss bei der SW 5.1.1 installiert und aktiviert sein. Dieses sorgt dann nach einem Login dafür, dass auf bycrpt umgestellt wird.

Viele Grüße
Andreas

1 Like

Dann besteht die Versions-Inkompatibilität des Migrationstools nur darin, dass es nicht mehr importieren kann, aber die Kundenpasswörter funktionieren noch?

Ich dachte @Moritz Naczenski hat mal geschrieben, dass es die Passwort-Umsetzung in den aktuellen Versionen nicht kann. Komisch, da muss ich den alten Thread nochmal raussuchen.

Aber gut, wenn Du es getestet hast und der Weg funktioniert!

Vielen Dank dafür!

burrito

Genau, die Migration selbst funktioniert nicht mehr; da ja die API fehlt. Login funktioniert einwandfrei :wink:

Übrigens wurde heute eine neue Version veröffentlich die nun auch mit 5.1 arbeitet. Habe es grade mit einer frischen 5.1.3 ausprobiert. Läuft bestens…

Viele Grüße

PS: An die Admins: Das Thema kann als gelöst geschlossen werden. Finde den Button nicht :wink:

1 Like

Der Import mag klappen, ja. Jedoch habe ich Probleme bei dem Import von Produktbewertungen aus Magento 1.7 

Alle Bewertungen werden als 5/5 Sternen übernommen, obwohl die Originalbewertungen auch schlechtere Werte haben