# Cupones

Los cupones le permiten ofrecer descuentos a sus clientes durante el checkout. Puede crear cupones de porcentaje o de monto fijo que se apliquen a todo el pedido, a un producto específico o al costo de envío. Cada cupón tiene un código único que los clientes ingresan en el checkout para recibir el descuento.

Capyshop admite tres tipos de descuento:

| Tipo de descuento     | Qué descuenta                                               |
| --------------------- | ----------------------------------------------------------- |
| **Order Discount**    | Reduce el subtotal del pedido (antes del envío e impuestos) |
| **Product Discount**  | Reduce el precio de un producto específico en el carrito    |
| **Shipping Discount** | Reduce el costo de envío                                    |

## Visualización de sus cupones

Abra **Coupons** en la barra lateral del administrador para ver la lista completa. La tabla muestra el código, el nombre, el tipo, el valor del descuento, el número de usos, el estado y un menú de acciones de cada cupón.

![Lista de cupones](/features/coupons/coupons-list.png)

| Columna  | Descripción                                                                                  |
| -------- | -------------------------------------------------------------------------------------------- |
| Code     | El código único del cupón (haga clic para editar)                                            |
| Name     | Nombre para mostrar del cupón                                                                |
| Type     | Uno de: Order Discount, Product Discount o Shipping Discount                                 |
| Discount | El valor del descuento mostrado como porcentaje (p. ej., 46 %) o monto fijo (p. ej., $40,30) |
| Uses     | Cuántas veces se ha utilizado el cupón                                                       |
| Status   | **Active**, **Inactive** o **Expired**                                                       |
| Actions  | Menú desplegable con las opciones Edit y Delete                                              |

Puede **ordenar** haciendo clic en cualquier encabezado de columna, **buscar** escribiendo en la barra de búsqueda y **filtrar** por estado (All, Active, Inactive, Expired) mediante el botón **Filter**.

### Acciones masivas

Seleccione varios cupones mediante las casillas de verificación para mostrar los botones de acción masiva:

- **Activate** — habilitar los cupones seleccionados
- **Deactivate** — deshabilitar los cupones seleccionados
- **Delete** — eliminar permanentemente los cupones seleccionados (con confirmación)

## Creación de un cupón

Haga clic en **New Coupon** en la página de lista para abrir el formulario de creación.

![Crear cupón](/features/coupons/create-coupon.png)

### Detalles del cupón

| Campo  | Obligatorio | Descripción                                                                                                                                              |
| ------ | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name   | Sí          | Un nombre para mostrar del cupón (p. ej., "Summer Sale")                                                                                                 |
| Code   | Sí          | El código que los clientes ingresarán en el checkout. Se convierte automáticamente a mayúsculas. No distingue entre mayúsculas y minúsculas al aplicarse |
| Active | No          | Activa o desactiva el cupón. Solo los cupones activos pueden aplicarse en el checkout                                                                    |

### Configuración de la regla

| Campo                | Obligatorio | Descripción                                                                                                                 |
| -------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------- |
| Discount Type        | Sí          | Elija entre Order Discount, Product Discount o Shipping Discount                                                            |
| Value Type           | Sí          | Elija entre Percentage (%) o Fixed Amount                                                                                   |
| Value                | Sí          | El valor del descuento (p. ej., 20 para un 20 %, o 10,00 para $10,00 de descuento)                                          |
| Product              | Condicional | Solo se muestra cuando Discount Type es Product Discount. Seleccione el producto específico que debe estar en el carrito    |
| Usage Rule           | Sí          | **Multiple Use** (ilimitado), **Single Per Customer** (una vez por cliente) o **Single Overall** (un solo uso en total)     |
| Minimum Order Amount | No          | El subtotal mínimo del pedido necesario para aplicar este cupón                                                             |
| Expiration Date      | No          | El cupón se volverá inválido automáticamente después de esta fecha                                                          |
| Target Countries     | No          | Restrinja este cupón a clientes que envían a países específicos. Si se deja vacío, el cupón es válido para todos los países |

## Edición de un cupón

Haga clic en cualquier código de cupón en la lista (o elija **Edit** en el menú desplegable de acciones) para abrir el formulario de edición. Contiene los mismos campos que el formulario de creación, con los datos actuales precargados.

![Editar cupón](/features/coupons/edit-coupon.png)

Haga clic en **Save Changes** cuando haya terminado.

## Eliminación de un cupón

Para eliminar un cupón, haga clic en el menú desplegable de acciones en la fila y seleccione **Delete**. Aparecerá un diálogo de confirmación antes de que el cupón se elimine permanentemente.

## Cómo funcionan los cupones en el checkout

Durante el checkout, los clientes pueden ingresar un código de cupón en el campo **Coupon Code** del panel de resumen del pedido.

![Campo de cupón en el checkout](/features/coupons/storefront-checkout-coupon.png)

### Validación

Cuando un cliente ingresa un código de cupón, el sistema verifica lo siguiente antes de aplicarlo:

1. El cupón debe estar **active**
2. El cupón **no debe haber expirado**
3. El pedido debe cumplir con el **minimum order amount** (si está configurado)
4. El país de envío del cliente debe coincidir con los **target countries** del cupón (si están configurados)
5. Para los cupones de **Product Discount**, el producto especificado debe estar en el carrito
6. El cupón debe pasar la verificación de **usage rule**:
   - **Multiple Use** — siempre pasa
   - **Single Per Customer** — el cliente no debe haber utilizado este cupón antes
   - **Single Overall** — el cupón no debe haber sido utilizado por nadie

Si alguna verificación falla, el cliente verá un mensaje de error que explica por qué no se puede aplicar el cupón.

### Cómo se calculan los descuentos

| Tipo de descuento     | Porcentaje                         | Monto fijo                                                              |
| --------------------- | ---------------------------------- | ----------------------------------------------------------------------- |
| **Order Discount**    | Subtotal x (valor / 100)           | Monto fijo sobre el subtotal (limitado al subtotal)                     |
| **Product Discount**  | Total del producto x (valor / 100) | Monto fijo sobre el total del producto (limitado al total del producto) |
| **Shipping Discount** | Costo de envío x (valor / 100)     | Monto fijo sobre el envío (limitado al costo de envío)                  |

> **Importante:** Solo se puede aplicar un cupón por pedido. Los clientes pueden eliminar un cupón y aplicar uno diferente antes de completar su pedido.

> **Consejo:** Los códigos de cupón no distinguen entre mayúsculas y minúsculas. Un cliente puede ingresar "summer2024" o "SUMMER2024" y ambos funcionarán para el código `SUMMER2024`.
