Skip to main content
Beobachte die Warenkorbsumme und halte ein Gratisgeschenk damit synchron: Füge das Geschenk hinzu, sobald der Käufer einen Ausgabenschwellenwert überschreitet, und entferne es, wenn er wieder darunter fällt.
Für eine vom Händler konfigurierbare Version mit Stufen, marktspezifischen Regeln und einer Fortschrittsleiste nutze den Rewards-Block, ganz ohne Code. Dieses Beispiel ist für Fälle, in denen der Block deine Regel nicht abbilden kann.

Das Snippet

Füge es in Cart settings → Custom script → Initialization ein und setze die beiden Konstanten:

So funktioniert es

reconcileGift beschreibt den Zustand, in dem der Warenkorb sein sollte, und nimmt dann höchstens eine Änderung vor, um dorthin zu kommen:
  • Qualifiziert und das Geschenk fehlt → addItem fügt es hinzu.
  • Qualifiziert nicht und das Geschenk ist da → removeItem entfernt es, anhand des key der Position.
  • Andernfalls → nichts tun.
Es läuft sowohl bei cart_loaded (damit ein Warenkorb, der schon beim Seitenaufruf qualifiziert, das Geschenk bekommt) als auch bei cart_updated (damit es danach auf jede Änderung reagiert). Da cart_loaded für späte Abonnenten erneut abgespielt wird, funktioniert das unabhängig davon, wann dein Script läuft.
Die Guards !gift / gift verhindern die Endlosschleife. Das Hinzufügen des Geschenks feuert cart_updated, was reconcileGift erneut ausführt — der zweite Durchlauf findet das Geschenk bereits vor und tut nichts. Entfernst du die Guards, bekommst du eine Endlosschleife. Siehe die zwei Regeln.
Beachte, dass das Hinzufügen des Geschenks die Warenkorbsumme erhöht — ein Schwellenwert nahe am Preis eines Produkts kann also oszillieren: Ein 0-$-Geschenk ist sicher, aber ein Geschenk mit Preis könnte den Warenkorb von selbst über den Schwellenwert heben. Halte das Geschenk kostenlos oder vergleiche mit einer Summe, die es ausschließt.

Anpassungen

Nach Artikelanzahl statt Ausgaben gaten:
Daran gaten, dass ein bestimmtes Produkt im Warenkorb ist:
Nur in bestimmten Ländern. Lies context, das schon vor dem Laden des Warenkorbs verfügbar ist:
Das Geschenk vom Schwellenwert ausschließen, damit es sich nicht selbst im Warenkorb hält:
Das Geschenk so markieren, dass es als Geschenk erkennbar ist. Eine Line-Transform kann Titel, Variantentitel, Ausblendstatus und interne Properties einer Position ändern — benenne es also um:
Eine Line-Transform kann die Mengensteuerung einer Position nicht ausblenden — ihre einzigen Setter sind setTitle, setVariantTitle, setHidden und setInternalProperties. Wenn ein Käufer die Menge des Geschenks ändert, korrigiere sie stattdessen in einem cart_updated-Handler.

Nächste Schritte

  • Rewards-Block: die No-Code-Version, mit Stufen.
  • Actions: addItem, removeItem und der Rest.
  • Events: warum die Guards wichtig sind.