# Cupones
URL: https://invox.page/docs/sales/coupons



Un **cupón** es un descuento que el cliente trae a la caja. Lo defines una
vez como **campaña** — cuánto descuenta, sobre qué, hasta cuándo y con qué
límites — y luego emites sus **códigos**: los cupones impresos con QR que repartes, o
un código legible como `PROMO10` que publicas.

Se gestionan en **Ajustes** → **Cupones**. No hay que activar nada: la
campaña que creas es la que empieza a valer.

Un cupón no es lo mismo que un **descuento** del catálogo. El descuento es
una regla de precio que el producto lleva puesta y se aplica solo; el cupón
lo trae el cliente y solo baja el precio si alguien lo canjea en la venta.

La campaña y sus códigos [#la-campaña-y-sus-códigos]

La **campaña** es la promesa comercial. La creas con **Nueva campaña**:

* **Valor** — **Porcentaje** o **Monto fijo**. En un negocio que vende con
  impuesto incluido, el monto fijo se escribe como tus precios: con
  impuesto.
* **Alcance** — **Toda la venta** descuenta el ticket completo;
  **Productos elegibles** descuenta solo los productos, categorías, marcas o
  etiquetas que elijas.
* **Tiendas** — todas, o las que marques. **Todas las tiendas** incluye las
  que abras después.
* **Vigencia** — **Desde** / **Hasta**, o sin fecha de fin.
* **Límites** — **Usos totales** (sumando todos los códigos), **Usos por
  código** (`1` para cupones de un solo uso), **Compra mínima** y **Uno por
  cliente**. Cualquiera puede quedar vacío: vacío es sin límite.

Los **códigos** son lo que el cliente presenta, y son de dos clases:

| Clase        | Cómo se crea                                              | Para qué sirve                                                           |
| ------------ | --------------------------------------------------------- | ------------------------------------------------------------------------ |
| **Generado** | **Generar códigos** — un lote de códigos únicos con QR    | Se reparten impresos: cada uno vale por sí mismo y lo usa quien lo tenga |
| **Legible**  | **Agregar código legible** — lo eliges tú, como `PROMO10` | Una campaña abierta: se publica, se teclea y lo usa cualquiera           |

La diferencia que importa: un **código generado es al portador**. Quien
tenga el cupón impreso lo canjea, como un billete — por eso nunca se imprime
completo en un comprobante. Un **código legible** se comparte y se teclea,
y por eso se controla con los límites de la campaña, no con el secreto.

El estado de una campaña [#el-estado-de-una-campaña]

No lo eliges: se deduce de lo que configuraste.

| Estado          | Qué significa                                                    |
| --------------- | ---------------------------------------------------------------- |
| **Activa**      | Vigente y con usos disponibles                                   |
| **Programada**  | Su fecha de inicio aún no llega                                  |
| **Vencida**     | Pasó su fecha de fin                                             |
| **Agotada**     | Llegó al límite de usos totales                                  |
| **Desactivada** | La apagaste tú (**Desactivar**) — sus códigos dejan de aceptarse |

**Eliminar campaña** hace que sus códigos dejen de funcionar; las ventas que
ya la usaron conservan su descuento. Un código suelto también se puede
desactivar sin tocar la campaña: un código desactivado se rechaza en caja.

Repartir los códigos [#repartir-los-códigos]

Un lote generado nace listo para imprimir. Desde **Documentos** —o al
terminar de generarlo— descargas el **PDF A4** del lote: los cupones con su
QR, el valor y el nombre de la campaña, para imprimir y recortar.

Un código suelto tiene además sus propias salidas: **Compartir imagen**,
**Descargar imagen**, **Enviar por email** e **Imprimir ticket** en la
impresora del mostrador. Un cupón que entregas en caja no necesita imprenta.

Canjear en la venta [#canjear-en-la-venta]

En el carrito, la fila **Cupón** abre la hoja **Aplicar cupón**: escanea el
cupón o escribe el código. Al aplicarse, la fila muestra el código y el
monto descontado, y el total baja.

El cupón **entra como descuento global** de la venta, y por eso **no se
combina con un descuento global escrito a mano**: si ya habías puesto uno,
el cupón lo reemplaza y la app te lo avisa; con un cupón puesto, la fila de
descuento global queda bloqueada con *No se combina con un cupón*. Para
volver al descuento manual, quita el cupón.

Los descuentos **por artículo** sí conviven con el cupón: son otra cosa y se
suman.

Una venta lleva **un cupón**. Las ventas de gift cards no admiten cupones.

Cuando el cupón no descuenta [#cuando-el-cupón-no-descuenta]

No siempre es un error. Si el carrito todavía no califica, el cupón se
queda puesto con la etiqueta **No aplica** y su razón — *Falta S/ 8.00 para
el mínimo*, *Ningún artículo del carrito participa* — y entra solo en
cuanto agregues lo que falta. Con **Uno por cliente**, la fila pide
identificar al cliente antes de aplicarlo.

Un código que el servidor rechaza sí dice por qué: no existe, está
desactivado, su campaña no está vigente, ya se usó todas las veces, no es
válido en esta tienda, o ese cliente ya lo usó.

Internet [#internet]

**Aplicar** un cupón necesita conexión: el servidor es quien valida el
código y reserva el uso, y es lo que impide que el mismo cupón de un solo
uso se gaste dos veces en dos cajas.

**Cobrar** con el cupón ya aplicado, no. Si se corta el internet después de
aplicarlo, la venta se cobra con el último monto calculado y la fila lo
dice: *sin recalcular, se liquida al sincronizar*. Al volver la conexión,
el servidor cuadra la venta.

Los canjes [#los-canjes]

Cada campaña lleva su registro en **Redenciones**, con la venta y el monto
de cada canje. Un canje puede estar:

| Estado           | Qué pasó                                                                                                                                                  |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **En reserva**   | El cupón está puesto en un carrito que todavía no se cobró                                                                                                |
| **Liberada**     | El uso volvió: se quitó en caja, se vació el carrito, se anuló la venta o lo liberaste a mano                                                             |
| **Sin liquidar** | La venta llegó con un monto distinto al reservado, o sobre un uso ya liberado. La venta **se acepta siempre**; el canje queda marcado para que lo revises |

Una reserva no vence con el reloj. Si un carrito quedó abandonado con un
cupón puesto —y con él, un uso ocupado—, lo sueltas con **Liberar** desde
la redención. La app avisa antes: si esa venta se hizo sin conexión y aún no
sincroniza, libera solo si la venta no ocurrió.

Cuando la venta se cobra, su comprobante nombra el descuento con el cupón:
**Cupón PROMO10** donde diría *Descuento global*. Un código generado se
imprime enmascarado (`Cupón ····K3F9`) — el papel no reparte un cupón que
todavía vale.

Quién puede [#quién-puede]

Ver y gestionar campañas es de propietario, administrador y encargado; solo
propietario y administrador pueden eliminarlas. **Canjear** un cupón en la
venta no pide permiso aparte: puede hacerlo quien puede vender.
