Hallo, mir ist folgendes Problem aufgefallen, zuerst bei einem kostenlosem Theme, dass ich nutze, dann aber auch bei dem SW6 Demo Theme.
Wenn ich Items im Warenkorb habe und im Offcanvas Warenkorb nicht den Counter nutze sondern eine neue Zahl eintippe muss ich ja entweder mit der Maus aus dem Feld klicken (dann aktualisiert es) oder aber ich drücke Enter, dann aktualisiert es auch, aber der Offcanvas Cart erstreckt sich FullScreen über den Bildschirm. Auch die URL ändert sich zu: MEINE URL/staging2/checkout/offcanvas)
Ich bin mir nicht sicher, vermute aber es findet ein redirectTo/ eine Weiterleitung zu „checkout/offcanvas“ wodurch eben das Template (über die ganze Seite) des Offcanvas Warenkorb angezeigt wird.
Entweder ist ein Fehler im Template vorhanden, oder irgendetwas im JS wird nicht richtig ausgeführt.
Normalerweise sollte der Inhalt des Offcanvas Warenkorb ersetzt werden statt dem redirectTo/ der Weiterleitung.
Ich vermute, dass irgendwo ein submit des Forms stattfindet, statt dass es im JS erfolgt.
Welche twig Datei ist denn die relevante hierfür?
/component/checkout/offcanvas-cart.html.twig
oder
/component/checkout/offcanvas-cart-summary.html.twig
im offcanvas-cart.html.twig
ist zumindest der item-counter drinnen
Redirect To / forward to ist in beiden drinnen.
@philip1 ich vermute, dass das Problem in offcanvas-item.html.twig ist, da ja das Problem erst beim Erhöhen der Anzahl auftritt.
Ich könnte mir vorstellen, dass ein data-form-auto-submit="true" vorhanden ist. Das würde dazu führen, dass die Form gesendet wird und eben ein Redirect stattfinden würde.
Treten denn in der Browser Entwicklerkonsole irgendwelche JavaScript Fehler auf?
Hi @abdullah danke für die Antwort.
Das war zwar nicht die Lösung (glaube ich mit beschränkten Programmierkenntnissen) aber ich bin einen Schritt weiter Nachdem ich mir alles nochmal angeschaut hab und keine Fehler entdecken konnte hab ich mir nochmal die Offizelle Demo von SW6 angeschaut und festgestellt dass da ja eigentlich ein Dropdown drinnen ist.
Wir haben bei den Warenkorb Einstellungen die Max. Auswahlmenge recht früh auf 15.000 gesetzt weil wir das für unsere Produkte brauchen.
Wenn ich den Standard von 100 wiederherstelle kommt wieder das Dropdown.
Hab jetzt mal eine Weile rumgespielt. bis 101 kommt ein Dropdown, alles darüber kommt ein Textfeld mit den Counter Button, dann tritt auch der Fehler auf (wenn die eingegebene Menge auf Lager ist) Wenn man etwas über Lagermenge angibt bleibt der WK Offcanvas rechts wie er sein soll und der Hinweis „Es sind nur noch XY Stk. auf Lager“
Denke also das ist eher ein genereller Bug, bzw. wurde nicht sauber für Mengen über 100 Stk mitgedacht.
Vielleicht kannst du ja mal gegenchecken ob das bei deiner Installation den selben Fehler ausgibt?
im Changelog von Version 6.4.13.0 ( Shopware Changelog Shopware 6 ) findest du folgendes: „NEXT-9423 - Mengen-Auswahlfeld wird zu Eingabefeld, sobald die Anzahl der Auswahloptionen 100 überschreitet“. Der automatische Wechsel von einem Auswahlfeld zu einem Eingabefeld ist also so gewollt, wenn die Menge 100 überschreitet.
Das von dir beschriebene Problem liegt auch nicht unbedingt an Shopware 6 selbst, sondern am Verhalten des „Nummernfeldes“ (browserseitig): platform/quantity.html.twig at trunk · shopware/platform · GitHub . Dieses erlaubt leider das Absenden des Feldes über die Enter-Taste mit so einem Verhalten, was eigentlich nicht unbedingt gewollt ist.
Am besten erstellst du dazu im issueTracker ( https://issues.shopware.com/ ) mal ein Ticket. Lösen lässt sich das Problem eigentlich nur, wenn man auf das Feld einen JavaScript-EventListener hängt, der die Enter-Taste blockiert/abfängt.
Die Funktion, dass ab 101 ein Inputfeld für die Anzahl angezeigt wird, kannte ich nicht. Dachte es wäre eine Eigenentwicklung oder ein Drittplugin.
Mit der Shopware Version 6.4.13.0 habe ich mich noch nicht ganz auseinandergesetzt.
Ich habe mir Mal den Quelltext angeguckt und die Weiterleitung sollte eigentlich nicht im Offcanvas Warenkorb auftreten, sondern nur dann, wenn der default displayMode verwendet wird, da dann die Form das data-form-auto-submit="true" erhält.
Hast du mal das Verhalten mit dem Standard Shopware Theme getestet und ggf. alle Plugins deaktiviert?
Hi, ja hab ich versucht
hat trotzdem nicht geklappt. Es ist auch eine recht neue Installation mit wenig Plugins…
Naja ich hab ein Ticket erstellt und für uns vorerst eine Lösung gefunden.
Das Dropdown kommt immer wenn es 100 Auswahlmöglichkeiten gibt, habe die Auswahlzahl auf 15.000 gelassen aber die Staffelung hochgesetzt, das geht für uns und so bleiben wir vorerst beim Dropdown…
sind gerade auch über das Problem gestolpert. Lösung ist das Core OffCanvasCart Plugin zu überschreiben und einen EventHandler an das Form für die Anzahl zu hängen, was dann preventDefault macht und den Ajax Handler für das Anzahl Update feuert.