Skip to Content
Referencia de la APIProductosObtener productos

Obtener productos

GET /1/products

Método utilizado para obtener la lista de productos 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.

Query params

ParámetroTipoRequeridoValores aceptadosDescripción
query.id_categorystringNocategory-{id}Permite obtener los productos de una categoría en particular. De no especificar, trae los productos de todas las categorías.
query.typeintNo0: solo minorista
1: solo mayorista
2: mayorista y minorista
Permite filtrar por el tipo de producto.
query.digitalintNo0: productos físicos
1: producto digital con envío automático (cuando se abona, se manda el link automáticamente). Ejemplo: e-books, cursos.
2: producto digital con envío manual. Ejemplo: diseño de logo, asesoría personalizada
Permite filtrar por productos digitales o físicos.
query.offerintNo0: sin oferta
1: con oferta por tiempo ilimitado
2: oferta con fecha de fin
3: oferta con fecha de inicio y fin
Permite filtrar y obtener productos que posean al menos una variante de stock con oferta o sin oferta.
query.stockintNo0: productos sin stock
1: productos con stock
2: productos con stock ilimitado
Permite filtrar y obtener productos que posean al menos una variante de stock en el estado solicitado.
query.sortintNo0: más nuevo a más viejo
1: más viejo a más nuevo
2: precio menor a mayor (basado en precio minorista sin considerar precio de oferta)
3: precio mayor a menor (basado en precio minorista sin considerar precio de oferta)
4: orden alfabético basado en nombre del producto
Permite ordenar los productos.
query.searchstringNoRegex: /^(?=\S.{0,78}\S$)^([A-Za-z0-9ÁÉÍÓÚáéíóúÄËÏÖÜäëïöüñÑ\/\-\!\'\"\,\.\+\[\]\(\)\:\#\s]+)$/Permite buscar productos por su nombre.
query.pageintNopage>=0Permite paginar los resultados.
query.resultsintNo (solo se considera si existe query.page)0<results<=1000Permite definir cuántos resultados traer por página.

Response exitosa: 200 Ok

[ { "id": "product-110737", "name": "test imgss", "slug": "test-imgss", "description": "...", "type": 0, "wholesale_product_min_quantity": 1, "digital": 0, "disabled": false, "id_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": "category-1234", "google_category_id": 160 }, //... ], "attributes": [ { "id": "attribute-49681", "name": "Color" }, //... ], "stock": [ { "id": "stock-214106", "sku": null, "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.
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 500 Internal Server Error:

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