Define variantes con SKU único y precios en centavos enteros
En el módulo de Catálogo cada producto puede tener una o varias presentaciones (por ejemplo, Café Geisha 250 g y 500 g), cada una con su propio código SKU, precio en centavos enteros, tasa de impuesto y control de inventario (trackInventory).
Guardar importes en centavos enteros evita errores de redondeo decimal: el servidor calcula subtotales, impuestos y recargo de entrega de forma determinista tanto al cotizar como al confirmar.
Validación atómica de existencias y reposición única al cancelar
Cuando un pedido incluye varios artículos, EMP comprueba bajo bloqueo transaccional la disponibilidad de todas las variantes antes de descontar una sola unidad. Si una variante no tiene stock suficiente, el pedido completo se rechaza sin dejar descuentos parciales.
| Acción en EMP | ¿Modifica stock_quantity? | Garantía en base de datos |
|---|---|---|
| Cotización o resumen previo (quoteOrder) | No | Verifica precios y existencias actuales para informar el total exacto sin comprometer unidades. |
| Confirmación del pedido (confirmOrder) | Sí, descuenta todas las líneas con trackInventory activo | Valida primero el 100 % de las variantes; registra inventory_deducted = true en cada línea descontada. |
| Cancelación del pedido (updateStatus -> cancelled) | Sí, repone una sola vez las unidades descontadas | Suma únicamente las líneas con inventory_deducted histórico y bloquea cancelar si hay un cobro Yappy en curso. |
| Ajuste manual de inventario | Sí, aplica el ajuste indicado por el operador autorizado | Exige motivo explícito y deja constancia en la bitácora de auditoría del negocio. |
Ejemplo de rechazo atómico cuando una variante se agota
Este escenario hipotético muestra cómo protege el servidor tu inventario cuando dos pedidos coinciden sobre las últimas unidades.
Antes de continuar
- Asigna un SKU claro y único a cada variante activa de tu catálogo.
- Registra siempre un motivo verificable cuando realices ajustes manuales de existencias.
- Recuerda que cancelar un pedido repone el stock descontado una sola vez, pero no ejecuta reembolsos bancarios.
La demo conserva datos en memoria. Las conexiones de proveedores requieren configuración, autorización y verificación en tu entorno persistente.