Productos

Listar productos, variantes, cantidades, crear productos.

Un producto puede tener 1 o más variantes. Ej, (Nombre Producto) Poleron Blanco, (Nombre Variantes) Talla L, Talla M, Talla S. La variante se debe crear una vez creado el producto. 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/products/92.json",

"id": 92,

"name": null,

"description": null,

"classification": 0,

"ledgerAccount": null,

"costCenter": null,

"allowDecimal": 0,

"stockControl": 1,

"printDetailPack": 0,

"state": 99,

"prestashopProductId": 0,

"presashopAttributeId": 0,

"product_type": {

"href": "https://api.bsale.com.pe/v1/product_types/1.json",

"id": "1"

},

"product_taxes": {

"href": "https://api.bsale.com.pe/v1/products/92/product_taxes.json"

}

}

  • href, url del producto (String).

  • id, identificador único del producto (Integer).

  • name, nombre del producto (String).

  • description, descripción del producto (String).

  • classification, indica la clase del producto 0 es producto, 1 es servicio y 3 si es un pack o promocion(Integer).

  • ledgerAccount, cuenta contable del producto (String).

  • costCenter, centro de costo del producto (String).

  • allowDecimal, indica si el producto permite trabajar con decimales No(0) o Si (1) (Boolean).

  • stockControl, indica si el producto controlara stock No(0) o Si (1) (Boolean).

  • printDetailPack, indica si se muestra el detalle del pack No(0) o Si (1) (Boolean).

  • state, estado del producto activo(0) o inactivo (1) (Boolean).

  • prestashopProductId, identificador del producto en prestashop en el caso de existir la integración.

  • presashopAttributeId, identificador del producto en prestashop en el caso de existir la integración.

  • product_type, nodo que indica la relación con el tipo de producto.

  • product_taxes, nodo que indica los impuestos asociados al producto.

GET lista de productos

  • GET /v1/products.json retornara todos los productos.

####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 del producto.

  • ledgeraccount, filtra por cuenta contable de los productos.

  • costcenter, filtra centro de costo de los productos.

  • producttypeid, filtra por tipo de producto.

  • state, boolean (0 o 1) indica si los productos están activos(0) inactivos (1).

####Ejemplos

  • GET /v1/products.json?limit=10&offset=0

  • GET /v1/products.json?fields=[name,ledgeraccount,description]

  • GET /v1/products.json?producttypeid=1

  • GET /v1/products.json?expand=[product_type]

####Respuesta

{

"href": "https://api.bsale.com.pe/v1/products.json",

"count": 693,

"limit": 3,

"offset": 0,

"items": [

{

"href": "https://api.bsale.com.pe/v1/products/731.json",

"id": 731,

"name": "11% Avalúo Fiscal Depto 515,",

"description": null,

"classification": 1,

"ledgerAccount": "",

"costCenter": "",

"allowDecimal": 0,

"stockControl": 0,

"printDetailPack": 0,

"state": 0,

"prestashopProductId": 0,

"presashopAttributeId": 0,

"product_type": {

"href": "https://api.bsale.com.pe/v1/product_types/1.json",

"id": "1"

},

"product_taxes": {

"href": "https://api.bsale.com.pe/v1/products/731/product_taxes.json"

}

},

{

"href": "https://api.bsale.com.pe/v1/products/474.json",

"id": 474,

"name": "24 clases 3 veces a la semana",

"description": null,

"classification": 3,

"ledgerAccount": "",

"costCenter": "",

"allowDecimal": 0,

"stockControl": 0,

"printDetailPack": 0,

"state": 0,

"prestashopProductId": 0,

"presashopAttributeId": 0,

"product_type": {

"href": "https://api.bsale.com.pe/v1/product_types/1.json",

"id": "1"

},

"product_taxes": {

"href": "https://api.bsale.com.pe/v1/products/474/product_taxes.json"

}

},

{

"href": "https://api.bsale.com.pe/v1/products/703.json",

"id": 703,

"name": "2x1",

"description": null,

"classification": 3,

"ledgerAccount": null,

"costCenter": null,

"allowDecimal": 0,

"stockControl": 0,

"printDetailPack": 0,

"state": 0,

"prestashopProductId": 0,

"presashopAttributeId": 0,

"product_type": {

"href": "https://api.bsale.com.pe/v1/product_types/1.json",

"id": "1"

},

"product_taxes": {

"href": "https://api.bsale.com.pe/v1/products/703/product_taxes.json"

}

}

],

"next": "https://api.bsale.com.pe/v1/products.json?limit=3&offset=3"

}

GET un producto

  • GET /v1/products/62.json retornara un producto específico.

####Parametros

  • expand, permite expandir instancias y colecciones.

####Ejemplos

  • GET /v1/products/150.json?expand=[product_type]

####Respuesta

{

"href": "https://api.bsale.com.pe/v1/products/150.json",

"id": 150,

"name": "polera",

"description": "",

"classification": 0,

"ledgerAccount": "",

"costCenter": "",

"allowDecimal": 0,

"stockControl": 1,

"printDetailPack": 0,

"state": 0,

"prestashopProductId": 0,

"presashopAttributeId": 0,

"product_type": {

"href": "https://api.bsale.com.pe/v1/product_types/1.json",

"id": "1"

},

"product_taxes": {

"href": "https://api.bsale.com.pe/v1/products/150/product_taxes.json"

}

}

