Representa a un Cupón, Promoción o Descuento dentro de la plataforma.
{
"id": 1,
"name": "Prueba Local",
"promo_code": null,
"type": "personal",
"status": "ready",
"price_e2": 500,
"price_prc": 0,
"min_purchase_e2": 500,
"total_count": 100000,
"starts_at": "2020-08-12 00:00:00",
"ends_at": "2021-09-01 00:00:00",
"created_at": "2020-08-11 17:20:20",
"updated_at": "2020-12-22 19:53:10",
"deleted_at": null,
"branch_id": null,
"applies_to": "subtotal",
"target_type": "company",
"branch_group_id": null,
"config": {
"limit": null,
"usable_in_promos": true,
"users_registered_since": null,
"users_registered_until": null,
"only_first_purchase": false
},
"human_price_e2": 5,
"human_price_prc": 0,
"human_min_purchase_e2": 5
}
Crea un nuevo cupón o descuento.
El parámetro type
especifica el tipo de cupón a ser creado. Este valor no podrá ser modificado.
total_count
hayan disponibles para el canje. Cada código
puede ser utilizado una única vez.promo_code
. El código puede ser
canjeado más de una vez, hasta agotarse el total_count
.Método | URI | Cabeceras |
---|---|---|
POST | /companies/{companyId}/coupons |
Authorization |
{
"name": "required|string|max:64",
"promo_code": "required_if:type,batch|string|min:5|max:20|regex:/^[0-9a-zA-Z]{5,20}$/",
"type": "required|string|in:personal,batch,promo",
"price_e2": "integer|min:0",
"price_prc": "numeric|between:0.0000,1.0000",
"min_purchase_e2": "integer|min:0",
"total_count": "required|integer|min:0",
"applies_to": "string|in:total,subtotal,base_price,service,delivery",
"target_type": "string|in:company,branch_group,good",
"human_price_e2": "numeric|min:0.0",
"human_price_prc": "numeric|between:0.00,100.00",
"human_min_purchase_e2": "numeric|min:0.0",
"config": {
"limit": "integer",
"usable_in_promos": "boolean",
"users_registered_since": "date",
"users_registered_until": "date",
"only_first_purchase": "boolean"
}
}
Método | URI | Cabeceras |
---|---|---|
POST | /companies/{companyId}/branch-groups/{branchGroupId}/coupons |
Authorization |
{
"name": "required|string|max:64",
"promo_code": "required_if:type,batch|string|min:5|max:20|regex:/^[0-9a-zA-Z]{5,20}$/",
"type": "required|string|in:personal,batch,promo",
"price_e2": "integer|min:0",
"price_prc": "numeric|between:0.0000,1.0000",
"min_purchase_e2": "integer|min:0",
"total_count": "required|integer|min:0",
"applies_to": "string|in:total,subtotal,base_price,service,delivery",
"target_type": "string|in:company,branch_group,good",
"human_price_e2": "numeric|min:0.0",
"human_price_prc": "numeric|between:0.00,100.00",
"human_min_purchase_e2": "numeric|min:0.0",
"config": {
"limit": "integer",
"usable_in_promos": "boolean",
"users_registered_since": "date",
"users_registered_until": "date",
"only_first_purchase": "boolean"
}
}
{info} Soporta: Paginación Filters Carga dinámica
Devuelve la lista de cupones y promociones.
Método | URI | Cabeceras |
---|---|---|
GET | /companies/{companyId}/coupons |
Authorization |
{info} Soporta: Carga dinámica
Detalles de un Cupón
Método | URI | Cabeceras |
---|---|---|
GET | /companies/{companyId}/coupons/{couponId} |
Authorization |
Actualizar cupón.
Requiere status=pending
Modifica los parámetros del cupón. Si se cambia el target_type, todos los targets que hayan sido previamente configurados se perderán.
Método | URI | Cabeceras |
---|---|---|
PATCH | /companies/{companyId}/coupons/{couponId} |
Authorization |
{
"name": "string|max:64",
"price_e2": "integer|min:0",
"price_prc": "numeric|between:0.0000,1.0000",
"min_purchase_e2": "integer|min:0",
"total_count": "integer|min:0",
"applies_to": "string|in:total,subtotal,base_price,service,delivery",
"target_type": "string|in:company,branch_group,good",
"human_price_e2": "numeric|min:0.0",
"human_price_prc": "numeric|between:0.00,100.00",
"human_min_purchase_e2": "numeric|min:0.0",
"config": {
"limit": "integer",
"usable_in_promos": "boolean",
"users_registered_since": "date",
"users_registered_until": "date",
"only_first_purchase": "boolean"
}
}
Vincular objetivo
Requiere: status=pending
Agrega un objetivo al cupón. Aplica a los target_type = branch_group,branch. Según el target_type, se debe especificar el targetId correspondiente a vincular. Por ejemplo, si se desea vincular un Branch id=12, el cupón debe tener target_type=branch y se dede consumir este endpoint usando como parámetro path {targetId}=12.
Método | URI | Cabeceras |
---|---|---|
PUT | /companies/{companyId}/coupons/{couponId}/targets/{targetId} |
Authorization |
Desvincular objetivo
Requiere: status=pending
Quita un objetivo al cupón. Aplica a los target_type = branch_group,branch. Según el target_type, se debe especificar el targetId correspondiente a desvincular. Por ejemplo, si se desea desvincular un Branch id=12 vinculado, el cupón debe tener target_type=branch y se dede consumir este endpoint usando como parámetro path {targetId}=12.
Método | URI | Cabeceras |
---|---|---|
DELETE | /companies/{companyId}/coupons/{couponId}/targets/{targetId} |
Authorization |
Elimina un cupón
Requiere: status!=running
Si se desea eliminar un cupón en ejecución, hay que finalizarlo primero
Método | URI | Cabeceras |
---|---|---|
DELETE | /companies/{companyId}/coupons/{couponId} |
Authorization |
Restaura un cupón eliminado.
Método | URI | Cabeceras |
---|---|---|
POST | /companies/{companyId}/coupons/{couponId}/restore |
Authorization |
Método | URI | Cabeceras |
---|---|---|
POST | /companies/{companyId}/coupons/check |
Authorization |
{
"coupon_code": "required|string|min:5|max:20",
"subtotal_e2": "required|integer|min:1",
"subtotal_full_e2": "integer|min:0",
"base_price_e2": "integer|min:1",
"delivery_e2": "integer|min:0"
}
Comprueba el estado de validez de un código de cupón.
Método | URI | Cabeceras |
---|---|---|
POST | /companies/{companyId}/branches/{branchId}/coupons/check |
Authorization |
{
"coupon_code": "required|string|min:5|max:20",
"subtotal_e2": "required|integer|min:1",
"subtotal_full_e2": "integer|min:0",
"base_price_e2": "integer|min:1",
"delivery_e2": "integer|min:0"
}
Envío de cupones
Requiere: status=pending
Finaliza la configuración del cupón y lo prepara para su inicio. Este endpoint realiza las comprobaciones necesarias para garantizar que todos los parámetros establecidos son válidos.
Una vez enviado, un cupón no podrá volver a ser modificado. Su status para a ser "generating", en el cual se realizan las optimizaciones y cambios necesarios para aplicar el cupón en la fecha establecida. una vez terminada la fase de "generating", el cupón pasa automáticamente al status=ready, indicando que el cupón está listo para iniciar en la fecha programada. Llegado el momento, el cupón iniciará automáticamente con el status=running.
Método | URI | Cabeceras |
---|---|---|
POST | /companies/{companyId}/coupons/{couponId}/set-ready |
Authorization |
{
"starts_at": "date|after:2021-08-18 13:58:35",
"ends_at": "date|after:starts_at|after:2021-08-18 13:58:35",
"coupon_length": "integer|min:5|max:20",
"timezone": {
"string": true,
"regex": "/^[\\+\\-]([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
Lista de Códigos
Permite mostrar la lista de códigos de un cupón.
Los códigos de cupón son generados en la fase de "generating". Si se consume en una fase anterior, siempre devolverá vacío.
Método | URI | Cabeceras |
---|---|---|
GET | /companies/{companyId}/coupons/{couponId}/codes |
Authorization |
{info} Soporta: Paginación Filters Carga dinámica
Cupones disponibles
Muestra el listado de códigos de cupón disponibles para el canje. No aplica para type=promo
Método | URI | Cabeceras |
---|---|---|
GET | /companies/{companyId}/coupons/{couponId}/available-tickets |
Authorization |
{info} Soporta: Paginación Filters Carga dinámica
Canjes
Muestra el listado de canjes/usos de un cupón/promoción.
Método | URI | Cabeceras |
---|---|---|
GET | /companies/{companyId}/coupons/{couponId}/used-tickets |
Authorization |
Finaliza un cupón en ejecución.
Requiere: status=running
Permite finalizar un cupón antes de que expire, o cupones que no tienen una fecha de finalización especificada. Un cupón finalizado no podrá procesar más canjes.
Método | URI | Cabeceras |
---|---|---|
POST | /companies/{companyId}/coupons/{couponId}/set-finished |
Authorization |
activePromos
HasMany ActivePromobranch
BelongsTo BranchbranchGroup
BelongsTo BranchGroupcompany
BelongsTo CompanycouponTargets
HasMany CouponTargetcouponTickets
HasMany CouponTicketcouponUsages
HasMany CouponUsagelastUsage
HasOne CouponUsage