window.aftersell.cart.events.
La sottoscrizione è una chiamata di set-up, quindi è sicura in cima al tuo script, senza bisogno di aspettare ready().
Eventi disponibili
Sottoscrizione
events.on(event, handler) registra un handler e restituisce una funzione che ne annulla la sottoscrizione:
events.once(event, handler): si attiva una volta, poi annulla da solo la sottoscrizione.events.off(event, handler): rimuove un handler specifico.
Le due regole
Non modificare il carrello da cart_updated senza una guardia
cart_updated attiva di nuovo cart_updated. Se quell’handler modifica di nuovo il carrello, hai un loop infinito. L’acquirente vede il suo carrello impazzire mentre la pagina martella Shopify.
Tratta il payload come di sola lettura
registerLineTransform.
cart_loaded
cart_loaded viene riprodotto per i sottoscrittori tardivi. Se ti sottoscrivi dopo che il carrello si è già caricato, il tuo handler viene chiamato immediatamente con il carrello corrente. L’ordine di sottoscrizione non conta mai, quindi non devi preoccuparti se il tuo script ha battuto il carrello sul tempo.
cart_updated
item_added
{ item }, dove item è la riga del carrello.
cart_loaded. Aggiungere più prodotti distinti in una volta attiva l’evento una volta per riga.
item_removed
{ item }, la riga com’era subito prima di sparire, così puoi ancora leggerne key, variantId e title.
item_added: abbassare una quantità senza arrivare a zero non è una rimozione.
cart_opened e cart_closed
checkout
Ascoltare dall’esterno dell’SDK
CustomEvent DOM su window, quindi puoi ascoltare senza toccare window.aftersell.cart. È utile da un file del tema, da un’app di terze parti o da uno script che si carica indipendentemente dal carrello.
Attenzione alla nomenclatura: il bus usa lo
snake_case, gli eventi DOM usano il kebab-case dietro un prefisso aftersell:cart:.
event.detail e corrisponde all’oggetto cart. Gli eventi vengono inviati su window, quindi un listener ovunque sulla pagina li riceve. Il carrello viene renderizzato in uno shadow root, ma il confine dello shadow non è mai nel percorso dell’evento. Ogni invio clona il payload, quindi un listener che modifica event.detail non può influenzare nessun altro, e un listener che genera un errore non può interferire con l’SDK.
Eventi standard del carrello di Shopify
document ogni volta che modifica il carrello, così il codice del tema e le altre app possono reagire alle mutazioni di Aftersell nello stesso modo in cui reagiscono a quelle del tema:
Ogni evento porta anche una
promise che Aftersell risolve quando la scrittura sottostante va a buon fine, in linea con lo standard di Shopify — attendila con await, non risolverla tu. Questi eventi vengono inviati su document e fanno bubbling, quindi anche un listener su window li riceve.
Dove andare adesso
- Oggetto cart: la struttura completa dei payload qui sopra.
- Azioni: come modificare il carrello da un handler.
- Hook: per cambiare come il carrello viene renderizzato, invece di reagire ad esso.
- Casi d’uso: tracciamento analytics, omaggi e altri esempi completi.