POS — Promociones
¿Qué es?
Las promociones son descuentos que se aplican automática o manualmente a las órdenes. Se configuran con reglas de activación (artículos específicos, monto mínimo, días de la semana) y tipos de descuento (porcentaje, monto fijo, precio especial).
Se accede desde "Promociones" en el sidebar (ícono de etiqueta), URL: .../promotions. Solo visible si enablePromotions = true. Requiere permiso promotions:read.
---
Lista de promociones (.../promotions)
Muestra todas las promociones de la empresa. Para cada una:
- Nombre
- Tipo de descuento (porcentaje, monto fijo, precio especial)
- Alcance (toda la orden, artículos específicos, categoría)
- Estado activo/inactivo
- Fechas de vigencia (si las tiene)
- Botones de editar y eliminar
---
Crear / Editar promoción
Información básica
- Nombre (requerido) — ej. "2x1 martes", "Descuento 15%"
- Descripción (visible al cajero y al cliente)
- Activo/Inactivo
Tipo de descuento
| Tipo | Descripción |
|---|---|
percentage | Descuento de porcentaje (ej. 10%) |
fixed_amount | Descuento de monto fijo (ej. $50 de descuento) |
fixed_price | Precio fijo para los artículos (ej. "Todas las pizzas a $100") |
buy_x_get_y | Compra X artículos y obtén Y gratis o con descuento |
Alcance de la promoción
| Alcance | Descripción |
|---|---|
entire_order | Se aplica a todo el total de la orden |
specific_articles | Solo aplica a artículos seleccionados de la lista |
category | Solo aplica a artículos de una categoría específica |
Condiciones de activación
- Monto mínimo: la orden debe superar este monto para que aplique
- Días de la semana: solo válida en ciertos días (ej. lunes a viernes)
- Horario: solo válida en cierto rango de horas
- Fecha de inicio y fin: vigencia limitada en el tiempo
Artículos de la promoción
Si el alcance es specific_articles, se seleccionan los artículos a los que aplica el descuento.
Código de activación
- Sin código (promoción automática): puede aplicarse sin que el cliente introduzca nada
- Con código: el cajero debe ingresar un código para activarla (similar a un cupón pero con reglas más complejas)
---
Aplicación de promociones en el checkout
Durante una venta, en el carrito:
- El cajero puede seleccionar manualmente una promoción de la lista de disponibles
- Si
promotionAutoApply = true, el sistema evalúa todas las promociones activas y aplica la que genere mayor descuento - Si el cajero elimina manualmente una promoción auto-aplicada, no vuelve a aplicarse sola hasta vaciar el carrito
- Solo puede haber activas el número de promociones simultáneas configurado (
promotionMaxStack, default 1)
Cálculo del descuento
percentage:descuento = subtotal × (value / 100)fixed_amount:descuento = min(value, subtotal)fixed_price: los artículos incluidos se cobran al precio fijo en lugar del precio normalbuy_x_get_y: por cada X artículos comprados, los siguientes Y son gratuitos o con descuento
El descuento se refleja en el campo discount de la orden y en la línea de descuento del ticket.
---
Sucursales y promociones
Las promociones se pueden crear:
- Para toda la empresa (todas las sucursales)
- Para una sucursal específica (
branchIden la promoción)
Al cargar el catálogo de ventas, solo se cargan las promociones activas de la empresa + las de la sucursal activa.