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
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 →
addItemfügt es hinzu. - Qualifiziert nicht und das Geschenk ist da →
removeItementfernt es, anhand deskeyder Position. - Andernfalls → nichts tun.
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.
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
context, das schon vor dem Laden des Warenkorbs verfügbar ist:
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,removeItemund der Rest. - Events: warum die Guards wichtig sind.