Encoder with name \"Magento19\" not found

Die o.g. Fehlermeldung erhalte ich plötzlich beim Versuch mich einzuloggen.

Das hat bis vor kurzem noch funktioniert.

Was da los?

Hi,

ist das Migrationstool mit dem Magento Profil noch installiert und aktiviert?

VG

Sebastian

War nicht, aber jetzt ist es aktiviert. Aber trotzdem klappt der Login nicht.

Es kommt keine Fehlermeldung im Log, nur die Meldung auf der Frontpage, dass etwas nicht passt.

Muss dieses Plugin ggf. bereits beim Import der Daten aktiviert sein?

Ohne die Plugins dürfte ein Import gar nicht möglich sein.

Beim Fehler geht es bei dir um die Storefront?

Der Encoder ist dafür da dein “altes” Magento Passwort zu überprüfen und dann in ein “neues” Shopware kompatibles umzuwandeln.

„Ohne die Plugins dürfte ein Import gar nicht möglich sein.“

Mit einem eigenen Modul.

„Beim Fehler geht es bei dir um die Storefront?“

Beim login der Kunden.

„Der Encoder ist dafür da dein „altes“ Magento Passwort zu überprüfen und dann in ein „neues“ Shopware kompatibles umzuwandeln.“

Schau dir das Migrationsplugin erstmal an bevor du hier etwas schreibst. Dazu solltest du dir auch nochmal gedanken zur verschlüsslung machen. Shopware schreibt die Magento Passwörter direkt in die Shopware Datenbank. Dazu kommt dann der Encoder, der dann wahrtscheinlich auf die Magento 1.9 verschlüsselung verweist… 

Ich liebe ja so Leute.

Jo hab ich mir angeschaut, deswegen schreibe ich es ja auch.

Dein Magento Hash wird bei der Migration gespeichert (“altes” Passwort) in “legacy_password”. 

Zusätzlich wird in “legacy_encoder” ein verweis auf Magento19 gespeichert.

Beim Kundenlogin wird dann der “alte” Hash überprüft. 

Was stimmt daran jetzt nicht?

Der Encoder ist dafür da dein „altes“ Magento Passwort zu überprüfen und dann in ein „neues“ Shopware kompatibles umzuwandeln.

Wo ist nun die Stelle mit dem umwandeln?

Oder wandelt Shopware das Passwort nach dem ersten Login um?

Ja, beim erfolgreichen Login.

Erst dann kann der neue Hash generiert werden anhand des eingegebenen Passworts.

 

https://github.com/shopware/platform/blob/87fc9e8cf4cdab0650e0caaf9a8ba12bab2902c2/src/Core/Checkout/Customer/SalesChannel/AccountService.php#L366

Interessant. Dann nehme ich selbstverständlich alles zurück.

Aber das löst nicht mein Problem.

Mein Import macht es quasi wie das Migrationstool von Shopware. Magento Passwort in legacy_password und “Magento19” in legacy_encoder.

Trotzdem bekomme ich beim Login versuch die Meldung, dass kein Account gefunden wurde.

E-Mail Adressen etc. kommen auch mehrfach vor. Aber mit unterschiedlichen SalesChannelIds.

Es wird auch keine Mail bzgl. PW Vergessen verschickt.

Wenn meine Mail Adresse ur einmal in der Tabelle vorkommt, wird zunindest die pw vergessen Mail verschickt.

Also die Mail darf es nur einmal geben, alternativ müssen alle bis auf ein Account ein Schnellbesteller sein.

Und wie kann sich dann ein Kunde für unterschiedliche SalesChannels registrieren?

Sieht auf Anhieb so aus, als wenn mehrfach vergebene E-Mail Adresse (noch?) nicht komplett unterstützt werden.

 // TODO NEXT-389 we have to check an option like "bind customer to salesChannel" // todo in this case we have to filter "customer.salesChannelId is null or salesChannelId = :current"

Oh man. Wir haben insgesamt 6 Stores die auf eine Installation umziehen sollen weil sie vorher auch auf einer magento installation liefen.

Das sind alles Sachen, die hätte man vorher wissen müssen. Wenn man Multistore Funktion anbiete sollte die auch fertig sein.

 

Was machen wir da nun?

Ehrlichgesagt gab es die Funktion in SW5 und ich glaube ich kann die Kunden die mir bekannt sind und diese Funktion nutzen, an zwei Händen abzählen. Das soll dein Problem nicht kleinreden, lediglich unterstreichen, dass es nicht zwangsweise für eine Multistore-Funktionalität notwendig ist. Viele große Shops sharen den Zugang über die einzelnen Mandanten. Für dein aktutes Problem gibt es in Shopware so keine Lösung ad-hoc. Es ist zumindest nicht geplant, dass diese Funktion in den nächsten 8-12 Wochen dazukommen wird. Ich verstehe aber, dass es in bestimmten Konstellationen Sinn macht, vor allem wenn man schon solche Daten vorliegen hat.

Aktuell müsstest du das also individuell lösen und bei einem Login selbst auf den jeweiligen Sales-Channel prüfen.