Button "Gesamten Warenkorb aktualisieren"

Thema wurde von Kai Stejuhn, 23. Februar 2018 erstellt.

  1. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    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
     
  2. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    Echt keiner eine Idee?
     
  3. Dennis (MotivMonster.de)

    Dennis (MotivMonster.de) G-WARD 2013/14/15/16

    Registriert seit:
    22. September 2011
    Beiträge:
    30.984
    Danke erhalten:
    6.097
    Danke vergeben:
    1.079
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    vermute da wirst ins JS eingreiffen müssen das da die Berechnung usw steuert.
     
  4. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    Das Problem ist, das der "Submit" nicht durch geht. Die Berechnung findet ja gar nicht statt.
     
  5. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.748
    Danke vergeben:
    137
    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.
     
  6. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    Okay, gibt es eine Möglichkeit daran vorbei oder da rein zu kommen, damit die "Action-Methode" des Forms ausgeführt wird?
     
  7. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.748
    Danke vergeben:
    137
    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.
     
  8. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    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.
     
  9. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.748
    Danke vergeben:
    137
    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.
     
  10. M. Zitzmann

    M. Zitzmann Erfahrener Benutzer

    Registriert seit:
    3. März 2016
    Beiträge:
    367
    Danke erhalten:
    118
    Danke vergeben:
    39
    Das geht mit einem Javascript reload - mit oder ohne Verzögerung - ...

    Code:
    <script>
    function Reload() {
        setTimeout("location.reload(true);",200);
    }
    </script>
    
     
  11. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    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.
     
  12. Anonymous

    Anonymous Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    22. Juni 2011
    Beiträge:
    4.760
    Danke erhalten:
    1.748
    Danke vergeben:
    137
    Das nicht zu merken, ist schwierig, weil dann beim Klick auf den Kasse-Button dies erscheint:

    upload_2018-3-1_15-25-38.png
     
  13. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    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.
     
  14. Sergej (Gambio)

    Sergej (Gambio) Erfahrener Benutzer
    Mitarbeiter

    Registriert seit:
    1. August 2016
    Beiträge:
    336
    Danke erhalten:
    205
    Danke vergeben:
    69
    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.
     
  15. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    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.
     
  16. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
  17. M. Zitzmann

    M. Zitzmann Erfahrener Benutzer

    Registriert seit:
    3. März 2016
    Beiträge:
    367
    Danke erhalten:
    118
    Danke vergeben:
    39
    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...
     
  18. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
  19. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    Sieht verdammt gut aus, wann wird das freigegeben?
     
  20. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Wenn nach üblichen Browsertests keine Kollateralschäden festgestellt werden. Könnte noch 3.9.1.0 Material werden.