8 min

Trampas en la lógica de cupones: reglas de acumulación que no rompen carritos

Los fallos en la lógica de cupones pueden romper los totales de checkout. Aprende reglas de acumulación, exclusiones y patrones testables para evitar doble descuento y totales negativos.

Trampas en la lógica de cupones: reglas de acumulación que no rompen carritos

Por qué la lógica de promociones falla con frecuencia

Las promos parecen sencillas hasta que las pones en un checkout real. Un carrito cambia todo el tiempo, pero los descuentos a menudo se escriben como reglas puntuales. Ese hueco es donde aparecen la mayoría de los fallos en la lógica de cupones.

Lo difícil es que una sola regla nueva puede cambiar los totales en todos lados. Añade "10% de descuento, pero no en artículos en oferta" y tienes que decidir qué significa "oferta", cuándo se comprueba y sobre qué cantidad se aplica ese 10%. Si otra promo también afecta los mismos artículos, el orden importa, y el orden cambia el precio.

Muchos equipos también mezclan matemáticas con reglas de negocio. Un arreglo rápido como "limitar el descuento al subtotal" se copia en tres sitios, y pronto obtienes respuestas distintas según dónde se calcule el total (página del carrito, checkout, factura, correo).

Los momentos de alto riesgo son cuando tu sistema recomputa precios:

  • Actualizaciones del carrito: cambio de cantidad, artículo eliminado, método de envío cambiado
  • Ediciones tras el pago: cambios de dirección, cancelaciones parciales, sustituciones de artículo
  • Reembolsos y devoluciones: prorrateo entre artículos, ajustes de impuestos, crédito en tienda
  • Cambios de moneda o modo de impuestos: neto vs bruto, totales con impuestos incluidos

Un pequeño ejemplo: un comprador añade un paquete, luego aplica un código "$20 off $100", y después quita un artículo. Si tu código todavía "recuerda" el subtotal antiguo, puedes acabar dando $20 de descuento a un carrito de $85, o incluso dejar una línea de artículo en negativo.

Al final de este artículo deberías poder prevenir los fallos de promo más comunes: doble descuento, totales distintos entre pantallas, totales negativos, descuentos aplicados a artículos excluidos y reembolsos que no concuerdan con lo que el cliente pagó originalmente.

Empieza con reglas claras de acumulación y prioridad

La mayoría de los fallos en la lógica de cupones comienzan por una frase que falta: qué descuentos pueden aplicarse juntos y en qué orden. Si no puedes explicar las reglas de acumulación en lenguaje sencillo, tu carrito acabará haciendo algo sorprendente.

Define la acumulación con afirmaciones simples de sí o no. Por ejemplo: "Un cupón manual por pedido. Las promos automáticas pueden seguir aplicándose a menos que el cupón diga que las bloquea." Esa línea evita combinaciones aleatorias que conducen a doble descuento.

Separa pronto los descuentos a nivel de artículo de los descuentos a nivel de pedido. Las reglas a nivel de artículo cambian el precio de productos específicos (por ejemplo, 20% en zapatos). Las reglas a nivel de pedido cambian el total (por ejemplo, $10 de descuento al carrito). Mezclarlas sin estructura hace que los totales diverjan entre la página de producto, el carrito y el checkout.

Decide qué significa "mejor oferta" antes de programar. Muchos equipos eligen "máximo ahorro", pero eso puede romper los pisos de precio. También podrías necesitar reglas como "nunca descontar por debajo del coste" o "nunca dejar el envío en negativo". Elige una regla ganadora clara para que el motor no adivine.

Un orden de prioridad simple mantiene los conflictos predecibles:

  • Promos automáticas primero (reglas de catálogo o estacionales)
  • Cupones manuales después (lo que el cliente escribió)
  • Crédito de tienda o tarjeta regalo al final (medio de pago, no descuento)
  • Impuestos y envío recalculados después de los descuentos

Ejemplo: un carrito tiene un 10% automático en todos los artículos y además un cupón escrito de $15 off en pedidos superiores a $100. Si tu prioridad dice que lo automático va primero, puedes responder claramente: ¿el umbral de $100 usa el subtotal antes del descuento o el subtotal después del descuento? Escríbelo y mantenlo coherente en todas partes.

Una vez escritas estas decisiones, tus reglas de acumulación de cupones se convierten en reglas comprobables, no en comportamientos ocultos. Esa es la forma más rápida de evitar fallos más adelante.

Modela los descuentos como datos simples y explícitos

Muchos fallos comienzan cuando los descuentos viven como comprobaciones if-else dispersas por el código de checkout. Un enfoque más seguro es tratar cada promo como datos con un tipo, alcance y límites claros. Entonces las matemáticas del carrito se reducen a un evaluador pequeño y predecible.

Empieza nombrando el tipo de descuento, no la idea de marketing. La mayoría de las promos encajan en pocas formas: porcentaje, cantidad fija, artículo gratis (o compra X lleva Y) y envío gratis. Si puedes expresar una promo usando uno de estos tipos, evitas casos especiales difíciles de testear.

Después, haz el alcance explícito. Un mismo porcentaje se comporta muy distinto según a qué se dirija. Define si se aplica al pedido entero, a una categoría, a un producto, a una línea de artículo o al envío. Si el alcance es ambiguo, acabarás descontando del subtotal equivocado o descontando dos veces.

Captura las restricciones como campos, no como comentarios en el código. Las comunes son gasto mínimo, solo primer pedido y rango de fechas. También registra cómo debe comportarse con precios en oferta: acumula encima, aplicar al precio original o excluir artículos rebajados.

Un esquema compacto de regla podría incluir:

  • type (percent, fixed, free_item, free_shipping)
  • scope (order, category, product, item, shipping)
  • constraints (min_spend, first_order, start_at, end_at)
  • floors (min_total = 0, min_item_price, optional min_margin)
  • rounding policy (por item vs por pedido)

Finalmente, añade pisos de precio que el motor siempre debe respetar: totales nunca por debajo de cero, y si tu negocio lo exige, artículos nunca por debajo del coste (o por debajo de un precio mínimo definido). Si construyes esto, previenes totales negativos y casos extremos donde "pagamos al cliente".

Si prototipas un motor de descuentos en Koder.ai, mantén estos campos visibles en tu modo de planificación para que el evaluador siga simple y testeable a medida que añades más promos.

Paso a paso: una forma segura de evaluar promos

La mayoría de los fallos aparecen cuando las comprobaciones de elegibilidad y las matemáticas se mezclan. Un patrón más seguro es en dos fases: primero decide qué puede aplicarse, luego calcula los montos. Esa separación mantiene las reglas legibles y hace más fácil prevenir estados malos (como totales negativos).

Un orden de evaluación determinista

Usa el mismo orden siempre, incluso si las promos llegan en distinto orden desde la UI o la API. La determinación importa porque convierte "¿por qué cambió este carrito?" en una pregunta que puedes responder.

Un flujo simple que funciona bien:

  • Validar entradas: formato del código promo, ventana de fechas, alcance del cliente, moneda y que los precios no sean negativos.
  • Seleccionar promos elegibles: ejecutar solo elegibilidad (sin dinero todavía). Construir una lista de candidatas.
  • Resolver acumulación y prioridad: aplicar tus reglas de acumulación (ej: "máximo un promo a nivel pedido") y empates (prioridad, luego mejor valor, luego ID estable).
  • Aplicar cálculos: calcular descuentos usando una base consistente (pre-impuesto vs post-impuesto, envío incluido o no) y reglas de redondeo.
  • Resumir totales: recalcular totales del pedido desde los totales de línea, luego limitar a cero y hacer respetar los límites máximos de descuento.

