Variantes
Listar variante(s), costos, cantidades, crear, editar y eliminar variantes.
Una variante sólo puede tener 1 producto "padre", pero 1 producto puede tener 1 o más variantes. Ej, (Nombre Producto) Poleron Blanco, (Nombre Variantes) Talla L, Talla M, Talla S.
El producto debe ser creado antes de crear la variante. Para vender un producto/variante creado, se debe indicar en el nodo details del documento.
Estructura JSON
Al realizar una petición HTTP, el servicio retornara un JSON con la siguiente estructura:
{
"href": "https://api.bsale.com.pe/v1/variants/2373.json",
"id": 2373,
"description": "240 ML",
"unlimitedStock": 0,
"allowNegativeStock": 0,
"state": 0,
"barCode": "1441310864",
"code": "1441310864",
"imagestionCenterCost": 0,
"imagestionAccount": 0,
"imagestionConceptCod": 0,
"imagestionProyectCod": 0,
"imagestionCategoryCod": 0,
"imagestionProductId": 0,
"serialNumber": 0,
"prestashopCombinationId": 0,
"prestashopValueId": 0,
"product": {
"href": "https://api.bsale.com.pe/v1/products/656.json",
"id": "656"
},
"attribute_values": {
"href": "https://api.bsale.com.pe/v1/variants/2373/attribute_values.json"
},
"costs": {
"href": "https://api.bsale.com.pe/v1/variants/2373/costs.json"
}
}
href, url de la variante (String).
id, identificador único de la variante (Integer).
description, nombre de la variante (String).
unlimitedStock, indica si la variante posee stock ilimitado No(0) o Si (1) (Boolean).
allowNegativeStock, indica si la variante permite stock negativo No(0) o Si (1) (Boolean).
state, estado de la variante activo(0) o inactivo (1) (Boolean).
barCode, código de barras de la variante (String) .
code, SKU de la variante (String) .
imagestionCenterCost, centro de costo imagestion (String).
imagestionAccount, cuenta imagestion (String).
imagestionConceptCod, concepto imagestion (String).
imagestionProyectCod, proyecto imagestion (String).
imagestionCategoryCod, categoría imagestion (Integer).
imagestionProductId, producto imagestion (Integer).
serialNumber, numero de serie del producto (Integer).
prestashopCombinationId, identificador en prestashop (Integer).
prestashopValueId, identificador en prestashop (Integer).
product, nodo que indica la relación con el producto.
attribute_values, nodo que indica los valores de los atributos del tipo de producto.
costs, nodo que indica el costo de la variante.
GET lista de variantes
GET /v1/variants.json retornara todas las variantes.
####Parametros
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.
description, Permite filtrar por nombre de la variante.
barcode, filtra por código de barra de la variante.
code, filtra por código (SKU) de la variante.
serialnumber, filtra por numero de serie de la variante.
productid, filtra variantes por el id del producto.
state, boolean (0 o 1) indica si las variantes están activas(0) o inactivas (1).
####Ejemplos
GET /v1/variants.json?limit=10&offset=0
GET /v1/variants.json?fields=[description,barCode,code]
GET /v1/variants.json?state=0
GET /v1/variants.json?productid=26
GET /v1/variants.json?expand=[product]
####Respuesta
{
"href": "https://api.bsale.com.pe/v1/variants.json",
"count": 868,
"limit": 3,
"offset": 0,
"items": [
{
"href": "https://api.bsale.com.pe/v1/variants/1548.json",
"id": 1548,
"description": "120 ML",
"unlimitedStock": 0,
"allowNegativeStock": 0,
"state": 0,
"barCode": "1401291513",
"code": "1401291513",
"imagestionCenterCost": 0,
"imagestionAccount": 0,
"imagestionConceptCod": 0,
"imagestionProyectCod": 0,
"imagestionCategoryCod": 0,
"imagestionProductId": 0,
"serialNumber": 0,
"prestashopCombinationId": 0,
"prestashopValueId": 0,
"product": {
"href": "https://api.bsale.com.pe/v1/products/416.json",
"id": "416"
},
"attribute_values": {
"href": "https://api.bsale.com.pe/v1/variants/1548/attribute_values.json"
},
"costs": {
"href": "https://api.bsale.com.pe/v1/variants/1548/costs.json"
}
},
{
"href": "https://api.bsale.com.pe/v1/variants/1555.json",
"id": 1555,
"description": "150 ML",
"unlimitedStock": 0,
"allowNegativeStock": 0,
"state": 0,
"barCode": "1400786476",
"code": "1400786476",
"imagestionCenterCost": 0,
"imagestionAccount": 0,
"imagestionConceptCod": 0,
"imagestionProyectCod": 0,
"imagestionCategoryCod": 0,
"imagestionProductId": 0,
"serialNumber": 0,
"prestashopCombinationId": 0,
"prestashopValueId": 0,
"product": {
"href": "https://api.bsale.com.pe/v1/products/420.json",
"id": "420"
},
"attribute_values": {
"href": "https://api.bsale.com.pe/v1/variants/1555/attribute_values.json"
},
"costs": {
"href": "https://api.bsale.com.pe/v1/variants/1555/costs.json"
}
},
{
"href": "https://api.bsale.com.pe/v1/variants/2101.json",
"id": 2101,
"description": "300 ML",
"unlimitedStock": 0,
"allowNegativeStock": 0,
"state": 0,
"barCode": "1423687401",
"code": "1423687401",
"imagestionCenterCost": 0,
"imagestionAccount": 0,
"imagestionConceptCod": 0,
"imagestionProyectCod": 0,
"imagestionCategoryCod": 0,
"imagestionProductId": 0,
"serialNumber": 0,
"prestashopCombinationId": 0,
"prestashopValueId": 0,
"product": {
"href": "https://api.bsale.com.pe/v1/products/588.json",
"id": "588"
},
"attribute_values": {
"href": "https://api.bsale.com.pe/v1/variants/2101/attribute_values.json"
},
"costs": {
"href": "https://api.bsale.com.pe/v1/variants/2101/costs.json"
}
}
],
"next": "https://api.bsale.com.pe/v1/variants.json?limit=3&offset=3"
}
GET una variante
GET /v1/variants/2373.json retornara una variante específica.
####Parametros
expand, permite expandir instancias y colecciones.
####Ejemplos
GET /v1/variants/5730.json?expand=[product]
####Respuesta
{
"href": "https://api.bsale.com.pe/v1/variants/2373.json",
"id": 2373,
"description": "240 ML",
"unlimitedStock": 0,
"allowNegativeStock": 0,
"state": 0,
"barCode": "1441310864",
"code": "1441310864",
"imagestionCenterCost": 0,
"imagestionAccount": 0,
"imagestionConceptCod": 0,
"imagestionProyectCod": 0,
"imagestionCategoryCod": 0,
"imagestionProductId": 0,
"serialNumber": 0,
"prestashopCombinationId": 0,
"prestashopValueId": 0,
"product": {
"href": "https://api.bsale.com.pe/v1/products/656.json",
"id": "656"
},
"attribute_values": {
"href": "https://api.bsale.com.pe/v1/variants/2373/attribute_values.json"
},
"costs": {
"href": "https://api.bsale.com.pe/v1/variants/2373/costs.json"
}
}
GET Cantidad de variantes
GET /v1/variants/count.json
####Parametros
state, permite filtrar por estado, activos (0) inactivos (1).
####Respuesta
{
"count": 165
}
GET valores de atributos de una variante
GET /v1/variants/5730/attribute_values.json
{
"href": "https://api.bsale.com.pe/v1/variants/5730/attribute_values.json",
"count": 4,
"limit": 25,
"offset": 0,
"items": [
{
"href": "https://api.bsale.com.pe/v1/variants/5730/attribute_values/34192.json",
"id": 34192,
"description": "Microsoft",
"attribute": {
"href": "https://api.bsale.com.pe/v1/product_types/6/attributes/25.json",
"id": "25"
}
},
{
"href": "https://api.bsale.com.pe/v1/variants/5730/attribute_values/34193.json",
"id": 34193,
"description": "14-09-2010",
"attribute": {
"href": "https://api.bsale.com.pe/v1/product_types/6/attributes/28.json",
"id": "28"
}
},
{
"href": "https://api.bsale.com.pe/v1/variants/5730/attribute_values/34194.json",
"id": 34194,
"description": "370",
"attribute": {
"href": "https://api.bsale.com.pe/v1/product_types/6/attributes/29.json",
"id": "29"
}
},
{
"href": "https://api.bsale.com.pe/v1/variants/5730/attribute_values/34195.json",
"id": 34195,
"description": "360",
"attribute": {
"href": "https://api.bsale.com.pe/v1/product_types/6/attributes/24.json",
"id": "24"
}
}
]
}
GET valores de atributos especifico de una variante
GET /v1/variants/576/attribute_values/2.json
{
"href": "https://api.bsale.com.pe/v1/variants/531/attribute_values/2.json",
"id": 2,
"description": "SI",
"attribute": {
"href": "https://localhost:9292/v1/product_types/8/attributes/12.json",
"id": "12"
}
}
GET costo de una variante
GET /v1/variants/2375/costs.json
{
"averageCost": "4140.0",
"history": [
{
"reception_detail": {
"href": "https://api.bsale.com.pe/v1/stocks/receptions/2539/details/7734.json",
"id": 7734
},
"admissionDate": 1441238400,
"cost": 4140,
"availableFifo": 1
},
{
"reception_detail": {
"href": "https://api.bsale.com.pe/v1/stocks/receptions/2542/details/7744.json",
"id": 7744
},
"admissionDate": 1441324800,
"cost": 4140,
"availableFifo": 1
}
]
}
averageCost, costo promedio de una variante (Float).
history, nodo que indica el costo de la variante en cada recepción que ha tenido.
reception_detail, no que indica el detalle de recepción de la variante.
admissionDate, fecha de recepción (Integer).
cost, costo de la variante al momento de la recepción (Float).
availableFifo, cantidad disponible de la variante de una recepción específica (Integer).
POST una variante
POST /v1/variants.json
Se debe enviar un Json con la siguiente estructura.
{
"productId": 595,
"description": "Nintendo Wii U Pro Controller"
}
Valor de los atributos
Si el tipo de producto al que pertenece la variante posee atributos, se deben enviar los valores que eston van a tener, junto con el "id" del atributo.
"attribute_values": [
{
"description": "Nintendo",
"attributeId": 46
},
{
"description": "Wii U",
"attributeId": 47
}
]
description, Valor del atributo (String).
attributeId, identificador unico del [atributo] esto viene del tipo de producto (Integer). [atributo]:https://github.com/gmontero/API-Bsale-PE/wiki/Tipos-de-producto#get-atributos-de-un-tipo-de-producto
Ejemplo de estructura JSON
{
"productId": 595,
"description": "Nintendo Wii U Pro Controller",
"attribute_values": [
{
"description": "Nintendo",
"attributeId": 46
},
{
"description": "Wii U",
"attributeId": 47
}
]
}
####Respuesta
{
"href": "https://api.bsale.com.pe/v1/variants/2110.json",
"id": 2110,
"description": "Nintendo Wii U Pro Controller",
"unlimitedStock": 0,
"allowNegativeStock": 0,
"state": 0,
"barCode": 1415381671,
"code": 1415381671,
"imagestionCenterCost": 0,
"imagestionAccount": 0,
"imagestionConceptCod": 0,
"imagestionProyectCod": 0,
"imagestionCategoryCod": 0,
"imagestionProductId": 0,
"serialNumber": 0,
"prestashopCombinationId": 0,
"prestashopValueId": 0,
"product": {
"href": "https://api.bsale.com.pe/v1/products/595.json",
"id": "595"
},
"attribute_values": {
"href": "https://api.bsale.com.pe/v1/variants/2110/attribute_values.json"
}
}
PUT una variante
PUT /v1/variants/2110.json
Se debe enviar un Json con la siguiente estructura.
{
"id": 2110,
"productId": 595,
"description": "Nintendo Wii U Basic Controller",
"attribute_values": [
{
"description": "Nintendo",
"attributeId": 46
},
{
"description": "Wii U",
"attributeId": 47
}
]
}
####Respuesta
{
"href": "https://api.bsale.com.pe/v1/variants/2110.json",
"id": 2110,
"description": "Nintendo Wii U Basic Controller",
"unlimitedStock": 0,
"allowNegativeStock": 0,
"state": 0,
"barCode": 1415381671,
"code": 1415381671,
"imagestionCenterCost": 0,
"imagestionAccount": 0,
"imagestionConceptCod": 0,
"imagestionProyectCod": 0,
"imagestionCategoryCod": 0,
"imagestionProductId": 0,
"serialNumber": 0,
"prestashopCombinationId": 0,
"prestashopValueId": 0,
"product": {
"href": "https://api.bsale.com.pe/v1/products/595.json",
"id": "595"
},
"attribute_values": {
"href": "https://api.bsale.com.pe/v1/variants/2110/attribute_values.json"
}
}
DELETE una variante virtualmente
DELETE /v1/variants/2110.json cambia el estado de la variante.
{
"href": "https://api.bsale.com.pe/v1/variants/2110.json",
"id": 2110,
"description": "Nintendo Wii U Basic Controller",
"unlimitedStock": 0,
"allowNegativeStock": 0,
"state": 1,
"barCode": 1415381671,
"code": 1415381671,
"imagestionCenterCost": 0,
"imagestionAccount": 0,
"imagestionConceptCod": 0,
"imagestionProyectCod": 0,
"imagestionCategoryCod": 0,
"imagestionProductId": 0,
"serialNumber": 0,
"prestashopCombinationId": 0,
"prestashopValueId": 0,
"product": {
"href": "https://api.bsale.com.pe/v1/products/595.json",
"id": "595"
},
"attribute_values": {
"href": "https://api.bsale.com.pe/v1/variants/2110/attribute_values.json"
}
}