Tipos de producto
Listar, editar, crear y eliminar tipos de producto. El tipo de producto debe estar creado primero para que el producto se asocie a éste.
Estructura JSON
Al realizar una petición HTTP, el servicio retornara un JSON con la siguiente estructura:
{
"href": "https://api.bsale.com.pe/v1/product_types/2.json",
"id": 2,
"name": "Sin Tipo de Producto",
"isEditable": 1,
"state": 0,
"imagestionCategoryId": 0,
"prestashopCategoryId": 0,
"attributes": {
"href": "https://api.bsale.com.pe/v1/product_types/2/attributes.json"
}
}
href, url del tipo de producto (String).
id, identificador único del tipo de producto (Integer).
name, nombre del del tipo de producto (String).
isEditable, indica si el tipo de producto se puede editar No(0) o Si (1) (Boolean)..
state, estado del tipo de producto activo(0) o inactivo (1) (Boolean).
imagestionCategoryId, identificador en imagestion (Integer).
prestashopCategoryId, identificador en prestashop (Integer) .
GET lista de tipos de producto
GET /v1/product_types.json retornara todos los tipos de producto.
####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.
name, Permite filtrar por nombre tipo producto.
state, boolean (0 o 1) indica si los tipos de producto están activos(0) inactivos(1).
####Ejemplos
GET /v1/product_types.json?limit=10&offset=0
GET /v1/product_types.json?fields=[name,state]
####Respuesta
{
"href": "https://api.bsale.com.pe/v1/product_types.json",
"count": 4,
"limit": 25,
"offset": 0,
"items": [
{
"href": "https://api.bsale.com.pe/v1/product_types/30.json",
"id": 30,
"name": "Accesorios Computación",
"isEditable": 1,
"state": 0,
"imagestionCategoryId": 0,
"prestashopCategoryId": 0,
"attributes": {
"href": "https://api.bsale.com.pe/v1/product_types/30/attributes.json"
}
},
{
"href": "https://api.bsale.com.pe/v1/product_types/9.json",
"id": 9,
"name": "Arriendo de producto",
"isEditable": 1,
"state": 0,
"imagestionCategoryId": 0,
"prestashopCategoryId": 0,
"attributes": {
"href": "https://api.bsale.com.pe/v1/product_types/9/attributes.json"
}
},
{
"href": "https://api.bsale.com.pe/v1/product_types/16.json",
"id": 16,
"name": "ARRIENDOS CHILEAN",
"isEditable": 1,
"state": 0,
"imagestionCategoryId": 0,
"prestashopCategoryId": 0,
"attributes": {
"href": "https://api.bsale.com.pe/v1/product_types/16/attributes.json"
}
},
{
"href": "https://api.bsale.com.pe/v1/product_types/5.json",
"id": 5,
"name": "Artículos Oficina",
"isEditable": 1,
"state": 0,
"imagestionCategoryId": 0,
"prestashopCategoryId": 0,
"attributes": {
"href": "https://api.bsale.com.pe/v1/product_types/5/attributes.json"
}
}
]
}
GET un tipo de producto
GET /v1/product_types/2.json retornara un tipo de producto específico.
####Respuesta
{
"href": "https://api.bsale.com.pe/v1/product_types/2.json",
"id": 2,
"name": "Sin Tipo de Producto",
"isEditable": 1,
"state": 0,
"imagestionCategoryId": 0,
"prestashopCategoryId": 0,
"attributes": {
"href": "https://api.bsale.com.pe/v1/product_types/2/attributes.json"
}
}
GET productos de un tipo de producto
GET /v1/product_types/3/products.json
{
"href": "https://api.bsale.com.pe/v1/products.json",
"count": 2,
"limit": 25,
"offset": 0,
"items": [
{
"href": "https://api.bsale.com.pe/v1/products/2.json",
"id": 2,
"name": "Asesoria Informatica Imagestion Capacitacion",
"description": "",
"classification": 1,
"ledgerAccount": "",
"costCenter": "",
"allowDecimal": 1,
"stockControl": 0,
"printDetailPack": 0,
"state": 0,
"prestashopProductId": 0,
"presashopAttributeId": 0,
"product_type": {
"href": "https://api.bsale.com.pe/v1/product_types/3.json",
"id": "3"
}
},
{
"href": "https://api.bsale.com.pe/v1/products/49.json",
"id": 49,
"name": "Etravel Capacitacion",
"description": "",
"classification": 1,
"ledgerAccount": "",
"costCenter": "",
"allowDecimal": 1,
"stockControl": 0,
"printDetailPack": 0,
"state": 0,
"prestashopProductId": 0,
"presashopAttributeId": 0,
"product_type": {
"href": "https://api.bsale.com.pe/v1/product_types/3.json",
"id": "3"
}
}
]
}
GET cantidad de tipos de producto
GET /v1/product_types/count.json
####Parametros
state, permite filtrar por estado, activos (0) inactivos (1).
####Respuesta
{
"count": 1926
}
GET atributos de un tipo de producto
GET /v1/product_types/44/attributes.json
{
"href": "https://api.bsale.com.pe/v1/product_types/44/attributes.json",
"count": 2,
"limit": 25,
"offset": 0,
"items": [
{
"href": "https://api.bsale.com.pe/v1/product_types/44/attributes/46.json",
"id": 46,
"name": "Fabricante",
"isMandatory": 0,
"generateVariantName": 1,
"hasOptions": 1,
"options": "Nintendo|Microsoft|Sony",
"state": 0
},
{
"href": "https://api.bsale.com.pe/v1/product_types/44/attributes/47.json",
"id": 47,
"name": "Sistema",
"isMandatory": 0,
"generateVariantName": 1,
"hasOptions": 1,
"options": "Wii U|Xone|PS4",
"state": 0
}
]
}
GET atributos de un tipo de producto específico
GET /v1/product_types/156/attributes/93.json
{
"href": "https://api.bsale.com.pe/v1/product_types/156/attributes/93.json",
"id": 93,
"name": "atributito",
"isMandatory": 0,
"generateVariantName": 0,
"hasOptions": 0,
"options": "",
"state": 0
}
POST un tipo de producto
POST /v1/product_types.json
Se debe enviar un Json con la siguiente estructura.
{
"name": "Consolas Next GEN",
}
Atributos (Opcional)
Si se desean crear atributos especiales para el tipo de producto se debe enviar la siguiente estructura.
"attributes": [
{
"name": "Fabricante",
"isMandatory": 0,
"generateVariantName": 1,
"hasOptions": 1,
"options": "Nintendo|Microsoft|Sony",
"state": 0
},
{
"name": "Sistema",
"isMandatory": 0,
"generateVariantName": 1,
"hasOptions": 1,
"options": "Wii U|Xone|PS4",
"state": 0
}
]
name, nombre del atributo (String).
isMandatory, indica si el atributo es obligatorio, 0 es No 1 es Si (Boolean).
generateVariantName, indica si el atributo se usara para generar el nombre de la variante, 0 es No 1 es Si(Boolean).
hasOptions, indica si el atributo tendrá opciones, 0 es No 1 es Si (Boolean).
options, opciones del atributo, se separan con el carácter "|" (String).
state, indica el estado del atributo, 0 Activo 1 Inactivo (Boolean).
Ejemplo de estructura JSON
{
"name": "Consolas Next GEN",
"attributes": [
{
"name": "Fabricante",
"isMandatory": 0,
"generateVariantName": 1,
"hasOptions": 1,
"options": "Nintendo|Microsoft|Sony",
"state": 0
},
{
"name": "Sistema",
"isMandatory": 0,
"generateVariantName": 1,
"hasOptions": 1,
"options": "Wii U|Xone|PS4",
"state": 0
}
]
}
####Respuesta
{
"href": "https://api.bsale.com.pe/v1/product_types/44.json",
"id": 44,
"name": "Consolas Next GEN",
"isEditable": 1,
"state": 0,
"imagestionCategoryId": 0,
"prestashopCategoryId": 0,
"attributes": {
"href": "https://api.bsale.com.pe/v1/product_types/44/attributes.json"
}
}
PUT un tipo de producto
PUT /v1/variants/44.json
Se debe enviar un Json con la siguiente estructura, si se desea cambiar los atributos se debe enviar el "id" de lo contrario se crea otro atributo.
{
"id": 44,
"name": "Consolas Next GEN 2",
"attributes": [
{
"id": 1,
"name": "Fabricante",
"isMandatory": 0,
"generateVariantName": 1,
"hasOptions": 1,
"options": "Nintendo|Microsoft|Sony",
"state": 0
},
{
"id": 2,
"name": "Sistema",
"isMandatory": 0,
"generateVariantName": 1,
"hasOptions": 1,
"options": "Wii U|Xone|PS4",
"state": 0
}
]
}
####Respuesta
{
"href": "https://api.bsale.com.pe/v1/product_types/44.json",
"id": 44,
"name": "Consolas Next GEN",
"isEditable": 1,
"state": 0,
"imagestionCategoryId": 0,
"prestashopCategoryId": 0,
"attributes": {
"href": "https://api.bsale.com.pe/v1/product_types/44/attributes.json"
}
}
DELETE un tipo de producto
DELETE /v1/product_types/44.json cambia el estado del tipo de producto.
{
"href": "https://api.bsale.com.pe/v1/product_types/44.json",
"id": 44,
"name": "Consolas Next GEN 2",
"isEditable": 1,
"state": 1,
"imagestionCategoryId": 0,
"prestashopCategoryId": 0,
"attributes": {
"href": "https://api.bsale.com.pe/v1/product_types/44/attributes.json"
}
}