Registrar un desglose y una traza de auditoría

Cuando aplicas promos, no guardes solo un "total de descuento". Conserva un desglose por línea y por pedido para poder conciliar totales y explicarlos.

Como mínimo, registra:

  • Qué regla o promo se aplicó (ID y versión), y su prioridad
  • Por qué se aplicó (hechos de elegibilidad como "categoria=zapatos", "subtotal del carrito >= 50")
  • Qué cambió (IDs de líneas afectadas, cantidad base, monto de descuento, redondeo)
  • Qué previno (ej: "bloqueado por exclusión: ya tiene descuento a nivel de artículo")

Ejemplo: un carrito tiene dos artículos, uno ya en oferta. La Fase 1 marca el código elegible solo para el artículo a precio completo. La Fase 2 aplica 10% a esa línea, deja la línea en oferta sin cambios y luego recalcula los totales del pedido desde el desglose de líneas para no descontar doble por accidente.

Codifica exclusiones sin crear lógica enmarañada

Lanza un servicio de promos testeable
Despliega y hospeda tu servicio de promociones rápidamente para que las pruebas coincidan con producción.

La mayoría de los fallos empiezan cuando las exclusiones están escondidas dentro de ramas de casos especiales como "si el código es X, saltar Y." Funciona para una promo, luego falla cuando llega la siguiente.

Un patrón más seguro es: mantén un único flujo de evaluación y convierte las exclusiones en un conjunto de comprobaciones que pueden rechazar una combinación de promos antes de calcular dinero. Así los descuentos nunca se aplican a medias.

Trata las exclusiones como datos, no como ramificaciones

En vez de codificar comportamientos, da a cada promo un pequeño "perfil de compatibilidad" explícito. Por ejemplo: tipo de promo (cupón vs venta automática), alcance (artículos, envío, pedido) y reglas de combinación.

Soporta ambos:

  • Lista de "No combinar con" (denylist): la promo A bloquea la promo B.
  • Lista de "Solo combinar con" (allowlist): la promo A solo puede acumularse con un conjunto nombrado.
  • Banderas de regla como "bloquea ventas automáticas" o "requiere no tener otros cupones".

La clave es que tu motor haga las mismas preguntas para cada promo y luego decida si el conjunto es válido.

Haz los conflictos explícitos, incluidas las ventas automáticas

Las ventas automáticas suelen aplicarse primero, y luego llega un cupón que las anula silenciosamente. Decide desde el inicio qué debe ocurrir:

  • El cupón se apila sobre la oferta
  • El cupón solo se aplica a artículos no rebajados
  • El cupón se rechaza si hay una oferta activa

Elige una por promo y codifícala como una comprobación, no como una ruta de cálculo alternativa.

Una forma práctica de evitar sorpresas es validar la simetría. Si "WELCOME10 no puede combinarse con FREESHIP" debe ser mutuo, codifícalo para que bloquee en ambas direcciones. Si no es mutuo, que sea intencional y visible en los datos.

Ejemplo: hay una venta automática del 15% en todo el sitio. Un cliente introduce un cupón del 20% pensado solo para artículos a precio completo. Tus comprobaciones deberían rechazar los artículos en oferta para el cupón antes de calcular totales, en lugar de descontarlos y luego intentar arreglar las cifras.

Si construyes tus reglas en una plataforma como Koder.ai, mantén estas comprobaciones como una capa separable y testeable para cambiar reglas sin reescribir las matemáticas.

Casos límite que causan totales distintos

La mayoría de las disputas sobre promos no se deben al descuento principal. Ocurren cuando el mismo carrito se calcula de dos formas ligeramente diferentes, y el cliente ve un número en el carrito y otro en el checkout.

Empieza por bloquear tu orden de operaciones. Decide y documenta si los descuentos a nivel de artículo ocurren antes de los descuentos a nivel de pedido, y dónde encaja el envío. Una regla común es: descuentos de artículo primero, luego descuento de pedido sobre el subtotal restante, luego descuentos de envío al final. Sea lo que elijas, usa la misma secuencia exacta donde sea que muestres un total.

