Kunde kann Bestellvorgang nicht abschließen, Bestellung kommt aber (mehrfach) bei uns an

Hallo zusammen,

wir haben seit ein paar Wochen ein Problem mit dem Abschluss des Bestellvorgangs. Das Problem tritt nicht dauerhaft auf, sondern nur sehr sporadisch.

Das Problem:
Der Kunde kommt mit seiner Bestellung bis zu dem Punkt an dem er „Zahlungspflichtig bestellen“ bestätigen muss. Er kommt mit dem Klick auf den Button aber anscheinend nicht weiter und versucht es 2-3 Mal. Bei uns kommt aber die Bestellung im Backend an, mehrfach mit individuellen Bestellnummern, aber ohne dass wir eine E-Mail bekommen von der/den Bestellungen. Vermutlich wird mit jedem Klick den der Kunde auf Zahlungspflichtig bestellen macht tatsächlich eine neue Bestellung ausgelöst.

Sieht im Backend dann so aus, dass ein Kunde dann 3 oder 5x das selbe bestellt hat innerhalb von einer Minute.
09.03.2023 13:55 30003 149,90 Mustermann, Max
09.03.2023 13:55 30002 149,90 Mustermann, Max
09.03.2023 13:55 30001 149,90 Mustermann, Max

Wie gesagt sind das bisher nur sporadische Einzelfälle, unmittelbar vor und nach so einem Problemfall funktionieren die Bestellungen ganz normal ohne Probleme. Wir konnten das Problem bei uns auch noch nicht nachstellen.

Hallo,

Das klingt in erster Linie nach einem Problem mit deinem Template. Eigentlich sollte es JS seitig unterbunden sein, mehrfach auf „Zahlungspflichtig bestellen“ zu klicken.

PHP Log sagt folgendes:

PHP Fatal error: Uncaught TypeError: html_entity_decode(): Argument #1 ($string) must be of type string, DateTime given in /engine/Shopware/Core/sOrder.php:2004

Hatten jetzt heute wieder einen Fall, aber konnten den Fehler bisher selber noch nicht reproduzieren.
Der Kunde bekommt einen Error, dass die Seite momentan nicht verfügbar ist. Die Bestellung geht aber trotzdem durch, E-Mail wird keine versandt.

hmm,

Bau mal ein Log ein, um zu sehen was in die Methode htmlEntityDecodeRecursive als $data rein kommt.

Dann mal als ein Kunde einzuloggen bei dem es Fehlgeschlagen ist.

Danach mal ein checkout machen.

Es sieht so aus als würde irgend eine Erweiterung ein DateTime Object dem Kunden hinzufügen.