Skip to main content
Version: 馃搫 PE

Productos y servicios

Listar productos, variantes, cantidades, crear productos.

C贸mo funciona la interfaz de Bsale, mira 茅stos videos:

  • Creaci贸n un producto Ver
info

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 arreglo details del documento.

Estructura JSON

Al realizar una petici贸n HTTP, el servicio retornara un JSON con la siguiente estructura:

Response /v1/products/92.json
{
"href": "https://api.bsale.io/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.io/v1/product_types/1.json",
"id": "1"
},
"product_taxes": {
"href": "https://api.bsale.io/v1/products/92/product_taxes.json"
}
}

Atributos

AtributoDescripci贸nTipo dato
hrefurl del productoString
ididentificador 煤nico del productoInteger
namenombre del productoString
descriptiondescripci贸n del productoString
classificationindica la clase del producto 0 es producto, 1 es servicio y 3 si es un pack o promocionInteger
ledgerAccountcuenta contable del productoString
costCentercentro de costo del productoString
allowDecimalindica si el producto permite trabajar con decimales, ej, productos pesables. No(0) o Si (1)Boolean
stockControlindica si el producto controlara stock No(0) o Si (1)Boolean
printDetailPackindica si se muestra el detalle del pack No(0) o Si (1)Boolean
stateestado del producto activo(0) o inactivo (1)Boolean
prestashopProductIdidentificador del producto en prestashop en el caso de existir la integraci贸n legacy
presashopAttributeIdidentificador del producto en prestashop en el caso de existir la integraci贸n legacy
product_typenodo que indica la relaci贸n con el tipo de producto
product_taxesnodo que indica los impuestos asociados al producto

GET lista de productos

  • GET /v1/products.json retornar谩 todos los despachos.

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 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]
  • GET /v1/products.json?classification=3
Response /products.json
{
"href": "https://api.bsale.io/v1/products.json",
"count": 693,
"limit": 3,
"offset": 0,
"items": [
{
"href": "https://api.bsale.io/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.io/v1/product_types/1.json",
"id": "1"
},
"product_taxes": {
"href": "https://api.bsale.io/v1/products/731/product_taxes.json"
}
},
{
"href": "https://api.bsale.io/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.io/v1/product_types/1.json",
"id": "1"
},
"product_taxes": {
"href": "https://api.bsale.io/v1/products/474/product_taxes.json"
}
},
{
"href": "https://api.bsale.io/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.io/v1/product_types/1.json",
"id": "1"
},
"product_taxes": {
"href": "https://api.bsale.io/v1/products/703/product_taxes.json"
}
}
],
"next": "https://api.bsale.io/v1/products.json?limit=3&offset=3"
}

GET un producto

  • GET /v1/products/62.json retornar谩 un producto espec铆fico.

Par谩metros

  • expand, permite expandir instancias y colecciones para traer relaciones en una sola petici贸n.

Ejemplos

  • GET /v1/products/150.json?expand=[product_type]
Response /products/150.json
{
"href": "https://api.bsale.io/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.io/v1/product_types/1.json",
"id": "1"
},
"product_taxes": {
"href": "https://api.bsale.io/v1/products/150/product_taxes.json"
}
}

GET variantes de un producto

  • GET /v1/products/62/variants.json retorna las variantes de un producto.
Response /products/:id/variants.json
{
"href": "https://api.bsale.io/v1/variants.json",
"count": 3,
"limit": 25,
"offset": 0,
"items": [
{
"href": "https://api.bsale.io/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.io/v1/products/150.json",
"id": "150"
},
"attribute_values": {
"href": "https://api.bsale.io/v1/variants/500/attribute_values.json"
},
"costs": {
"href": "https://api.bsale.io/v1/variants/500/costs.json"
}
},
{
"href": "https://api.bsale.io/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.io/v1/products/150.json",
"id": "150"
},
"attribute_values": {
"href": "https://api.bsale.io/v1/variants/499/attribute_values.json"
},
"costs": {
"href": "https://api.bsale.io/v1/variants/499/costs.json"
}
},
{
"href": "https://api.bsale.io/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.io/v1/products/150.json",
"id": "150"
},
"attribute_values": {
"href": "https://api.bsale.io/v1/variants/498/attribute_values.json"
},
"costs": {
"href": "https://api.bsale.io/v1/variants/498/costs.json"
}
}
]
}