Los impuestos son la siguiente trampa. Si tus precios incluyen impuestos, un descuento reduce también la porción de impuesto. Si los precios excluyen impuestos, el impuesto se calcula después de los descuentos. Mezclar estos modelos en distintas partes del flujo es uno de los fallos clásicos porque dos cálculos correctos pueden discrepar si asumen bases de impuesto diferentes.

Los problemas de redondeo parecen pequeños pero generan muchos tickets de soporte. Decide si redondeas por línea (cada SKU después del descuento) o solo a nivel de pedido, y mantente con la precisión de la moneda. Con cupones porcentuales, el redondeo por línea puede desviarse por unos centavos frente al redondeo por pedido, sobre todo con muchos artículos de bajo precio.

Estos casos límite valen la pena tratarlos explícitamente:

  • Devoluciones y reembolsos parciales: prorratea los descuentos entre artículos para que los reembolsos no superen lo pagado.
  • Ediciones del carrito después de aplicar un cupón: reevalúa la elegibilidad y los topes cuando se añaden o quitan artículos.
  • Cambios de envío: cambiar dirección o método puede variar montos imponibles y la elegibilidad del descuento de envío.
  • Cambios de cantidad: repetir el mismo artículo puede cruzar umbrales (por ejemplo, gasto mínimo o compra-X-lleva-Y).
  • Artículos con distintos tratamientos fiscales: algunos pueden no ser gravables, pero aun así elegibles para cupones.

Un ejemplo concreto: un cupón de 10% al pedido más envío gratis en pedidos superiores a $50. Si el cupón se aplica antes de comprobar el umbral, el subtotal descontado puede quedar por debajo de $50 y el envío deja de ser gratis. Elige una interpretación, codifícala y mantenla consistente en carrito, checkout y reembolsos.

Bugs comunes de promos y cómo ocurren

La mayoría de los fallos aparecen cuando el carrito se evalúa por más de una vía. Una promo puede aplicarse a nivel de línea en un lugar y de nuevo a nivel de pedido en otro, y ambas pueden parecer "correctas" por separado.

Aquí están los bugs que aparecen con más frecuencia y la causa habitual detrás de cada uno:

  • Doble descuento a los mismos artículos: la misma promoción se aplica una vez en el precio por línea y otra al calcular el total del pedido, a menudo porque dos servicios intentan aplicar descuentos.
  • Totales negativos o líneas en negativo: un descuento de cantidad fija puede exceder la cantidad elegible (ej. $20 off aplicado a un subtotal elegible de $12) sin un piso en cero.
  • Descuento porcentual aplicado después de otro descuento por accidente: el motor aplica 10% sobre un precio ya rebajado cuando la regla pretendía "10% sobre precio de lista", porque el código usó el precio actual en vez del precio base.
  • Gasto mínimo comprobado contra el subtotal equivocado: la regla comprueba el subtotal pre-descuento, pero el negocio esperaba post-descuento (o al revés), llevando a promos que se aplican o fallan de forma sorprendente.
  • Artículos excluidos aún reciben el cupón: la elegibilidad depende de etiquetas de producto, pero un etiquetado faltante o inconsistente (o una ruta por defecto) trata artículos desconocidos como elegibles.

Un ejemplo concreto: un carrito tiene dos artículos, uno elegible y otro excluido. Si el motor calcula correctamente el "subtotal elegible" para la promo porcentual, pero después resta un descuento fijo del total del pedido completo, el artículo excluido acaba siendo descontado igualmente.

El patrón más seguro es calcular cada promo contra una "cantidad elegible" explícita y devolver un ajuste acotado (nunca por debajo de cero), además de una traza clara de qué tocó. Si generas tu motor de descuentos en una herramienta como Koder.ai, haz que emita la traza como datos para que tus pruebas puedan afirmar exactamente qué líneas fueron elegibles y qué subtotal se usó.

