Mucho de lo que los comerciantes le piden al SDK ya es una configuración. Antes de escribir un script, verifica si un bloque del carrito, las condiciones por mercado/país/moneda o una configuración del carrito ya lo hacen. Esos siguen funcionando a través de rediseños del carrito, y tu script puede que no.
El punto de entrada global
Todos los snippets de estos docs escriben
window.aftersell.cart completo, así que cualquiera de ellos funciona por sí solo cuando lo pegas. Crear un alias una vez (const cart = window.aftersell.cart;) y usar cart a partir de entonces también es perfectamente válido, y seguro incluso antes de que el carrito se cargue. Solo recuerda incluir esa línea si acortas un snippet, ya que un cart suelto por sí solo lanza cart is not defined.Configure
Establece cómo se comporta el carrito: cuándo se abre el drawer, cómo se formatea el dinero, si Aftersell intercepta el agregar al carrito.
Events
Reacciona a lo que sucede: el carrito se cargó, se agregó un artículo, el drawer se abrió, se hizo clic en el checkout.
Actions
Lee y cambia el carrito: ábrelo, agrega un artículo, actualiza una cantidad, lee el estado actual.
Hooks
Cambia cómo funciona el carrito en sí: oculta o reetiqueta líneas, reordénalas, adjunta datos extra, controla el agregar al carrito.
Si un script tuyo dejó de dispararse al agregar al carrito, empieza por Intercepción de agregar al carrito. Explica por qué Aftersell toma el control del agregado, y todas las formas de excluir un formulario.
¿Eventos, acciones o hooks?
La distinción que más importa: una acción cambia el carrito real del comprador (y su total), mientras que un hook solo cambia lo que se renderiza. Ocultar una línea con un hook la deja en el carrito y en el total; eliminarla con una acción la saca de verdad.
Cómo y cuándo se carga
- Un pequeño stub crea
window.aftersell.cartinmediatamente, así que siempre está ahí. - El SDK completo se carga poco después y toma el control, actualizando el stub en su lugar, así que una referencia que capturaste antes sigue funcionando.
Llamadas de configuración: seguras de inmediato
configure(...), events.on(...) y cada llamada hooks.register*. Se almacenan en búfer antes del arranque y se reproducen en orden una vez que el SDK se carga. Ponlas al principio de tu script.Acciones: espera a ready()
Todo lo que está bajo
actions.*. Ejecútalas dentro de ready() o de un handler de eventos. Llamadas demasiado pronto, advierten en la consola y no hacen nada, de forma segura: las asíncronas aún se resuelven, así que una cadena .then() no se romperá.ready()
ready() devuelve una Promise que se resuelve una vez que la primera carga del carrito se asienta. Se resuelve tanto en fallo como en éxito, así que un comprador con una conexión inestable nunca deja tu script colgado. Verifica si getCart() es null en lugar de asumir que llegó un carrito.
Llamar a ready() después de que el carrito ya se cargó se resuelve inmediatamente, así que es seguro usarla como una compuerta general de “el carrito ya existe” en cualquier parte de tu código.
context
window.aftersell.cart.context contiene datos del comprador renderizados por el servidor, legibles de forma síncrona, sin necesidad de ready(). Úsalo para ramificaciones por mercado o país que deben ocurrir antes de que el carrito se cargue.
Para mostrar configuraciones de bloque diferentes por mercado, país o moneda, usa las condiciones en el editor del carrito en su lugar. No se requiere script. La UI completa de Conditions está disponible hoy en Rewards.
shadowRoot
document.querySelector no puede ver nada dentro del drawer. Para alcanzar un elemento en el carrito, consulta el shadow root:
cart-external-* que usa Custom CSS. Esos son los asideros soportados. Las gemelas cart-internal-* son la fontanería propia del carrito, así que consulta las externas en su lugar.
El shadow root solo está presente una vez que el carrito ha arrancado, así que léelo dentro de ready() o de un handler de eventos en lugar de al principio de tu script.
Depuración
Cuando tu script lanza una excepción
configure, events.on y hooks.register* debajo de esa línea nunca se ejecuta. El carrito lo dice explícitamente:
aftersell-cart-init.js y aftersell-cart-cart-update.js en DevTools. Puedes abrirlos desde el panel Sources y establecer breakpoints como en cualquier otro archivo.
El canal de depuración
Adónde ir después
Configure
Cada opción, con un ejemplo cada una.
Events
Cada evento, cuándo se dispara y qué no hacer en un handler.
Actions
Cada acción, con un snippet cada una.
Hooks
Cada hook, y cómo se componen los registros.
Objeto cart
La forma del carrito y sus líneas.
Casos de uso
Soluciones completas y ejecutables a solicitudes comunes.