Molto di ciò che i merchant chiedono all’SDK è già un’impostazione. Prima di scrivere uno script, verifica se un blocco del carrello, le condizioni per mercato/paese/valuta o un’impostazione del carrello lo fanno già. Quelli continuano a funzionare attraverso i redesign del carrello, mentre il tuo script potrebbe non farlo.
Il punto di ingresso globale
Ogni snippet in questa documentazione scrive
window.aftersell.cart per esteso, quindi ognuno di essi funziona da solo quando lo incolli. Creare un alias una volta (const cart = window.aftersell.cart;) e usare cart da lì in poi è altrettanto valido, e sicuro anche prima che il carrello si carichi. Ricorda solo di includere quella riga se accorci uno snippet, perché un cart da solo lancia cart is not defined.Configure
Imposta come si comporta il carrello: quando si apre il drawer, come viene formattato il denaro, se Aftersell intercetta l’aggiunta al carrello.
Events
Reagisci a ciò che succede: il carrello si è caricato, è stato aggiunto un articolo, il drawer si è aperto, è stato cliccato il checkout.
Actions
Leggi e modifica il carrello: aprilo, aggiungi un articolo, aggiorna una quantità, leggi lo stato attuale.
Hooks
Cambia come funziona il carrello stesso: nascondi o rietichetta le righe, riordinale, allega dati extra, controlla l’aggiunta al carrello.
Se uno script tuo ha smesso di attivarsi sull’add-to-cart, inizia da Intercettazione dell’add-to-cart. Spiega perché Aftersell prende il controllo dell’aggiunta e ogni modo per escludere un form.
Eventi, azioni o hook?
La distinzione che conta di più: un’azione modifica il carrello reale dell’acquirente (e il suo totale), mentre un hook cambia solo ciò che viene renderizzato. Nascondere una riga con un hook la lascia nel carrello e nel totale; rimuoverla con un’azione la toglie per davvero.
Come e quando si carica
- Un piccolo stub crea
window.aftersell.cartimmediatamente, quindi è sempre presente. - L’SDK completo si carica poco dopo e prende il controllo, aggiornando lo stub sul posto, così un riferimento catturato in precedenza continua a funzionare.
Chiamate di set-up: sicure immediatamente
configure(...), events.on(...) e ogni chiamata hooks.register*. Vengono bufferizzate prima del boot e riprodotte in ordine quando l’SDK si carica. Mettile all’inizio del tuo script.Azioni: aspetta ready()
Tutto ciò che sta sotto
actions.*. Eseguile dentro ready() o un gestore di eventi. Chiamate troppo presto avvisano nella console e non fanno nulla, in sicurezza: quelle asincrone si risolvono comunque, quindi una catena .then() non si rompe.ready()
ready() restituisce una Promise che si risolve quando il primo caricamento del carrello si conclude. Si risolve sia in caso di fallimento che di successo, quindi un acquirente con una connessione instabile non lascia mai il tuo script in sospeso. Verifica se getCart() è null invece di dare per scontato che sia arrivato un carrello.
Chiamare ready() dopo che il carrello si è già caricato si risolve immediatamente, quindi è sicuro usarlo come porta generale di “il carrello ora esiste” ovunque nel tuo codice.
context
window.aftersell.cart.context contiene dati dell’acquirente renderizzati dal server, leggibili in modo sincrono, senza bisogno di ready(). Usalo per ramificazioni per mercato o paese che devono avvenire prima che il carrello si carichi.
Per mostrare impostazioni di blocco diverse per mercato, paese o valuta, usa invece le condizioni nel cart editor. Nessuno script richiesto. La UI completa delle Condizioni è disponibile oggi su Rewards.
shadowRoot
document.querySelector non può vedere nulla dentro il drawer. Per raggiungere un elemento nel carrello, interroga lo shadow root:
cart-external-* che usa il CSS personalizzato. Quelli sono gli handle supportati. Le gemelle cart-internal-* sono la struttura interna del carrello, quindi interroga invece quelle esterne.
Lo shadow root è presente solo dopo che il carrello si è avviato, quindi leggilo dentro ready() o un gestore di eventi invece che all’inizio del tuo script.
Debugging
Quando il tuo script lancia un errore
configure, events.on e hooks.register* sotto quella riga non viene mai eseguito. Il carrello lo dice esplicitamente:
aftersell-cart-init.js e aftersell-cart-cart-update.js in DevTools. Puoi aprirli dal pannello Sources e impostare breakpoint come per qualsiasi altro file.
Il canale di debug
Dove andare adesso
Configure
Ogni opzione, con un esempio ciascuna.
Events
Ogni evento, quando si attiva e cosa non fare in un gestore.
Actions
Ogni azione, con uno snippet ciascuna.
Hooks
Ogni hook, e come si compongono le registrazioni.
Cart object
La struttura del carrello e delle sue righe.
Use cases
Soluzioni complete ed eseguibili alle richieste comuni.