Haz las reglas testeables con la suite de pruebas adecuada

Especifica reglas antes de programar
Usa el modo de planificación para escribir las reglas en lenguaje claro antes de generar código.

La mayoría de los fallos aparecen porque las pruebas solo verifican el total final. Una buena suite comprueba tanto la elegibilidad (¿debería aplicarse esta promo?) como las matemáticas (¿cuánto debería descontar?), con un desglose legible que puedas comparar con el tiempo.

Construye pruebas de pequeñas a reales

Comienza con tests unitarios que aislen una regla a la vez. Mantén la entrada pequeña y luego amplía a escenarios completos.

  • Tests de elegibilidad: ¿se aplica la promo según tipo de cliente, fechas, etiquetas de producto y gasto mínimo?
  • Tests de matemáticas: dado un subtotal elegible fijo, ¿coincide el cálculo con las reglas de redondeo y moneda?
  • Tests de escenario: artículos mixtos, cantidades, envío, impuestos y un par de promos compitiendo.
  • Tests de "carrito cambiado": precio actualizado, artículo eliminado o cantidad cambiada entre evaluación y checkout.
  • Tests de snapshot del desglose: guarda la asignación esperada de descuento línea por línea, no solo el total final.

Después de tener cobertura, añade algunas comprobaciones "siempre verdaderas". Estas detectan los casos raros que no pensaste escribir a mano.

  • El total nunca baja de 0.00.
  • Un descuento nunca aumenta el total.
  • El descuento aplicado nunca es mayor que su base elegible.
  • Quitar un artículo no elegible no puede aumentar el descuento.

Un pequeño ejemplo de carrito

Imagina un carrito con 2 artículos: una camiseta a $40 (elegible) y una tarjeta regalo a $30 (excluida). Envío $7. Una promo es "20% en ropa, máximo $15", y otra es "$10 off en pedidos > $50" que no puede acumularse con descuentos porcentuales.

Tu test de escenario debe afirmar qué promo gana (por prioridad), confirmar que la tarjeta regalo está excluida y verificar la asignación exacta: 20% de $40 es $8, envío sin cambios, total final correcto. Guarda ese desglose como un snapshot dorado para que futuros refactors no cambien silenciosamente qué promo se aplica o que empiecen a descontar líneas excluidas.

Lista rápida de comprobaciones antes de lanzar

Antes de activar una nueva promo, haz una pasada final con una checklist que atrape las fallas que los clientes notan al instante: totales raros, mensajes confusos y reembolsos que no cuadran. Estas comprobaciones también ayudan a evitar los fallos más comunes porque obligan a que las reglas se comporten igual en cada carrito.

Corre estas comprobaciones contra un pequeño conjunto de "carritos complicados conocidos" (un artículo, muchos artículos, tasas de impuesto mixtas, envío y una línea de alta cantidad). Guarda los carritos para volver a ejecutarlos cada vez que cambies código de precios.

Las cinco comprobaciones que atrapan la mayoría de fallos

  • Guardarraíles en los totales: El total final y el precio neto de cada línea nunca deben bajar de cero. Si un descuento excedería lo que puede aplicarse, capéalo y registra la cantidad capada.
  • Matemáticas explicables: El desglose de descuento mostrado al comprador (por promo, por línea, por envío) debe sumar exactamente lo pagado. Si no puedes explicarlo en una frase, las reglas son demasiado vagas.
  • Una política de acumulación, sin sorpresas: Decide y verifica qué puede acumularse (cupón con promo automática, porcentaje con cantidad fija, descuento de envío con descuento de artículo). Haz explícito el orden de prioridad y confirma que coincide con lo que tu equipo de soporte dirá.
  • Redondeo consistente: Elige una regla de redondeo (por línea vs por pedido, mitad hacia arriba vs bankers, decimales por moneda). Documenta y prueba con precios como $0.99, cantidades como 3 y descuentos porcentuales mixtos.
  • Devoluciones y reembolsos correctos: Las devoluciones parciales deben reembolsar la porción correcta de descuentos, impuestos y envío. Prueba "devolver 1 de 3 artículos", "devolver primero el artículo con descuento" y "reembolsar después de que la promo expire."

