Descuentos
Consulta descuentos creados, todos los descuentos se trabajan porcentualmente. Si se desea usar el descuento, ver documentos.
Cómo funciona la interfaz de Bsale, mira éstos videos:
- Gestión descuentos Ver
Estructura JSON
Al realizar una petición HTTP
, el servicio retornara un JSON con la siguiente estructura:
{
"href": "https://api.bsale.io/v1/discounts/1.json",
"id": 1,
"name": "Ajuste Precio",
"percentage": "14.3",
"state": 1,
"automatic": 0
}
Atributos
Atributo | Descripción | Tipo dato |
---|---|---|
href | url del pago | String |
id | identificador único del pago | Integer |
name | nombre del descuento | String |
| percentage, porcentaje del descuento (String). | state, estado del descuento indica si el descuento esta activo(0) o inactivo (1) (Boolean). | automatic, indica si el descuento se aplica automáticamente, No(0) o Si (1) (Boolean).
GET lista de descuentos
- GET
/v1/discounts.json
retornará todos los descuentos.
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.
- fields, solo devolver atributos específicos de un recurso
- expand, permite expandir instancias y colecciones para traer relaciones en una sola petición.
- name, Permite filtrar por nombre del descuento.
- percentage, filtra por porcentaje de descuento.
- state, boolean (0 o 1) indica si los descuentos están activos(0) inactivos(1).
Ejemplos
GET /v1/discounts.json?limit=10&offset=0
GET /v1/discounts.json?fields=[name,percentage,state]
{
"href": "https://api.bsale.io/v1/discounts.json",
"count": 3,
"limit": 25,
"offset": 0,
"items": [
{
"href": "https://api.bsale.io/v1/discounts/1.json",
"id": 1,
"name": "Ajuste Precio",
"percentage": "14.3",
"state": 1,
"automatic": 0
},
{
"href": "https://api.bsale.io/v1/discounts/3.json",
"id": 3,
"name": "Descuento CPT",
"percentage": "75.0",
"state": 0,
"automatic": 0
},
{
"href": "https://api.bsale.io/v1/discounts/2.json",
"id": 2,
"name": "Descuento Imagestion",
"percentage": "25.0",
"state": 1,
"automatic": 0
}
]
}
GET un descuento
- GET
/v1/discounts/1.json
retornará un descuento.
{
"href": "https://api.bsale.io/v1/discounts/1.json",
"id": 1,
"name": "Descuentos cliente preferencial",
"percentage": "14.3",
"state": 1,
"automatic": 0
}
GET cantidad de descuentos
GET
/v1/discounts/count.json
Retornará cantidades de registros.state, Descuentos activos(0) inactivos (1).
Ejemplos
GET /v1/discounts/count.json?state=0
{
"count": 3
}
POST un descuento
- POST
/v2/discounts/new.json
Para crear un descuento, se debe enviar un JSON con la siguiente estructura:
Ejemplo JSON
Envío
{
"name": "Descuento Inauguración",
"percentage": 20,
"accessProfiles": [1],
"autoDiscount": 1
}
Respuesta
{
"code": 201,
"data": {
"id": 4,
"name": "Descuento Inauguración",
"percentage": 20,
"state": 0,
"autoDiscount": 1,
"minQuantity": 0,
"byDate": 0,
"startDate": null,
"endDate": null,
"type": 0,
"relation": 0,
"basePriceListId": null,
"discountPriceListId": null,
"restrictedPriceLists": {
"href": "https://api.bsale.io/v1/admin/discounts/4.json?expand=[restrictedPriceLists]"
}
}
}
Parámetros
- name (string): Nombre del descuento
- type (number): Tipo de descuento (0: Porcentaje, 1: Lista de precios)
- state (number): Estado del descuento (0: Activo, 1: Inactivo)
- autoDiscount (number): Si es un descuento automático o no (0: manual, 1: automático)
- minQuantity (number): Cantidad minima a aplicar el descuento
- byDate (number): Si es un descuento programado o no (0: no programado, 1: programado)
- startDate (string): Fecha de inicio para un descuento programado ("01/02/2023")
- endDate (string): Fecha de termino para un descuento programado ("07/02/2023")
- relation (number): Relacion entre si de un descuento (asocia su propio id)
- basePriceListId (number): Id de lista de precio base para el calculo
- discountPriceListId (number): Id de lista de precio para aplicar el calculo
- restrictedPriceLists (url): Recurso para las listas de precios restringidas en un descuento
- accessProfiles (array): Lista de id de perfiles de acceso
POST detalles de un descuento
- POST
/v2/discounts/:id/details.json
Parámetros
- id, id de descuento creado previamente (number)
Para asociar un producto-variante a un descuento, se debe enviar un JSON con la siguiente estructura:
Ejemplo JSON
Es válido variantId
o productId
, ambos están soportados
Envío
{
"productId": 8
}
Respuesta
{
"code": "201",
"data": {
"id": 2,
"product": {
"id": 8,
"name": ""
},
"variant": {
"id": 0,
"description": "",
"sku": ""
},
"discountId": 4,
"deletedDetail": 0
}
}
Parámetros
- product (object): Detalles del producto asociado al descuento
- id (number): Id del producto
- name (string): Nombre del producto
- variant (object): Detalles de la variante asociada al descuento
- id (number): Id de la variante
- description (string): Descripcion de la variante
- sku (string): Identificador unico
- discountId (number): Id de descuento
- deletedDetail (number): Si la asociacion está como eliminada
PUT un descuento
- PUT
/v2/discounts/:id.json
Parámetros
- id, id de descuento (number)
Para editar un descuento, se debe enviar un JSON con la siguiente estructura:
Ejemplo JSON
Envío
{
"name": "Descuento automático",
"type": 0,
"percentage": 25,
"accessProfiles": [1,2,3,4,5,6,7],
"autoDiscount": 1,
"minQuantity": 1,
"restrictedPriceLists": [2,4]
}
Respuesta
{
"code": 200,
"data": {
"id": 4,
"name": "Descuento automático",
"percentage": 20,
"state": 0,
"autoDiscount": 1,
"minQuantity": 2,
"byDate": 0,
"startDate": null,
"endDate": null,
"type": 0,
"relation": 0,
"basePriceListId": null,
"discountPriceListId": null,
"restrictedPriceLists": {
"href": "https://api.bsale.io/v1/admin/discounts/4.json?expand=[restrictedPriceLists]"
}
}
}
Parámetros
- name (string): Nombre del descuento
- type (number): Tipo de descuento (0: Porcentaje, 1: Lista de precios)
- state (number): Estado del descuento (0: Activo, 1: Inactivo)
- autoDiscount (number): Si es un descuento automático o no (0: manual, 1: automático)
- minQuantity (number): Cantidad minima a aplicar el descuento
- byDate (number): Si es un descuento programado o no (0: no programado, 1: programado)
- startDate (string): Fecha de inicio para un descuento programado ("01/02/2023")
- endDate (string): Fecha de termino para un descuento programado ("07/02/2023")
- relation (number): Relacion entre si de un descuento (asocia su propio id)
- basePriceListId (number): Id de lista de precio base para el calculo
- discountPriceListId (number): Id de lista de precio para aplicar el calculo
- restrictedPriceLists (url): Recurso para las listas de precios restringidas en un descuento
- accessProfiles (array): Lista de id de perfiles de acceso
GET detalles de un descuento
- GET
/v2/discounts/:id/details.json
Parámetros
- id, id de descuento (number)
Respuesta
{
"code": 200,
"href": "https://api.bsale.io/v1/discounts/4/details.json",
"count": 1,
"limit": 25,
"offset": 0,
"data": [
{
"id": 4,
"product": {
"id": 0,
"name": "Backpack Pure Aero RAFA462"
},
"variant": {
"id": 52,
"description": "Nintendo Wii U Pro Controllers X2",
"sku": "123490092"
},
"discountId": 4,
"deletedDetail": 0
}
]
}
DELETE detalle de un descuento
- DELETE
/v2/discounts/details/:detail_id.json
Parámetros
- detail_id, id de detalle de un descuento (number)
Para eliminar un detalle de descuento, se debe enviar un JSON con la siguiente estructura:
Ejemplo JSON
Respuesta
{
"code": "200",
"data": {
"success": true,
"id": 2
}
}
Parámetros
- product (object): Detalles del producto asociado al descuento
- id (number): Id del producto
- name (string): Nombre del producto
- variant (object): Detalles de la variante asociada al descuento
- id (number): Id de la variante
- description (string): Descripcion de la variante
- sku (string): Identificador unico
- discountId (number): Id de descuento
- deletedDetail (number): Si la asociacion está como eliminada