Skip to main content
Osserva il totale del carrello e mantieni un omaggio sincronizzato con esso: aggiungi l’omaggio quando l’acquirente supera una soglia di spesa, rimuovilo se scende di nuovo sotto.
Per una versione configurabile dal merchant con livelli, regole per mercato e una barra di avanzamento, usa il blocco Rewards, senza codice. Questo è per quando la tua regola è qualcosa che il blocco non può esprimere.

Lo snippet

Incolla in Cart settings → Custom script → Initialization, e imposta le due costanti:

Come funziona

reconcileGift descrive lo stato in cui il carrello dovrebbe essere, poi effettua al massimo una modifica per arrivarci:
  • Qualifica e l’omaggio non c’è → addItem lo aggiunge.
  • Non qualifica e l’omaggio c’è → removeItem lo rimuove, tramite la key della riga.
  • Altrimenti → non fa nulla.
Viene eseguito sia su cart_loaded (così un carrello che qualifica già al caricamento della pagina riceve l’omaggio) sia su cart_updated (così reagisce a ogni cambiamento successivo). Poiché cart_loaded viene riprodotto per gli iscritti tardivi, questo funziona indipendentemente da quando viene eseguito il tuo script.
Le guardie !gift / gift sono ciò che impedisce il loop. Aggiungere l’omaggio attiva cart_updated, che esegue di nuovo reconcileGift, e il secondo passaggio trova l’omaggio già presente, quindi non fa nulla. Togli le guardie e ottieni un loop infinito. Vedi le due regole.
Nota che aggiungere l’omaggio aumenta il totale del carrello, quindi una soglia vicina al prezzo di un prodotto può oscillare: aggiungere un omaggio da $0 è sicuro, ma un omaggio con un prezzo potrebbe da solo spingere il carrello sopra la soglia. Mantieni l’omaggio gratuito, oppure confronta con un totale che lo esclude.

Adattarlo

Condiziona sul numero di articoli invece che sulla spesa:
Condiziona sulla presenza di un prodotto specifico nel carrello:
Solo in certi paesi. Leggi context, che è disponibile prima che il carrello si carichi:
Escludi l’omaggio dalla soglia così non può sostenersi da solo:
Marca l’omaggio così si legge come un omaggio. Un line transform può cambiare il titolo di una riga, il titolo della variante, lo stato nascosto e le proprietà interne — quindi rietichettalo:
Un line transform non può nascondere i controlli di quantità di una riga — i suoi unici setter sono setTitle, setVariantTitle, setHidden e setInternalProperties. Se un acquirente cambia la quantità dell’omaggio, correggila invece da un gestore cart_updated.

Dove andare adesso

  • Blocco Rewards: la versione senza codice, con livelli.
  • Actions: addItem, removeItem e il resto.
  • Events: perché le guardie sono importanti.