Muito do que os lojistas pedem ao SDK já é uma configuração. Antes de escrever um script, verifique se um bloco do carrinho, as condições por mercado/país/moeda ou uma configuração do carrinho já fazem isso. Esses continuam funcionando após redesigns do carrinho, e seu script pode não continuar.
O ponto de entrada global
Todo snippet destes docs escreve
window.aftersell.cart por extenso, então qualquer um deles funciona sozinho quando você o cola. Criar um alias uma vez (const cart = window.aftersell.cart;) e usar cart daí em diante também é perfeitamente válido, e seguro mesmo antes de o carrinho carregar. Só lembre de incluir essa linha se você encurtar um snippet, já que um cart solto por si só lança cart is not defined.Configure
Defina como o carrinho se comporta: quando o drawer abre, como o dinheiro é formatado, se a Aftersell intercepta o adicionar ao carrinho.
Events
Reaja ao que acontece: o carrinho carregou, um item foi adicionado, o drawer abriu, o checkout foi clicado.
Actions
Leia e altere o carrinho: abra-o, adicione um item, atualize uma quantidade, leia o estado atual.
Hooks
Mude como o próprio carrinho funciona: oculte ou renomeie linhas, reordene-as, anexe dados extras, controle o adicionar ao carrinho.
Se um script seu parou de disparar no adicionar ao carrinho, comece por Interceptação do adicionar ao carrinho. Ela explica por que o Aftersell assume a adição e todas as maneiras de isentar um formulário.
Eventos, ações ou hooks?
A distinção que mais importa: uma ação altera o carrinho real do comprador (e o total dele), enquanto um hook só altera o que renderiza. Ocultar uma linha com um hook a mantém no carrinho e no total; removê-la com uma ação a tira de verdade.
Como e quando ele carrega
- Um pequeno stub cria
window.aftersell.cartimediatamente, então ele está sempre lá. - O SDK completo carrega logo depois e assume, atualizando o stub no lugar, de modo que uma referência capturada antes continua funcionando.
Chamadas de configuração: seguras imediatamente
configure(...), events.on(...) e toda chamada hooks.register*. São armazenadas em buffer antes do boot e reproduzidas em ordem assim que o SDK carrega. Coloque-as no topo do seu script.Ações: aguarde ready()
Tudo sob
actions.*. Execute-as dentro de ready() ou de um handler de evento. Chamadas cedo demais, elas avisam no console e não fazem nada, com segurança: as assíncronas ainda resolvem, então uma cadeia .then() não quebra.ready()
ready() retorna uma Promise que resolve assim que o primeiro carregamento do carrinho termina. Ela resolve tanto em falha quanto em sucesso, então um comprador com conexão instável nunca deixa seu script travado. Verifique se getCart() é null em vez de presumir que um carrinho chegou.
Chamar ready() depois que o carrinho já carregou resolve imediatamente, então é seguro usá-la como um portão geral de “o carrinho existe agora” em qualquer lugar do seu código.
context
window.aftersell.cart.context contém dados do comprador renderizados pelo servidor, legíveis de forma síncrona, sem precisar de ready(). Use-o para ramificações por mercado ou país que precisam acontecer antes de o carrinho carregar.
Para mostrar configurações de bloco diferentes por mercado, país ou moeda, use as condições no editor do carrinho em vez disso. Nenhum script necessário. A UI completa de Conditions está disponível hoje em Rewards.
shadowRoot
document.querySelector não consegue ver nada dentro do drawer. Para alcançar um elemento no carrinho, consulte o shadow root:
cart-external-* que o Custom CSS usa. Esses são os pontos de apoio suportados. As gêmeas cart-internal-* são o encanamento interno do carrinho, então consulte as externas.
O shadow root só existe depois que o carrinho inicializou, então leia-o dentro de ready() ou de um handler de evento, e não no topo do seu script.
Depuração
Quando seu script lança um erro
configure, events.on e hooks.register* abaixo daquela linha nunca executa. O carrinho diz isso explicitamente:
aftersell-cart-init.js e aftersell-cart-cart-update.js no DevTools. Você pode abri-los no painel Sources e definir breakpoints como em qualquer outro arquivo.
O canal de debug
Para onde ir a seguir
Configure
Toda opção, com um exemplo de cada.
Events
Todo evento, quando dispara e o que não fazer em um handler.
Actions
Toda ação, com um snippet de cada.
Hooks
Todo hook, e como os registros se compõem.
Cart object
O formato do carrinho e de suas linhas.
Use cases
Soluções completas e executáveis para pedidos comuns.