window.aftersell.cart.actions.
Le azioni vanno eseguite dopo che il carrello è pronto, dentro
ready() o un handler di evento.Prima che il carrello si carichi, le azioni sono stub. Ognuna registra un avviso in console che nomina l’azione, per esempio
cart.actions.addItem() called before the cart loaded, e non fa nulla. Le azioni async risolvono comunque una Promise, quindi una catena .then() viene eseguita normalmente invece di generare un errore; getCart() restituisce null e formatMoney() restituisce una stringa vuota.Non si rompe nulla se ne chiami una troppo presto, ma non succede nemmeno nulla. Controlla la console per quell’avviso quando un’azione sembra non fare nulla.Tutte le azioni
Drawer
open e close
Lettura
getCart()
null prima che sia stato caricato. Il risultato è una copia, quindi modificarlo non cambia il carrello reale.
getCart() è ridondante.
formatMoney(cents)
configure({ money_format }).
Modificare il carrello
Le azioni sugli articoli identificano una riga tramite la sua
key di Shopify, non tramite l’ID della variante, perché un carrello può contenere la stessa variante su più righe con proprietà diverse. Leggila da getCart().items[n].key.addItem(variantId, quantity?)
quantity è 1 per impostazione predefinita. Si risolve una volta che il carrello si è assestato.
removeItem(key)
updateItemQuantity(key, quantity)
0 rimuove la riga.
cart_updated perché il controllo > 1 è falso al secondo passaggio. Vedi le due regole.
replaceLineVariant(key, variantId)
key e finisce alla fine del carrello. Rileggi getCart() dopo, invece di riutilizzare la key che hai passato.
Aggiornamento
refresh()
visualRefresh()
Note e casi limite
- Le azioni async si risolvono quando la modifica si è assestata. Attenderne una ti permette di sequenziare il lavoro dopo che il carrello si è effettivamente aggiornato.
getCart()restituisce una copia. Modificarla non ha alcun effetto sul carrello reale.- Non c’è un’azione per i codici sconto. I codici applicati sono leggibili sul carrello (
discountCodes,totalDiscount) e per riga (discountAllocations); gli acquirenti li applicano tramite il blocco Discount code. - Non c’è un’azione per gli attributi del carrello o le note. Gli attributi sono leggibili sull’oggetto cart; gli acquirenti scrivono le note tramite il blocco Notes.
- Per nascondere una riga invece di rimuoverla, usa
registerLineTransform. Rimuovere cambia il totale dell’acquirente; nascondere no.
Dove andare adesso
- Oggetto cart: cosa restituisce
getCart(). - Eventi: quando eseguire queste azioni.
- Hook: cambia come una riga viene renderizzata invece di cambiare il carrello.
- Casi d’uso: soluzioni complete alle richieste più comuni.