GET variantes de un producto

  • GET /v1/products/62/variants.json

{

"href": "https://api.bsale.com.pe/v1/variants.json",

"count": 3,

"limit": 25,

"offset": 0,

"items": [

{

"href": "https://api.bsale.com.pe/v1/variants/500.json",

"id": 500,

"description": "gap",

"unlimitedStock": 0,

"allowNegativeStock": 0,

"state": 0,

"barCode": "1351176376",

"code": "1351176376",

"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/150.json",

"id": "150"

},

"attribute_values": {

"href": "https://api.bsale.com.pe/v1/variants/500/attribute_values.json"

},

"costs": {

"href": "https://api.bsale.com.pe/v1/variants/500/costs.json"

}

},

{

"href": "https://api.bsale.com.pe/v1/variants/499.json",

"id": 499,

"description": "L",

"unlimitedStock": 0,

"allowNegativeStock": 0,

"state": 0,

"barCode": "1351176361",

"code": "1351176361",

"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/150.json",

"id": "150"

},

"attribute_values": {

"href": "https://api.bsale.com.pe/v1/variants/499/attribute_values.json"

},

"costs": {

"href": "https://api.bsale.com.pe/v1/variants/499/costs.json"

}

},

{

"href": "https://api.bsale.com.pe/v1/variants/498.json",

"id": 498,

"description": "verde",

"unlimitedStock": 0,

"allowNegativeStock": 0,

"state": 0,

"barCode": "1351176256",

"code": "1351176256",

"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/150.json",

"id": "150"

},

"attribute_values": {

"href": "https://api.bsale.com.pe/v1/variants/498/attribute_values.json"

},

"costs": {

"href": "https://api.bsale.com.pe/v1/variants/498/costs.json"

}

}

]

}

GET impuestos de un producto

  • GET /v1/products/150/product_taxes.json

{

"href": "https://api.bsale.com.pe/v1/products/150/product_taxes.json",

"count": 2,

"limit": 25,

"offset": 0,

"items": [

{

"href": "https://api.bsale.com.pe/v1/products/150/product_taxes/159.json",

"id": "159",

"tax": {

"href": "https://api.bsale.com.pe/v1/taxes/1.json",

"id": "1"

}

}

]

}

GET impuesto específico de un producto

  • GET /v1/products/150/product_taxes/159.json

{

"href": "https://api.bsale.com.pe/v1/products/150/product_taxes/159.json",

"id": "159",

"tax": {

"href": "https://api.bsale.com.pe/v1/taxes/1.json",

"id": "1"

}

}

GET cantidad de productos

  • GET /v1/products/count.json

####Parametros

  • state, permite filtrar por estado, activos (0) inactivos (1).

####Respuesta

{

"count": 53

}

POST un producto

  • POST /v1/products.json

Se debe enviar un Json con la siguiente estructura.

{

"name": "Calcetines",

"description": "Multiples colores de calcetines",

"allowDecimal": 0,

"ledgerAccount": "Calcetas",

"costCenter": "23",

"stockControl": 1,

"productTypeId": 1

}

####Respuesta

{

"stockControl": 1,

"name": "Calcetines",

"ledgerAccount": "Calcetas",

"href": "https://api.bsale.com.pe/v1/products/97.json",

"prestashopProductId": 0,

"presashopAttributeId": 0,

"costCenter": "23",

"printDetailPack": 0,

"product_type": {

"href": "https://api.bsale.com.pe/v1/product_types/1.json",

"id": "1"

},

"classification": 1,

"description": "Multiples colores de calcetines",

"id": 97,

"state": 0,

"allowDecimal": 0

}

PUT un producto

  • PUT /v1/products/67.json

Se debe enviar un Json con la siguiente esctructura.

{

"id":"97",

"name": "Calcetines de Mujer",

}

####Respuesta

{

"stockControl": 1,

"name": "Calcetines de Mujer",

"ledgerAccount": "Calcetas",

"href": "https://api.bsale.com.pe/v1/products/97.json",

"prestashopProductId": 0,

"presashopAttributeId": 0,

"costCenter": "23",

"printDetailPack": 0,

"product_type": {

"href": "https://api.bsale.com.pe/v1/product_types/1.json",

"id": "1"

},

"classification": 1,

"description": "Multiples colores de calcetines",

"id": 97,

"state": 0,

"allowDecimal": 0

}

DELETE un producto virtualmente

  • DELETE /v1/products/97.json cambia el estado del producto.

{

"href": "https://api.bsale.com.pe/v1/products/97.json",

"id": 97,

"name": "Calcetines",

"description": "Multiples colores de calcetines",

"classification": 1,

"ledgerAccount": "Calcetas",

"costCenter": "23",

"allowDecimal": 0,

"stockControl": 1,

"printDetailPack": 0,

"state": 1,

"prestashopProductId": 0,

"presashopAttributeId": 0,

"product_type": {

"href": "https://api.bsale.com.pe/v1/product_types/1.json",

"id": "1"

}

}