Es geht weiter darum, dass beim letzten Checkout ("Kostenpflichtig bestellen") ein Server Error 500 ausgeworfen wird. Bei Version 4.0.0.1 oder niedriger erfolgt ein PHP fatal error, der nach dem Error 500 im Shop Version 4.2 auch im Error Log angezeigt wird. Aus irgendeinem Grund kann die Bestätigungsseite "Danke für Ihre Bestellung" nicht ausgeworfen werden. Hier die Fehlermeldung mit Traceback:

2020-10-22 18:18:25 ERROR: Uncaught InvalidArgumentException: StringType: Invalid argument value given (expected string got NULL): in /var/www/vhosts/h2632858.stratoserver.net/webshop.fosar-bludorf.com/GXEngine/Shared/Types/StringType.inc.php:43

context:
message:
Uncaught InvalidArgumentException: StringType: Invalid argument value given (expected string got NULL): in /var/www/vhosts/h2632858.stratoserver.net/webshop.fosar-bludorf.com/GXEngine/Shared/Types/StringType.inc.php:43
Stack trace:
#0 /var/www/vhosts/h2632858.stratoserver.net/webshop.fosar-bludorf.com/GXMainComponents/Services/Core/Agreement/Helpers/AgreementStoreHelper.inc.php(46): StringType->__construct(NULL)
#1 /var/www/vhosts/h2632858.stratoserver.net/webshop.fosar-bludorf.com/system/overloads/CheckoutProcessProcess/DSGVOCheckoutProcessProcess.inc.php(43): AgreementStoreHelper::store(Object(IdType), 'withdrawal', Object(AgreementCustomer), Object(NonEmptyStringType))
#2 /var/www/vhosts/h2632858.stratoserver.net/webshop.fosar-bludorf.com/checkout_process.php(46): DSGVOCheckoutProcessProcess->proceed()
#3 {main}
thrown

Der Fehler geschieht also im Skript DSGVOCheckoutProcessProcess.inc.php in Zeile 43. Dort findet man folgenden Code:

39 AgreementStoreHelper::store(
40 $languageId,
41 LegalTextType::WITHDRAWAL,
42 $agreementCustomer,
43 $configKey
44 );

So wie ich das verstehe, soll hier mit dem Schlüssel WITHDRAWAL ein Text über Rücktrittsrechte geholt werden, der laut Fehlermeldung aber NULL war.

Dies kommt mir aus mehreren Gründen merkwürdig vor:
1. ich habe an diesen juristischen Texten garantiert nichts geändert. Die Rücktrittsrechte werden eine Seite früher im Checkout-Prozess angezeigt (bei der Wahl der Zahlungsart) und können dort auch als PDF heruntergeladen werden.
2. Auf der "Vielen Dank"-Seite - wenn sie durchläuft (wie ich mit einer Testshop-Installation, jungfräulich, herausgefunden) werden überhaupt keine Rücktrittstexte angezeigt.

Ich habe hierzu zwei Fragen:

1. Als IT-Mensch würde ich in diesem Moment versuchen zu debuggen, was genau an dieser kritischen Position im Code geschieht (und was vergleichsweise im Testshop passiert, der nicht abstürzt). Da könnte eventuell ein fehlender Textstring identifiziert und in der anderen Shopversion wieder eingebaut werden. GIBT ES IM GAMBIO-SHOP EINEN DEBUG-MODUS? Ich fürchte, ohne den geht's nicht.

2. Könnte man in der Gambio-Datenbank die echten Shopdaten (Kunden, Artikel, Bestellungen etc.) von internen Daten wie z. B. Anzeigetexten trennen, so dass man in einem neu installierten Shop die Kunden- und Artikelbasis importiert und die Anzeigetexte unverändert lässt?