Si construyes tus reglas de descuento en un generador como Koder.ai, añade estos casos como tests automatizados junto a las definiciones de reglas. El objetivo es simple: cualquier promo futura debe fallar rápido en tests en lugar de fallar en el carrito de un cliente.

Un escenario realista de acumulación para validar tus reglas

Comparte una demo de checkout real
Pon tu checkout de staging en un dominio personalizado para compartir pruebas realistas con stakeholders.

Aquí tienes un carrito pequeño que expone la mayoría de los fallos sin complicarlo demasiado.

Asume estas reglas (escríbelas exactamente así en tu sistema):

  • La promo automática se aplica primero, a nivel de artículo, solo en artículos completos elegibles
  • El cupón es a nivel de pedido, $15 off, requiere al menos $100 en mercancía elegible
  • "Mercancía elegible" excluye artículos en oferta, envío e impuestos
  • El descuento del cupón no puede exceder el subtotal elegible después de promos anteriores
  • El impuesto se calcula después de los descuentos (sobre mercancía descontada más envío)

Carrito y promos

Carrito:

LineaPrecioNotas
Artículo A$60precio completo, elegible
Artículo B$40precio completo, elegible
Artículo C$30artículo en oferta, excluido
Envío$8tarifa

Promos:

  • Promo 1: venta automática 10% de fin de semana en artículos elegibles
  • Promo 2: cupón $15 off, min $100 de mercancía elegible, excluye artículos en oferta

Paseo y desglose final

  1. Comprueba el mínimo del cupón: la mercancía elegible antes de descuentos es $60 + $40 = $100, así que el cupón puede aplicarse.

  2. Aplica Promo 1 (10% en artículos elegibles): $100 x 10% = $10 de descuento. El subtotal elegible pasa a $90.

  3. Aplica Promo 2 ($15 off): el tope es $90, así que aplica el $15 completo. Nuevo subtotal elegible: $75.

Totales:

  • Mercancía: elegible $75 + artículo en oferta $30 = $105
  • Envío: $8
  • Impuesto (8%): (105 + 8) x 0.08 = $9.04
  • Total final: $105 + $8 + $9.04 = $122.04

Ahora cambia una cosa: el cliente quita el Artículo B ($40). La mercancía elegible pasa a $60, así que el cupón falla la comprobación de gasto mínimo. Solo queda la promo automática del 10%: el Artículo A queda $54, la mercancía es $54 + $30 = $84, y el total final pasa a $99.36. Este es el tipo de "pequeña edición" que suele romper carritos si la elegibilidad y el orden no son explícitos.

Siguientes pasos: lanzar promos con seguridad y mantenerlas manejables

La forma más rápida de evitar fallos es tratar las promos como reglas de producto, no como "un poco de matemática en el checkout." Antes de lanzar, escribe una especificación corta que cualquiera en el equipo pueda leer y aceptar.

Incluye cuatro cosas, en lenguaje claro:

  • Reglas de acumulación (qué puede combinarse y qué no)
  • Orden de prioridad (qué descuento gana cuando dos apuntan a los mismos artículos)
  • Exclusiones (categorías, marcas, artículos en oferta, suscripciones, tarjetas regalo)
  • Pisos y topes (subtotal mínimo, máximo descuento y "nunca por debajo de $0")

Tras el lanzamiento, vigila los totales como vigilas los errores. Un bug de descuento a menudo parece un pedido válido hasta que finanzas lo revisa.

