🐞 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: