Hi, nach dem Update auf die 3.0.2.0 gibt es hier diverse Abbrüche im Checkout, da in der Datenbanktabelle customers unerwartete Werte für customers_gender drin stehen. Neben "m" und "f" sind sehr viele leere Werte drin, aber auch ein paar "n". Request: POST /checkout_process.php (Details) Code: 2016-08-12 15:44:55 (82bd6bc6166191570b46a6b5e4289e64) FATAL ERROR(1): "Uncaught exception 'UnexpectedValueException' with message '$p_gender is not expected string "m" or "f"' in /www/htdocs/xxx/GXEngine/Classes/CoreServices/Customer/ValueObjects/CustomerGender.inc.php:54 Stack trace: #0 /www/htdocs/xxx/system/core/MainFactory.inc.php(291) : eval()'d code(1): CustomerGender->__construct('n') #1 /www/htdocs/xxx/system/core/MainFactory.inc.php(291): eval() #2 /www/htdocs/xxx/system/core/MainFactory.inc.php(189): MainFactory::create_object('CustomerGender', Array) #3 /www/htdocs/xxx/GXEngine/Classes/CoreServices/Customer/CustomerReader.inc.php(171): MainFactory::create('CustomerGender', 'n') #4 /www/htdocs/xxx/GXEngine/Classes/CoreServices/Customer/CustomerReader.inc.php(146): CustomerReader->_createCustomerByArray(Array) #5 /www/htdocs/xxx/GXEngine/Classes/CoreServices/Customer/CustomerReader.inc.php(8" Wenn ich das in der Datebank richtig sehe, sind das alles Kunden mit "" und "n", die in der Vorversion (2.2.x) per Paypal und als Gast bestellt haben? In der Tabelle `address_book` habe alle als `address_class` den Wert 'paypal_guest' drin stehen. Der String paypal_guest findet sich in der GMPayPalGuestAccountManager.php, wie auch: Code: 'customers_gender' => 'n', Und das "n" habt Ihr im Constructor der CustomerGender.inc.php nicht berücksichtigt: Code: if(!in_array($p_gender, array('m', 'f', ''))) { throw new UnexpectedValueException('$p_gender is not expected string "m" or "f"'); } Ciao, Mike
Das ist ne Datenbankinkonsistenz, die Datenbank musste einmal per SQL Update fixen. Alle "n" musst du dabei einmal gegen "" (leer) ersetzen. "N" war früher erlaubt, jetzt nicht mehr, das wurde auch mal durch ein normales Shopupdate angepasst. Das Problem tritt dann auf, wenn nach diesem Update noch weiter ein altes, jetzt inkompatibles Modul weiter läuft und wieder kaputte Daten erzeugt. Läuft in dem Shop jetzt noch ein altes PayPal Modul? Das wäre ein Nummer 1 Kandidat. Wenn ja weg, das geht nicht mehr rund. Ansonsten sollte der Fehler verschwunden sein, sobald du die DB dort einmal reparierst.
Der Gambio-Updater begradigt die Daten im Zuge des 2.3.2.1-Updates einmalig. Anschließend können aber wieder neue, falsche Datensätze entstehen, wenn man ein veraltetes paypalng-Modul in einer neuen Shopsystem-Version verwendet. Das heißt, wer noch ein paypalng aus Shopsystemversion 2.2.x.x. in einem GX3-Shop hat, muss zumindest ECS komplett abschalten, damit diese falschen Daten nicht erzeugt werden.
Ja, es wird noch das alte Paypal Modul genutzt. Die Idee war erst mal das Shop-Update zu machen und wenn das läuft, dann auch das PP-Plus Modul noch zu aktualisieren ... Vielleicht wäre es da Hilfreich, den Hinweis noch etwas drastischer zu Formulieren. "Veraltet" suggeriert, es gibt was neues, schöneres. Aber das ist nicht nur veraltet, sondern das funktioniert nicht mehr!
Ich habe mich falsch ausgedrückt: Erst wenn nach ein paar Tagen sicher ist, dass das Shop-Update (in einem Rutsch von 2.2 => 2.4 => 2.6 => 3.0 => 3.0.2.0) fehlerfrei funktioniert hat, sollte von dem alten PayPal-Modul auf das neue PP-Plus umgestellt werden. (Ich habe bewusst nirgendswo gelesen, dass ich umstellen MUSS.) Wie jetzt klar ist, hat das eher für Fehler gesorgt.
Wir werden glaube ich einfach in naher Zukunft in den weiteren Updates die alten PayPal Module löschen lassen, ich glaube das hilft allen am besten.