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"
  }
}