Listar los productos de una tienda
GET /stores/{storeKey}/products
Devuelve los productos de la tienda, con sus variantes y los productos no disponibles (is_available en false). Los resultados van ordenados por nombre y luego por identificador, y la respuesta está paginada.
parent_ids lista los productos de los que este producto es modificador. is_modifier es true cuando parent_ids no está vacío. variant_of es el producto del que es variante. main_category_id es la categoría raíz de category_id.
prices trae un precio por catálogo y moneda. price es el precio con impuestos y net_price el precio sin impuestos.
Authorizations
Sección titulada «Authorizations »Parameters
Sección titulada « Parameters »Path Parameters
Sección titulada «Path Parameters »Identificador (UUID) de la tienda.
Example
2b7d9e40-c1a3-4f58-8e06-5a4d3c7b9f12Query Parameters
Sección titulada «Query Parameters »Filtra por tipo de producto.
Example
productCantidad de registros por página. Por defecto 15.
Example
15Número de página, empezando en 1. Por defecto 1.
Example
1Responses
Sección titulada « Responses »Una página del catálogo de la tienda, con sus variantes, modificadores y productos no disponibles. Sirve para mantener al día el catálogo y los precios en su sistema.
- Van ordenados por nombre y luego por identificador. Los registros llegan en
data, los enlaces de navegación enlinksy los totales enmeta; sigalinks.nexthasta que seanull. - Los productos no disponibles llegan con
is_availableenfalse: no los descarte sin revisar ese campo. priceynet_priceson cadenas de texto, con 2 y 5 decimales, no números.sku,external_id,category_idyvariant_ofpueden sernull.
object
Productos de esta página, ordenados por nombre y luego por identificador.
object
Identificador del producto.
Código del producto. Es null si no tiene.
Código externo del producto. Es null si no tiene.
Nombre del producto.
Tipo de producto.
Identificador de la categoría del producto.
Identificador de la categoría raíz de category_id.
Indica si el producto está disponible para la venta.
true cuando el producto es modificador de al menos otro producto (parent_ids no está vacío).
Identificadores de los productos de los que este producto es modificador.
Identificador del producto del que este producto es variante. Es null si no es una variante.
Precios del producto, uno por catálogo y moneda.
object
Identificador del catálogo de precios.
Nombre de la moneda, por ejemplo PEN o USD.
Precio con impuestos. string (2 dec).
Precio sin impuestos. string (5 dec).
Enlaces de la paginación. Conservan los parámetros de consulta de la petición.
object
URL de la primera página.
URL de la última página.
URL de la página anterior. Es null en la primera página.
URL de la página siguiente. Es null en la última página.
Información de la paginación.
object
Número de la página actual.
Posición del primer registro de la página dentro del total. Es null si no hay registros.
Número de la última página.
Enlaces para armar un paginador.
object
URL de la página. Es null cuando no hay página anterior o siguiente.
Texto del enlace.
true en la página actual.
URL de la operación, sin parámetros de consulta.
Cantidad de registros por página.
Posición del último registro de la página dentro del total. Es null si no hay registros.
Cantidad total de registros.
Examples
Primera página, con dos productos por página
{ "data": [ { "id": "7a9c1e3f-5b7d-4f91-a3c5-0e2b4d6f8a13", "sku": "HAM-001", "external_id": "100234", "name": "Hamburguesa Clásica", "type": "product", "category_id": "b1d3f5a7-9c1e-4b35-8d7f-2a4c6e8b0d24", "main_category_id": "c2e4a6b8-0d2f-4c46-9e8a-3b5d7f9a1c35", "is_available": true, "is_modifier": false, "parent_ids": [], "variant_of": null, "prices": [ { "catalog_id": "5c7e9a1b-3d5f-4b79-a1c3-8e0b2d4f6a97", "currency": "PEN", "price": "30.00", "net_price": "25.42373" } ] }, { "id": "e5a7c9b1-4d6f-4a80-8b2c-6d8f0a2c4e53", "sku": "TOP-QSO", "external_id": null, "name": "Queso extra", "type": "topping", "category_id": null, "main_category_id": null, "is_available": true, "is_modifier": true, "parent_ids": [ "7a9c1e3f-5b7d-4f91-a3c5-0e2b4d6f8a13" ], "variant_of": null, "prices": [ { "catalog_id": "5c7e9a1b-3d5f-4b79-a1c3-8e0b2d4f6a97", "currency": "PEN", "price": "3.00", "net_price": "2.54237" } ] } ], "links": { "first": "https://host-proporcionado-por-idbi/api/open/v1/stores/6a8c0e2f-5b7d-4d9b-9e3a-4f6b8d0c2e53/products?paginate=2&page=1", "last": "https://host-proporcionado-por-idbi/api/open/v1/stores/6a8c0e2f-5b7d-4d9b-9e3a-4f6b8d0c2e53/products?paginate=2&page=2", "prev": null, "next": "https://host-proporcionado-por-idbi/api/open/v1/stores/6a8c0e2f-5b7d-4d9b-9e3a-4f6b8d0c2e53/products?paginate=2&page=2" }, "meta": { "current_page": 1, "from": 1, "last_page": 2, "links": [ { "url": null, "label": "« Anterior", "active": false }, { "url": "https://host-proporcionado-por-idbi/api/open/v1/stores/6a8c0e2f-5b7d-4d9b-9e3a-4f6b8d0c2e53/products?paginate=2&page=1", "label": "1", "active": true }, { "url": "https://host-proporcionado-por-idbi/api/open/v1/stores/6a8c0e2f-5b7d-4d9b-9e3a-4f6b8d0c2e53/products?paginate=2&page=2", "label": "2", "active": false }, { "url": "https://host-proporcionado-por-idbi/api/open/v1/stores/6a8c0e2f-5b7d-4d9b-9e3a-4f6b8d0c2e53/products?paginate=2&page=2", "label": "Siguiente »", "active": false } ], "path": "https://host-proporcionado-por-idbi/api/open/v1/stores/6a8c0e2f-5b7d-4d9b-9e3a-4f6b8d0c2e53/products", "per_page": 2, "to": 2, "total": 3 }}Credenciales ausentes, inválidas, deshabilitadas o vencidas. El campo error.description indica el motivo.
Formato de error de la autenticación y del control de acceso del token.
object
Detalle del error, con su código, su mensaje y su descripción.
object
Siempre es 0.
Mensaje del error.
Detalle del error, cuando existe.
Examples
Falta una de las cabeceras
{ "error": { "code": 0, "message": "No autorizado", "description": "El token es obligatorio" }}Token que no corresponde a la clave
{ "error": { "code": 0, "message": "No autorizado", "description": "El token es inválido" }}Clave inexistente
{ "error": { "code": 0, "message": "No autorizado", "description": "El token no fue encontrado" }}Token deshabilitado
{ "error": { "code": 0, "message": "No autorizado", "description": "El token está deshabilitado" }}Token vencido
{ "error": { "code": 0, "message": "No autorizado", "description": "El token expiró" }}La tienda indicada en la ruta no pertenece al token. La respuesta es la misma para una tienda ajena y para una tienda inexistente.
Formato de error de la autenticación y del control de acceso del token.
object
Detalle del error, con su código, su mensaje y su descripción.
object
Siempre es 0.
Mensaje del error.
Detalle del error, cuando existe.
Examples
{ "error": { "code": 0, "message": "Acceso denegado", "description": "El token no tiene acceso a la tienda solicitada" }}Algún parámetro de consulta no es válido.
Formato de error cuando los datos enviados no superan la validación.
object
Mensaje general de validación.
Mensajes de error agrupados por nombre de campo.
object
Examples
Tipo de producto inexistente
{ "message": "Uno o más de los datos que has ingresado no cumplen con los requisitos mínimos.", "errors": { "type": [ "El campo type es inválido." ] }}Más de 100 registros por página
{ "message": "Uno o más de los datos que has ingresado no cumplen con los requisitos mínimos.", "errors": { "paginate": [ "El campo paginate no debe ser mayor a 100." ] }}