GET impuestos de un producto

  • GET /v1/products/150/product_taxes.json Retornar谩 impuestos asociados al producto.
Response /products/150/product_taxes.json
{
"href": "https://api.bsale.io/v1/products/150/product_taxes.json",
"count": 2,
"limit": 25,
"offset": 0,
"items": [
{
"href": "https://api.bsale.io/v1/products/150/product_taxes/159.json",
"id": "159",
"tax": {
"href": "https://api.bsale.io/v1/taxes/1.json",
"id": "1"
}
}
]
}

GET un impuesto de un producto

  • GET /v1/products/150/product_taxes/159.json Retornar谩 un impuesto asociado al producto.
Response /products/150/product_taxes/159.json
{
"href": "https://api.bsale.io/v1/products/150/product_taxes/159.json",
"id": "159",
"tax": {
"href": "https://api.bsale.io/v1/taxes/1.json",
"id": "1"
}
}

GET cantidad de productos

  • GET /v1/products/count.json Retornar谩 la cantidad de registros de productos
{
"count": 53
}
  • state, boolean (0 o 1) indica si los productos est谩n activos(0) inactivos (1).

POST un producto

  • POST /v1/products.json

Se debe enviar un Json con la siguiente estructura.

Ejemplo JSON

Env铆o

{
"name": "Calcetines",
"allowDecimal": 0,
"stockControl": 1,
"productTypeId": 1
}
  • name, nombre del producto (String).
  • description, descripci贸n del producto (String).
  • classification, indica la clase del producto 0 es producto, 1 es servicio (Integer)
  • stockControl, indica si el producto controlara stock No(0) o Si (1) (Boolean).
  • productTypeId, Id del tipo de producto (Integer)
  • serialNumber, indica si el producto controla o no series. No (0) o Si (1) (Integer)
  • isLot, indica si la serie se podr谩 repetir. No (0) o Si (1) (Integer)
  • taxes, Arreglo que referencia los id's de impuesto asociados al producto.
tip

Si no se definen impuestos en la creaci贸n del producto, se asignar谩n los configurados por defecto en Bsale.

Respuesta

{
"stockControl": 1,
"name": "Calcetines",
"ledgerAccount": "",
"href": "https://api.bsale.io/v1/products/97.json",
"prestashopProductId": 0,
"presashopAttributeId": 0,
"costCenter": "",
"printDetailPack": 0,
"product_type": {
"href": "https://api.bsale.io/v1/product_types/1.json",
"id": "1"
},
"classification": 1,
"description": "",
"id": 97,
"state": 0,
"allowDecimal": 0
}

PUT un producto

  • PUT /v1/products/97.json

Se debe enviar un Json con la siguiente estructura.

Ejemplo JSON

Env铆o

{
"id": "97",
"productTypeId": 10
}

Respuesta

{
"stockControl": 1,
"name": "Calcetines de Mujer",
"ledgerAccount": "Calcetas",
"href": "https://api.bsale.io/v1/products/97.json",
"prestashopProductId": 0,
"presashopAttributeId": 0,
"costCenter": "23",
"printDetailPack": 0,
"product_type": {
"href": "https://api.bsale.io/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.
danger

El producto no estar谩 visible mediante interfaz y tendr谩 un state 99

{
"href": "https://api.bsale.io/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": 99,
"prestashopProductId": 0,
"presashopAttributeId": 0,
"product_type": {
"href": "https://api.bsale.io/v1/product_types/1.json",
"id": "1"
}
}