Ergebnis 1 bis 4 von 4

Thema: Update eines Order Items funktioniert nicht

  1. #1
    Contao-Fan Avatar von Ernestopheles
    Registriert seit
    25.10.2019.
    Ort
    Hamburg
    Beiträge
    293
    Contao-Projekt unterstützen

    Support Contao

    Standard Update eines Order Items funktioniert nicht

    In meiner extension habe ich einen PreCheckoutListener, der - wenn sich während des Checkoutprozesses ein Produkt geändert hat - die quantity im zugehörigen order item updaten soll. Leider scheint das nicht zu wirken.

    Ich habe es mit objItem->save() versucht, und auch mit einem sql. Beides greift ins Leere.

    Offensichtlich wird nach dem Update im Laufe des weiteren Vorgangs (der Listener setzt return false, daher redirect auf STEP_FAILED) die Order neu aufgebaut, es werden neue items erstellt.

    Das hieße, das mein Weg nicht gangbar wäre, oder?


    Hintergrund:
    Ich will vermeiden, dass ein Produkt über-verkauft wird, wenn sich während des Checkout Vorgangs die verfügbare Menge verkleinert (z.B. durch einen konkurrierenden Kauf oder durch Ändern im backend).

  2. #2
    Contao-Fan Avatar von Ernestopheles
    Registriert seit
    25.10.2019.
    Ort
    Hamburg
    Beiträge
    293
    Contao-Projekt unterstützen

    Support Contao

    Standard Lösung

    Meine Lösung sieht nun so aus, dass ich im PreCheckoutListener die order prüfe und beim durch das stockmanagement festgestelltem Änderungsbedarf eine exception werfe und abfange. Beim Abfangen erzeuge ich einen redirect response zur "failed" Seite vom Checkout und gebe eine Meldung mit, in der der Anwender gebeten wird, zum Warenkorb zu gehen und den zu aktualisieren. Dadurch korrigiert das stockmanagement den Warenkorb und der Bestellprozess kann normal weiterlaufen.

    Nicht optimal, aber für einen solchen Grenzfall (Mengenänderung während des Checkouts durch konkurrierende Bearbeitung) wohl akzeptabel.

    Wenn die Mengenänderung erst im PostCheckoutListener bemerkt wird (weil sie während des letzten Checkout Steps auftrat), gibt es keine Chance, die Bestellung zu verändern oder zu verhindern. Dann gibts 'ne notification mail und der Vorgang muss manuell weiter behandelt werden.
    Geändert von Ernestopheles (02.08.2023 um 23:45 Uhr)

  3. #3
    Contao Core-Team
    Association Vorstand
    Avatar von andreas.schempp
    Registriert seit
    15.06.2009.
    Ort
    Lyss
    Beiträge
    5.613
    Partner-ID
    8667
    Contao-Projekt unterstützen

    Support Contao

    Standard

    preCheckout Hook ist aus meiner Sicht genau das richtige dafür
    terminal42 gmbh
    Wir sind Contao Premium-Partner! Für Modulwünsche oder Programmierungen kannst du uns gerne kontaktieren.
    Hilfe für Isotope eCommerce kann man auch kaufen: Isotope Circle

  4. #4
    Contao-Fan Avatar von Ernestopheles
    Registriert seit
    25.10.2019.
    Ort
    Hamburg
    Beiträge
    293
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ja, klappt super.

    Die notification erreiche ich über ein Update des Order status übrigens.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •