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.

  • Cómo funciona el Front-end de Bsale, mira éstos videos: (ver)

Estructura JSON

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

{
  "href": "https://api.bsale.cl/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.cl/v1/products/656.json",
    "id": "656"
  },
  "attribute_values": {
    "href": "https://api.bsale.cl/v1/variants/2373/attribute_values.json"
  },
  "costs": {
    "href": "https://api.bsale.cl/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, indica si la variante posee numero de serie No(0) Si(1) (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.cl/v1/variants.json",
  "count": 868,
  "limit": 3,
  "offset": 0,
  "items": [
    {
      "href": "https://api.bsale.cl/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.cl/v1/products/416.json",
        "id": "416"
      },
      "attribute_values": {
        "href": "https://api.bsale.cl/v1/variants/1548/attribute_values.json"
      },
      "costs": {
        "href": "https://api.bsale.cl/v1/variants/1548/costs.json"
      }
    },
    {
      "href": "https://api.bsale.cl/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.cl/v1/products/420.json",
        "id": "420"
      },
      "attribute_values": {
        "href": "https://api.bsale.cl/v1/variants/1555/attribute_values.json"
      },
      "costs": {
        "href": "https://api.bsale.cl/v1/variants/1555/costs.json"
      }
    },
    {
      "href": "https://api.bsale.cl/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.cl/v1/products/588.json",
        "id": "588"
      },
      "attribute_values": {
        "href": "https://api.bsale.cl/v1/variants/2101/attribute_values.json"
      },
      "costs": {
        "href": "https://api.bsale.cl/v1/variants/2101/costs.json"
      }
    }
  ],
  "next": "https://api.bsale.cl/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.cl/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.cl/v1/products/656.json",
    "id": "656"
  },
  "attribute_values": {
    "href": "https://api.bsale.cl/v1/variants/2373/attribute_values.json"
  },
  "costs": {
    "href": "https://api.bsale.cl/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.cl/v1/variants/5730/attribute_values.json",
  "count": 4,
  "limit": 25,
  "offset": 0,
  "items": [
    {
      "href": "https://api.bsale.cl/v1/variants/5730/attribute_values/34192.json",
      "id": 34192,
      "description": "Microsoft",
      "attribute": {
        "href": "https://api.bsale.cl/v1/product_types/6/attributes/25.json",
        "id": "25"
      }
    },
    {
      "href": "https://api.bsale.cl/v1/variants/5730/attribute_values/34193.json",
      "id": 34193,
      "description": "14-09-2010",
      "attribute": {
        "href": "https://api.bsale.cl/v1/product_types/6/attributes/28.json",
        "id": "28"
      }
    },
    {
      "href": "https://api.bsale.cl/v1/variants/5730/attribute_values/34194.json",
      "id": 34194,
      "description": "370",
      "attribute": {
        "href": "https://api.bsale.cl/v1/product_types/6/attributes/29.json",
        "id": "29"
      }
    },
    {
      "href": "https://api.bsale.cl/v1/variants/5730/attribute_values/34195.json",
      "id": 34195,
      "description": "360",
      "attribute": {
        "href": "https://api.bsale.cl/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.cl/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.cl/v1/stocks/receptions/2539/details/7734.json",
        "id": 7734
      },
      "admissionDate": 1441238400,
      "cost": 4140,
      "availableFifo": 1
    },
    {
      "reception_detail": {
        "href": "https://api.bsale.cl/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
  }
]

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.cl/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.cl/v1/products/595.json",
    "id": "595"
  },
  "attribute_values": {
    "href": "https://api.bsale.cl/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.cl/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.cl/v1/products/595.json",
    "id": "595"
  },
  "attribute_values": {
    "href": "https://api.bsale.cl/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.cl/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.cl/v1/products/595.json",
    "id": "595"
  },
  "attribute_values": {
    "href": "https://api.bsale.cl/v1/variants/2110/attribute_values.json"
  }
}