🐞 Checkout Registrierung - Doppelklick im auf "Weiter" Button leert den Warenkorb - In allen SW6 Shops

Hallo,

wir haben heute festgestellt, dass wenn ein Kunde etwas in den Warenkorb legt, dann zur Kasse geht und wenn er dort das Formular als Gastbesteller ausfüllt und doppelt auf den „Weiter“ Button klickt, dann wird der Warenkorb geleert und zurückgeleitet.

Nach dem Doppelklick:

Das ganze haben wir im Chrome, Safari und Firefox getestet.

Wir haben es in mehreren Shops, mit und komplett ohne Plugins oder Themes (Neuinstallation) probiert, immer dasselbe verhalten. Auch hab im Internet nach anderen Shops auf SW6 Basis gesucht, auch dort konnte ich das Verhalten nachstellen.

Klickt man einmal, dann ist alles gut und man wird weiter in den Checkout geleitet, es tritt wie gesagt nur bei zwei schnellen Klicks hintereinander auf den „Weiter“ Button auf (Doppelklick).

Kann jemand das Verhalten reproduzieren oder gibt es hierfür ein Workaround? Man kann leider nicht nachvollziehen, wie viele Bestellungen dadurch verloren gehen, da wir auch keine Fehlerlog feststellen konnten.

Viele Grüße

Das ist in der Tat ein interessantes Feature :joy:

Technisch lässt sich das so erklären, dass der erste Request schon abgeschickt wurde und Shopware stellt in diesem Schritt die ID um – wieso, keine Ahnung.

Da beim zweiten Request die wenige Millisekunden zuvor noch gültige ID nicht mehr existiert – da von ersten Request geändert – läuft die Anfrage ins Leere und Shopware macht daraus einen neuen Kunden/Gast mit leerem Warenkorb.

Lösung: schreibe einfach ein JavaScript, das per EventListener den Button nach dem ersten Klick deaktiviert.

@Max_Shop Jup, dass hab ich schon geteset…Leider ist das es aber trotzdem etwas aufwendiger, da man ja vorher eine Validierung machen muss. Der Button darf nicht deaktiviert sein, wenn der Kunde z.B. vergessen hat, die Anrede auszuwählen. Oder man muss sich ein anderes Verhalten überlegen, wie dass er sich nach ein paar Sekunden wieder aktiviert oder so.

hallo olli,

dafür eine Lösung gefunden?

Ok, hab eine Lösung gefunden. Shopware nutzt die Funktion bereits beim Checkout Finish Button.

Also einfach bei diesem Block im frontend\register\index.tpl

den data-preloader-button="true" einfügen

{block name='frontend_register_index_form_submit'} {* Submit button *} <div class="register--action"> <button type="submit" data-preloader-button="true" class="register--submit btn is--primary is--large is--icon-right" name="Submit">{s name="RegisterIndexNewActionSubmit"}{/s} <i class="icon--arrow-right"></i></button> </div> {/block}

und den animierten Kreisel via css definieren:

.register--action .js--loading { width: 1.125rem; height: 1.125rem; border-radius: 100%; background-clip: padding-box; right: 0.375rem; top: 0.125rem; margin: 0.5rem 0.3125rem 0.5rem 0.3125rem; -webkit-animation: keyframe--spin 1s linear infinite; animation: keyframe--spin 1s linear infinite; border: 2px solid #dadae5; border-top: 2px solid #4f4f71; display: block; position: absolute; }

Anrede haben wir nicht mehr im Checkout. Aber wenn z.B die Mailadresse oder die Hausnummer (extra Plugin) nicht eingegeben wurde, wird der Button auch nicht aktiviert und ausgegraut.

weiter button

@Supersonic
super, dass schau ich mir mal an :slight_smile: Danke dir!

gerne. Hab aber gesehen das Shopware das wohl im Standard irgendwann gefixt hat. Ist aber nicht bei uns angekommen weil wir das .tpl vor Jahren mal an dieser Stelle erweitert haben. Im Standard machen die das aber genauso:

https://demoshops.splendid-internet.de/shopware/demoshop-shopware-daily

Nur ohne Kreisel :wink: