Hallo, ich versuche gerade im Warenkorb einen Button zu integrieren, der den gesamten Warenkorb aktualisiert. Es gibt schon eine FORM, welches als ACTION den entsprechenden Aufruf hat. Wenn ich aber nun ein SUBMIT-Button einsetze, dann wird dieser immer wieder ausgebremst. Scheinbar läuft da irgendein Javascript oder so im Hintergrund, was das "echte" Absenden der FORM verhindert. Hat da jemand eine Idee, wie man das lösen kann? Anschauen kann man das unter www.klon.stejuhn.de Shop-Version 3.8.0.0 Viele Grüße Kai Stejuhn
In der shopping_cart.html wird ein <div> definiert: HTML: <div data-gambio-widget="product_cart_handler" data-product_cart_handler-actions="[]"> Das product_cart_handler-Widget hängt einen Event-Handler auf das Submit-Event des ersten <form> innerhalb dieses <div>s. Das dürfte die Ursache deines Problems sein.
Okay, gibt es eine Möglichkeit daran vorbei oder da rein zu kommen, damit die "Action-Methode" des Forms ausgeführt wird?
Wenn dein <form id="kaisneuesform" method="POST" action="shop.php?do=KaisCartUpdate"> außerhalb des genannten <div>s liegt, kannst du deinen <button form="kaisneuesform"> irgendwo hin bauen, und das sollte funktionieren, wenn ich nichts übersehen habe.
Ich möchte ja kein neues FORM bauen. Es ist ja ein FORM mit einer ACTION vorhanden. Diese ACTION aktualisiert, wenn ich mich nicht vertan habe, den gesamten Warenkorb, also alle eingegebenen Mengenänderungen. Das ist ja schon alles vom Standard her vorhanden, nur der Auslöser fehlt halt. Darum wollte ich den Button einbauen.
Du meinst form#cart_quantity? So weit ich das gerade überblicke, ist das ein Relikt aus früheren Templates, das form bekommt nie einen normalen Submit, das wird immer von den Event-Handlern des product_cart_handler abgefangen und anderweitig verwertet. Die Action-URL ist ja auch „shopping_cart.php?action=update_product“, das zielt auf die cart_actions.php, die von der application_top.php eingebunden wird. Das war früher so ein fieser Code-Bandwurm, der verschiedenste Cart-bezogene Operationen abhandelt; inzwischen ist das etwas refactored und auf die CartActionsProcess-Klasse ausgelagert. Die update_product-Action tat mal das, was du suchst, wird in Honeygrid aber nicht mehr verwendet. Das läuft jetzt alles über AJAX-Calls auf den CartController und CheckQuantityController. Was du vorhast, ist im Prinzip am einfachsten mit $('a.button-refresh').trigger('click') abzufrühstücken, glaube ich.
Das geht mit einem Javascript reload - mit oder ohne Verzögerung - ... Code: <script> function Reload() { setTimeout("location.reload(true);",200); } </script>
Das heißt also, der vorhandene SUBMIT-Code kann/soll/darf nicht mehr verwendet werden. Wenn ich einen Button haben möchte, der den gesamten Warenkorb aktualisiert, dann muss ich das neu aufbauen oder darauf hoffen, das Gambio das irgendwann mal macht, wenn genug Anwender "HIER" geschrien haben. Da ich jetzt erstmal wieder "wie ein Schwein ins Uhrwerk schaue", frage ich mal an, wie groß ist die Chance, das von Gambio da wirklich zeitnah etwas passiert? Es ist einfach unglücklich, wenn die Kunden erstmal von jedem Teil eines in den Warenkorb legen und sich dann hinterher überlegen, das sie von den 100 Positionen bei 80 die Menge doch noch erhöhen wollen. Meistens tragen die Kunden die neuen Werte ein und gehen dann bei der letzen Position auf "aktualisieren" und merken nicht, das sie nur die eine Position aktualisiert haben. Erst wenn sie am Ende im checkout ankommen, bekommen sie große Augen und wundern sich wo die anderen Änderungen hin sind. Wenn man Glück hat, dann schreiben die Kunden eine Mail, das die Änderung nicht funktioniert hat und man das bitte bei der Bestellung berücksichtigen möchte. Andere denken nur "So´n Shi.." und werden nie wieder gesehen.
Keine Ahnung wie die das machen, aber es ist schon mehrfach vorgekommen. Mal davon abgesehen, das es auch für den Kunden nicht wirklich komfortabel ist 80 mal auf den "Aktualisieren-Button" zu klicken. Es ist also schon sinnvoll einen Button zu haben, der alles auf einmal auktualisiert.
Das wird so nicht funktionieren. Das System muss erst über die neue Menge in Kenntnis gesetzt werden. Ich verstehe irgendwie nicht genau die Problemstellung. Wenn im Warenkorb manuell eine Anpassung in den Mengenfeldern durchgeführt worden ist und auf den "Aktualisieren"-Button nicht geklickt wurde, meldet sich ein Modal wie Kollege @Marco (Gambio) bereits erwähnt hat. Wenn du einen neuen Button im Warenkorb einfügen möchtest, der alle Mengenfelder aktualisiert, müsstest du zum Beispiel über ein eigenes Javascript das ganze umständlich realisieren oder noch umständlicher diverse Klassen anpassen. Danach kannst du quick & dirty den Vorschlag von M. Zitzmann umsetzen indem du die Seite komplett neu lädts. Wenn du dich in den tiefen des Checkouts befindest und den Überblick verlierst, machst du mehr kaputt als gewollt.
Kann ich dir sagen. Wir erzeugen vorraussichtlich morgen einen Prototypen dazu: https://tracker.gambio-server.net/issues/55413 Das würde das Problem lösen und das auch noch elegant. Es muss nur funktionieren, kann man dann ja testen.
Ich hatte die Fehlermeldung (Hinweis) "Änderungen verwerfen?" auch schon nur mit einem Artikel im Warenkorb. Mehrmaliges Klicken auf "Aktualisierung" nützte nichts. Immer wieder kam das Popup...
Wenn nach üblichen Browsertests keine Kollateralschäden festgestellt werden. Könnte noch 3.9.1.0 Material werden.