Cupones
Un cupón de descuento es una herramienta promocional que permite a las tiendas ofrecer ahorros a sus clientes. Existen cinco tipo de cupones
- Porcentaje del total de la compra
- Monto fijo de desceunto
- Envio gratis
- Porcentaje por producto
- Monto fijo por producto
Propiedades
| Propiedad | Explicación |
|---|---|
| id | Identificador único del cupón |
| title | Título o nombre del cupón |
| value | Valor del descuento |
| isAvailable | Disponibilidad del cupón |
| used | Veces que se utilizó el cupón |
| created_at | Fecha de creación |
| updated_at | Fecha de última actualización |
| limit_max_used | Límite de uso por cliente o sesión |
| max_used | Máximo de usos permitidos |
| limit_min_price | Límite mínimo de precio para aplicar |
| min_price | Monto mínimo para aplicar el cupón |
| type_coupon_id | Tipo de cupón |
| type_filter_id | Tipo de filtro del cupón |
| categories_id | IDs de categorías asociadas |
| products_id | IDs de productos asociados |
| limit_time | Límite de tiempo para uso |
| time_start | Fecha de inicio de vigencia |
| time_end | Fecha de fin de vigencia |
| type_filter_id | Explicación |
|---|---|
| 1 | Sin límites |
| 2 | Solo para categorias |
| 3 | Solo para productos |
| type_coupon_id | Explicación |
|---|---|
| 1 | Porcentaje del total de la compra |
| 2 | Monto fijo de descuento |
| 3 | Envío gratis |
| 4 | Porcentaje por producto |
| 5 | Monto fijo por producto |
Endpoints
GET /coupons
Obtiene la lista de cupones.
Parámetros de query
| Parámetro | Explicación |
|---|---|
| ids | IDs de cupones separados por comas |
| type_coupon_id | Filtrar por tipo de cupón |
| is_available | Filtrar por disponibilidad |
| q | Buscar por título |
| page | Página |
| per_page | Resultados por página |
Ejemplo
GET /coupons?status=1&is_available=1
HTTP/1.1 200 OK
{
"pagination": {
"total": 1,
"page": 1,
"per_page": 10,
"next_page": null
},
"results": [
{
"id": 20,
"title": "Cupon de verano",
"value": 10,
"is_available": false,
"used": 0,
"created_at": "2026-05-20T16:32:44.000Z",
"updated_at": "2026-05-20T16:32:44.000Z",
"limit_max_used": true,
"max_used": 15,
"limit_min_price": false,
"min_price": 0,
"type_coupon_id": 2,
"type_filter_id": 3,
"products_id": [1],
"limit_time": true,
"time_start": "2026-05-20T14:54:58.000Z",
"time_end": "2026-05-20T14:54:58.000Z"
}
]
}
GET /coupons/{id}
Obtiene un cupón por su ID.
Ejemplo
GET /coupons/20
HTTP/1.1 200 OK
{
"id": 20,
"title": "Cupon de verano",
"value": 10,
"is_available": false,
"used": 0,
"created_at": "2026-05-20T16:32:44.000Z",
"updated_at": "2026-05-20T16:32:44.000Z",
"limit_max_used": true,
"max_used": 15,
"limit_min_price": false,
"min_price": 0,
"type_coupon_id": 2,
"type_filter_id": 3,
"products_id": [1],
"limit_time": true,
"time_start": "2026-05-20T14:54:58.000Z",
"time_end": "2026-05-20T14:54:58.000Z"
}
POST /coupons
Crea un nuevo cupón.
Body de request
| Parámetro | Explicación |
|---|---|
| title | Nombre o código del cupón |
| value | Valor del descuento |
| max_used | Máximo de usos |
| time_start | Fecha de inicio |
| time_end | Fecha de fin |
| status | Estado del cupón |
| type_coupon_id | Tipo de cupón |
| min_price | Monto mínimo para aplicar |
| isAvailable | Disponibilidad |
| limit_max_used | Límite de uso por cliente o sesión |
| limit_time | Límite de tiempo para uso |
| limit_min_price | Límite mínimo de precio |
| type_filter_id | Tipo de filtro |
| categories_id | IDs de categorías asociadas |
| products_id | IDs de productos asociados |
Ejemplo de request
{
"title": "Cupon del dia",
"value": 150,
"max_used": 10,
"limit_time": true,
"time_start": "2026-05-20T17:41:44.295Z",
"time_end": "2026-05-20T17:41:44.295Z",
"type_coupon_id": 2,
"min_price": 20,
"isAvailable": true,
"limit_max_used": true,
"limit_min_price": true,
"type_filter_id": 3,
"products_id": [1]
}
Respuesta
HTTP/1.1 201 Created
{
"id": 32,
"title": "Cupon del dia",
"value": 150,
"is_available": true,
"used": 0,
"created_at": "2026-05-20T17:57:42.000Z",
"updated_at": "2026-05-20T17:57:42.000Z",
"limit_max_used": true,
"max_used": 10,
"limit_min_price": true,
"min_price": 20,
"type_coupon_id": 2,
"type_filter_id": 3,
"products_id": [1],
"limit_time": true,
"time_start": "2026-05-20T17:41:44.000Z",
"time_end": "2026-05-20T17:41:44.000Z"
}
DELETE /coupons/{id}
Elimina un cupón.
Ejemplo
DELETE /coupons/1
HTTP/1.1 200 OK
{
"id": 1,
"message": "Coupon deleted successfully"
}
PUT /coupons/{id}/status
Actualiza el estado de disponibilidad del cupón.
Ejemplo
PUT /coupons/1/status
HTTP/1.1 200 OK
{
"id": 1,
"message": "Coupon enabled successfully"
}