Skip to Content

Obtener producto

GET /1/products/:id

Método utilizado para obtener un determinado producto de una tienda en particular.

Headers

{ "Authorization": "Bearer {access_token}", "X-Shop-Id": "12345" }
ParámetroTipoRequeridoValores aceptadosDescripción
AuthorizationstringSiBearer + access_tokenToken obtenido mediante client_id y client_secret.
X-Shop-IdstringSiString numéricoIdentificador único de la tienda a la cual se desea obtener sus ventas.

Params

{ "id": "product-1234" }
ParámetroTipoRequeridoValores aceptadosDescripción
idstringSiproduct-{id}Especifica qué producto obtener a través de su identificador único.

Response exitosa: 200 Ok

{ "id": "product-110737", "name": "test imgss", "slug": "test-imgss", "url": "https://prueba8882.empretienda.com.ar/indumentaria/remeras/remeras-manga-corta/remera-oversize", "description": "...", "type": 0, "wholesale_product_min_quantity": 1, "digital": 0, "disabled": false, "id_category": "category-33274", "images": [ { "id": "image-1234", "url": "https://cdn.example.com/productos/imagen-1.png", "order": 0 }, { "id": "image-1235", "url": "https://cdn.example.com/productos/imagen-2.png", "order": 1 }, { "id": "image-1236", "url": "https://cdn.example.com/productos/imagen-3.png", "order": 2 }, //... ], "categories": [ { "id": "category-33277", "name": "Sale", "parent_id": null, "google_category_id": 160 }, //... ], "attributes": [ { "id": "attribute-49681", "name": "Color" }, //... ], "stock": [ { "id": "stock-214106", "sku": "a124t512190", "quantity": 0, "unlimited": true, "price": 150, "offer": 0, "offer_price": 2, "offer_start_date": null, "offer_end_date": "2023-07-12T09:32:00Z", "wholesale_price": 0, "wholesale_min_quantity": 1, "show_price": true, "weight": 1, "width": 10, "height": 10, "depth": 10, "image_id": "image-1235", "digital_link": null, "digital_term": null, "digital_observation": null, "attribute_values": [ { "id": "attribute-49681", "name": "Color", "value": "Negro" }, //... ] }, //.. ] }

Campos de la respuesta

AtributoTipoDescripción
idstringCorresponde al id del producto.
namestringCorresponde al nombre del producto.
slugstringCorresponde al slug del producto, si se concatena con el slug de la línea jerárquica desde id_category hasta root junto con el dominio, se puede generar el link al producto.
urlstringContiene la url completa para acceder al producto como tal.
descriptionstringCorresponde a la descripción del producto. Es html.
typeintCorresponde al tipo de producto.
0: solo minorista
1: solo mayorista
2: mayorista y minorista
wholesale_product_min_quantityintCorresponde a la cantidad mínima de compra mayorista a nivel producto.
digitalintIndica si el producto es digital (y con qué modalidad) o si es un producto físico.
0: es un producto tangible y físico
1: es producto digital con envío automático (cuando se abona, se manda el link automáticamente). Ejemplo: e-books, cursos.
2: es un producto digital con envío manual. Ejemplo: diseño de logo, asesoría personalizada.
disabledbooleanIndica si el producto se encuentra visible o no al público en la tienda.
id_categorystringCorresponde a la categoría principal del producto.
images[][object]Contiene el array de imágenes de un producto. Actualmente un producto puede tener hasta 5 imágenes.
images[].idstringCorresponde al identificador único de la imagen.
images[].urlstringCorresponde al link de la imagen.
images[].orderintIndica el orden en el que serán mostradas las imágenes al ingresar al producto. La primer imagen mostrada es la que posea order=0.
categories[][object]Contiene información sobre las categorías (principal y secundarias) asociadas al producto.
categories[].idstringCorresponde al id de la categoría. Si el valor coincide con category_id entonces es la categoría principal del producto.
categories[].namestringCorresponde al nombre de la categoría.
categories[].parent_idstringCorresponde a la categoría padre de la categoría en cuestión. Si su valor es null, entonces es una categoría root.
categories[].google_category_idintCorresponde al identificador de categoría de Google que fue asignado a dicha categoría.
attributes[][object]Corresponde a la lista de atributos utilizados para el producto.
attributes[].idstringCorresponde al identificador único del atributo.
attributes[].namestringCorresponde al nombre del atributo.
stock[][object]Corresponde a la lista de stock asociado a dicho producto.
stock[].idstringCorresponde al identificador único de stock.
stock[].skustringCorresponde al identificador de stock provisto por el comercio.
stock[].quantityintCorresponde a la cantidad de stock.
Si unlimited=true, entonces quantity=0
Si unlimited=false, entonces quantity>=0
stock[].unlimitedbooleanIndica si posee o no stock infinito.
stock[].pricefloatIndica el precio minorista del producto.
price>0 si show_price=1 y type!=1
price=0 si show_price=0 y type!=1
stock[].offerintIndica el tipo de oferta minorista.
0: sin oferta
1: con oferta por tiempo ilimitado
2: oferta con fecha de fin
3: oferta con fecha de inicio y fin
stock[].offer_pricefloatIndica el precio de oferta minorista. Solo contendrá valor si offer>0.
stock[].offer_start_datestringIndica la fecha en ISO 8601 desde que el offer_price es válido. Solo si existe si offer=3.
stock[].offer_end_datestringIndica la fecha en ISO 8601 hasta que el offer_price es válido. Solo si existe si offer=3 o offer=2.
stock[].wholesale_pricefloatIndica el precio mayorista del producto
wholesale_price>0 si type>=1
wholesale_price=0 si type=0
stock[].wholesale_min_quantityintIndica la cantidad mínima mayorista que el cliente debe comprar de dicha variante de stock.
Aclaración: la diferencia con wholesale_product_min_quantity es que el mismo es un límite a nivel producto, es decir que si su valor es 5, entonces si se compran diferentes variantes de stock del mismo producto hasta llegar a dicha suma 5.
stock[].show_pricebooleanIndica si el producto es un producto con o sin price. Usado para mostrar productos como formato catálogo. El producto puede ser de venta mayorista con type=2 (no los de type=1), tener wholesale_price y a su vez no tener price. De manera que las personas no mayoristas tendrán un botón de consultar y los clientes mayoristas podrán agregarlo al carrito.
Valores:
false: el producto no tiene price y aparece un botón de consultar en lugar de agregar al carrito
true: el producto tiene price
stock[].weightfloatIndica el peso del producto empaquetado en kg
stock[].widthintIndica el ancho del producto empaquetado en cm
stock[].heightintIndica el alto del producto empaquetado en cm
stock[].depthintIndica la profundidad del producto empaquetado en cm
stock[].image_idstringCorresponde al identificador único de la imagen asociada al stock del producto. Debe ser un valor del array images.
stock[].digital_linkstringEs el link de descarga del producto digital que se envía cuando el producto es un producto digital con descarga automática y el usuario abona.
Valores:
Si digital=1 Regex: /^(https:\/\/|http:\/\/)[0-9a-zA-Z\.\:\/\#\-\_\?\=\&\$\%\@\~\!]{2,200}$/
Sino: null
stock[].digital_termstringEs el plazo de entrega del producto digital que se envía cuando el producto es un producto digital con envío manual.
Si digital=2 Regex: /^[a-zá-úÁ-Úä-üÄ-ÜA-Z0-9\s\!\.\-\,\?\"\'\:\¡\¿\%\(\)\[\]\$\+\~\#\_\&\/]{2,45}$/
Sino: ” o NULL
stock[].digital_observationstringEs una observación disponible para el usuario cuando el producto es un producto digital.
Valores:
Si digital>=1 Regex: /^[\s\S]{0,200}$/
Sino: null
stock[].attribute_values[][object]Contiene el valor de cada atributo para dicho stock.
stock[].attribute_values[].idstringCorresponde al attributes[].id
stock[].attribute_values[].namestringCorresponde al attributes[].name
stock[].attribute_values[].valuestringCorresponde al valor del atributo para dicho stock.

Responses de error

En caso de que la respuesta http no sea 200, entonces se debe considerar el error.

AtributoTipoDescripción
statusintHttp code de respuesta.
codestringCódigo de error, indica la naturaleza del mismo.
msgstringMensaje de error.

Ejemplo response 401 Unauthorized:

{ "status": 401, "code": "error", "msg": "Unauthorized" }

Ejemplo response 400 Bad Request genérico:

{ "status": 400, "code": "request_error", "msg": "Send valid data" }

Ejemplo response 400 Bad Request si algún parámetro de entrada requerido no es enviado:

{ "status": 400, "code": "param_required", "msg": "invalid <param_name>. The value is required" }

Ejemplo response 400 Bad Request si algún parámetro de entrada es inválido:

{ "status": 400, "code": "param_invalid", "msg": "Invalid <param_name>. The value is invalid" }

Ejemplo response 404 Not Found:

{ "status": 404, "code": "not_found", "msg": "Unexisting or deleted resource" }

Ejemplo response 500 Internal Server Error:

{ "status": 500, "code": "server_error", "msg": "Something went wrong" }