API Cupones
Bsale permite la creación de cupones de descuentos, los cuales por el momento sólo podrán ser utilizados por los clientes que cuentan con tienda en línea de Bsale.
Para autenticar las peticiones en todos los endpoints se debe enviar en la cabecera el parámetro access_token
.
Cómo funciona la interfaz de Bsale, mira esta referencia
- Creación de cupones ir
Estructura JSON
Al realizar una petición HTTP
, el servicio retornara un JSON con la siguiente estructura:
{
"code": "200",
"data": {
"id": 12443,
"name": "bDVESTFWj3on",
"description": "",
"serialNumber": "bDVESTFWj3on",
"type": "1",
"amount": 10,
"disabled": 0,
"properties": {
"fromDate": 1592186663,
"repeteable": false,
"combinable": false
},
"createdAt": 1592187737,
"updatedAt": 0,
"currencyId": 1,
"used": {
"href": "https://api.bsale.io/v1/report/coupon/movements/count/12443.json"
},
"href": "https://api.bsale.io/v1/admin/coupon/12443.json"
}
}
Atributos
Atributo | Descripción | Tipo dato |
---|---|---|
id | Identificador único del cupón | Integer |
name | Nombre asociado al cupón | String |
description | Descripción corta utilizada para definir los objetivos y alcance de un cupón | String |
serialNumber | Número de serie asociado al cupón, el cual corresponde a la serie que se ingresará para su uso. Esta debe ser única para una determinada empresa, es decir no permite que se repita una misma serie | String |
type | Tipo de cupón, comportamiento 1: se trabaja con montos, 2: se trabaja en base a %, 3: el cupón asociado a un despacho gratuito | String |
amount | Monto asociado al cupón, que corresponde a valor descuento o % según esté definido en el tipo | String |
disabled | Estado de un cupón esto es 0 activo, 1 desactivado | String |
properties | Propiedades del cupón, las cuales se pueden definir como uso, fechas, combinaciones, repeticiones, colecciones, montos. | String |
createdAt | Fecha en ela que el cupón fue creado | Unix |
updatedAt | Fecha en la que el cupón fue modificado (formato Unix y 0 valor por defecto) | Unix |
currencyId | Id de moneda asociada al monto de un cupón | String |
used | Identifica el link que permite obtener el número de veces que se ha usado un cupón. | String |
Propiedades del cupón
- uses, Define el número de veces que se pue utilizar el cupon (si no existe se entiene que no tiene límite)
- fromDate, Fecha a partir de la cual se puede usar el cupón
- toDate, Fecha límite para el uso del cupón
- combinable, Define si el cupón permite que se use en combinación con otros cupones (valores permitidos True o False).
- repeteable, Define si el cupón puede ser utilizado por un mismo correo mas de una vez (Valores permitidos True o False)
- collections, Nodo que almacena el arreglo de las colecciones donde se puede aplicar el cupón (opcional)
- maxAmount, Monto máximo de descuento que se hará cuando los cupones son en %.
- minAmount, Monto mínimo para aplicar descuento en checkout
GET lista de cupones
- GET
/v1/loyalty/coupons.json
retorna todos los cupones.
Parámetros
- limit, limita la cantidad de items de una respuesta JSON, por defecto el limit es 25, el máximo permitido es 50.
- offset, permite paginar los items de una respuesta JSON, por defecto el offset es 0.
- name, Nombre asociado al cupón
- serial, Número de serie asociado al cupón
- disabled, Filtra los cupones activos de los inactivos (0: activos 1: desactivados)
- type, Filtra por tipo de cupón es esto es 0 : se trabaja con montos, 1 : se trabaja en base a % 2 : el cupón asociado a un despacho gratuito.
- order, Permite definir un orden de despliegue en base a la fecha de creación “ASC” se despliega con fechas ascendentes “DESC” se despliegan con fechas descendentes
Ejemplos
GET /v1/loyalty/coupons.json?limit=50&offset=0
GET /v1/loyalty/coupons.json?expand=used
Respuesta
{
"code": "200",
"href": "https://api.bsale.io/v1/admin/coupons.json",
"count": 10495,
"limit": 3,
"offset": 0,
"data": [
{
"id": 65,
"name": "FlashDiscount",
"description": "",
"serialNumber": "FLASH2220OFF",
"type": "1",
"amount": 20,
"disabled": 1,
"properties": {
"fromDate": 1520942596,
"uses": "20",
"repeteable": false,
"combinable": false
},
"createdAt": 1520943181,
"updatedAt": 0,
"currencyId": 1,
"used": 0,
"movementsCount": 0,
"href": "https://api.bsale.io/v1/admin/coupons/65.json"
},
{
"id": 6894,
"name": "FORTUNA",
"description": "",
"serialNumber": "FORTUNA-2030",
"type": "1",
"amount": 20,
"disabled": 0,
"properties": {
"fromDate": 1581023039,
"products": [
"133"
],
"toDate": 1581303600,
"repeteable": false,
"combinable": false
},
"createdAt": 1581024038,
"updatedAt": 0,
"currencyId": 1,
"used": 0,
"movementsCount": 0,
"href": "https://api.bsale.io/v1/admin/coupons/6894.json"
},
{
"id": 7411,
"name": "Despacho Gratis - Cuarentena 2020",
"description": "",
"serialNumber": "DulceCuarentena1",
"type": "2",
"amount": 0,
"disabled": 1,
"properties": {
"fromDate": 1584715332,
"toDate": 1588219200,
"repeteable": false,
"combinable": false
},
"createdAt": 1584716351,
"updatedAt": 0,
"currencyId": 1,
"used": 0,
"movementsCount": 0,
"href": "https://api.bsale.io/v1/admin/coupons/7411.json"
}
],
"next": "https://api.bsale.io/v1/admin/coupons.json?limit=3&offset=3"
}
GET un cupón
- GET
/v1/loyalty/coupons/:id.json
retorna un único cupón.
Parámetros
- id, Identificador único del cupón.
Ejemplos
GET /v1/admin/coupon/:id.json
Respuesta
{
"code": "200",
"data": {
"id": 12443,
"name": "bDVESTFWj3on",
"description": "",
"serialNumber": "bDVESTFWj3on",
"type": "1",
"amount": 10,
"disabled": 0,
"properties": {
"fromDate": 1592186663,
"repeteable": false,
"combinable": false
},
"createdAt": 1592187737,
"updatedAt": 0,
"currencyId": 1,
"used": {
"href": "https://api.bsale.io/v1/report/coupon/movements/count/12443.json"
},
"href": "https://api.bsale.io/v1/admin/coupon/12443.json"
}
}
POST un cupón
- POST
/v1/loyalty/coupons.json
Ejemplo JSON
Envío
Al realizar una petición HTTP
, el servicio retornara un JSON con la siguiente estructura:
{
"name": "Cupon Ultra",
"description": "Cupones de $50.000 Ultra Rebajado",
"type": "0",
"amount": "50000",
"properties": {
"fromDate": 1600789326,
"toDate": 1588945302,
"collections": [
"369"
],
"maxAmount": "5000",
"repeteable": true,
"combinable": true
},
"serialNumber": "ULTRA2030"
}
Respuesta
{
"code": "200",
"data": [
{
"id": 68350,
"name": "Cupon Ultra",
"description": "Cupones de $50.000 Ultra Rebajado",
"serialNumber": "ULTRA2030",
"type": "0",
"amount": 50000,
"disabled": 0,
"properties": {
"fromDate": 1600789326,
"toDate": 1588945302,
"maxAmount": "5000",
"repeteable": true,
"combinable": true
},
"createdAt": 1632251153,
"updatedAt": 0,
"currencyId": 0,
"used": 0,
"movementsCount": 0,
"href": "https://api.bsale.io/v1/admin/coupon/68350.json"
}
]
}
PUT un cupón
- PUT
/v1/loyalty/coupons/:id.json
En el caso de los PUT
o actualizaciones, se puede mandar de manera independiente cualquiera de los atributos que se quiere actualizar.
Por ejemplo si queremos dejar el cupón en un estado inactivo podemos enviar "disabled": 1
Se debe enviar un Json con la siguiente estructura
Ejemplo JSON
Envío
{
"name": "Cupon Ultra rebajado",
"description": "Cupones de $50.000 Ultra Rebajados"
}
Respuesta
{
"code": "200",
"data": {
"id": 9585,
"name": "Cupon Ultra rebajado",
"description": "Cupones de $50.000 Ultra Rebajados",
"type": "0",
"amount": "50000",
"disabled": 1,
"properties": {
"fromDate": 1600789326,
"toDate": 1588945302,
"collections": [
"369"
],
"maxAmount": "5000",
"repeteable": true,
"combinable": true
},
"serialNumber": "ULTRA2021",
"createdAt": 1588549200,
"updatedAt": 0,
"currencyId": 1,
"used": 0,
"href": "https://api.bsale.io/v1/admin/coupon/9585.json"
}
}