Configura monitorización que marque pedidos con patrones inusuales, como totales cercanos a cero, totales negativos, descuentos mayores que el subtotal o picos repentinos en carritos "100% off." Dirige las alertas al mismo sitio donde van los errores de checkout y mantén un pequeño playbook sobre cómo desactivar una promo de forma segura.

Para añadir nuevas promos sin regresiones, usa un flujo repetible: actualiza la especificación primero, codifica la regla como datos (no como ramas), añade tests para algunos carritos "normales" más uno o dos casos límite, y luego ejecuta la suite completa de tests de descuento antes de hacer merge.

Si quieres implementar e iterar más rápido, puedes prototipar flujos del motor de promos en Koder.ai usando el modo de planificación, luego usar snapshots y rollback mientras afinas tus tests. Te ayuda a probar cambios de reglas rápidamente sin perder una versión conocida y estable.

Preguntas frecuentes

¿Qué son las reglas de acumulación de cupones?

Redacta una política de acumulación antes de programar. Indica qué promociones automáticas, cupones, ofertas de envío y créditos de tienda pueden combinarse, y define el orden en que el carrito los evalúa.

¿Cómo evito que un cupón genere un total negativo?

Aplica el descuento fijo solo al importe elegible y limita el resultado a cero. Vuelve a calcular ese límite cada vez que cambie el carrito, en lugar de reutilizar un subtotal anterior.

¿Cómo puede un cupón excluir artículos en oferta?

Mantén los artículos en oferta en el carrito, pero exclúyelos del subtotal elegible del cupón antes de calcular el descuento. Guarda esa exclusión en la regla de la promoción para que todas las pantallas muestren el mismo resultado.

¿Las promociones automáticas deben aplicarse antes que los códigos de cupón?

Usa una secuencia de evaluación fija. Por ejemplo, aplica primero las promociones por artículo, después los cupones del pedido, luego las ofertas de envío y calcula los impuestos al final si tu política fiscal lo exige.

¿Qué datos debe incluir una regla de descuento?

Asigna a cada promoción un tipo, alcance, restricciones, exclusiones, límites mínimos y una política de redondeo. Así, el evaluador puede usar la misma estructura de datos en lugar de casos especiales dispersos.

¿Por qué necesito un registro de auditoría de promociones?

Registra el ID y la versión de la promoción aplicada, las líneas afectadas, el importe base elegible, el importe del descuento, el resultado del redondeo y cualquier promoción bloqueada. Esto permite que soporte y finanzas expliquen el precio final sin reconstruir el pedido a mano.

¿Cuándo debe recalcular el proceso de pago un descuento?

Vuelve a evaluar todas las promociones cuando cambien la cantidad, los artículos, la dirección, el método de envío, la moneda o la configuración fiscal. Un cupón válido puede dejar de serlo cuando el cliente elimina un artículo o no alcanza un umbral de gasto.

¿Cómo evito que los totales del carrito y del proceso de pago no coincidan?

Elige un único método de redondeo, como redondear cada línea o solo el total del pedido, y úsalo en todas partes. Las pequeñas diferencias se hacen visibles cuando un descuento porcentual se aplica a varios artículos de bajo precio.

¿Cómo deben gestionar los reembolsos parciales los descuentos?

Distribuye el descuento original entre los artículos comprados y reembolsa solo la parte pagada de ese artículo, incluido el ajuste fiscal correspondiente. No calcules el reembolso con las reglas promocionales actuales, porque la promoción puede haber caducado o el carrito puede haber cambiado.

¿Qué pruebas detectan la mayoría de los errores de promociones?

Prueba la elegibilidad, los cálculos, las exclusiones, los conflictos de acumulación, las ediciones del carrito, el redondeo, los impuestos y las devoluciones parciales. Comprueba también que ningún descuento supere su base elegible y que los totales nunca bajen de cero.

Related posts