Para una versión configurada por el comerciante con niveles, reglas por mercado y una barra de progreso, usa el bloque Rewards, sin código. Esto es para cuando tu regla es algo que el bloque no puede expresar.
El snippet
Cómo funciona
reconcileGift describe el estado en el que el carrito debería estar, y luego hace como máximo un cambio para llegar ahí:
- Califica y el regalo no está →
addItemlo agrega. - No califica y el regalo está →
removeItemlo elimina, por lakeyde la línea. - De lo contrario → no hace nada.
cart_loaded (para que un carrito que ya califica al cargar la página reciba el regalo) como en cart_updated (para que reaccione a cada cambio posterior). Como cart_loaded se reproduce para los suscriptores tardíos, esto funciona sin importar cuándo se ejecute tu script.
Ten en cuenta que agregar el regalo aumenta el total del carrito, así que un umbral cercano al precio de un producto puede oscilar: agregar un regalo de $0 es seguro, pero un regalo con precio podría empujar el carrito por encima del umbral por sí solo. Mantén el regalo gratis, o compara contra un total que lo excluya.
Adaptarlo
context, que está disponible antes de que el carrito se cargue:
Una transformación de línea no puede ocultar los controles de cantidad de una línea: sus únicos setters son
setTitle, setVariantTitle, setHidden y setInternalProperties. Si un comprador cambia la cantidad del regalo, corrígela desde un handler de cart_updated en su lugar.Adónde ir después
- Bloque Rewards: la versión sin código, con niveles.
- Acciones:
addItem,removeItemy el resto. - Eventos: por qué importan las protecciones.