Skip to main content

Gestionar Productos

Esta guía cubre todas las operaciones para consultar, crear, actualizar y eliminar productos y sus sub-entidades.
Para ver todos los campos disponibles, tipos y validaciones de cada endpoint, consulta el API Reference.

Reglas Importantes

Antes de comenzar, ten en cuenta estas reglas que aplican a toda la gestión de productos:
Orden de creación obligatorio: Producto → Opciones → Variantes → Media / Categorías. No puedes crear variantes sin opciones previas.
  • Status del producto: Actualmente el único valor soportado es "published". El status se devuelve igual en las respuestas.
  • option_values es inmutable: Una vez creada la variante, no puedes cambiar sus option_values con PATCH. Si necesitas corregirlos, elimina la variante y créala de nuevo.
  • Monedas soportadas: MXN, PEN, COP, CLP, ARS, BRL, VES, BOB, USD, PYG, UYU, CRC, EUR.
  • La moneda debe coincidir con la del catálogo: Todas las variantes de un producto deben usar la misma moneda configurada en el catálogo. Usar una moneda diferente puede causar inconsistencias internas.
  • Respuestas: PATCH devuelve 200 con el recurso actualizado. DELETE devuelve 204 sin body.
  • Todo producto requiere al menos una variante: Incluso productos simples (sin tallas ni colores) necesitan mínimo una opción y una variante. Usa un nombre genérico como “Presentación” o “Unidad”.
  • No existen endpoints batch: Cada entidad se crea individualmente.

Consultar Productos

Listar productos

Devuelve una lista paginada de productos con todas sus sub-entidades.
La respuesta incluye paginación:
limit acepta un máximo de 100. Consulta Paginación para más detalles.

Obtener un producto

Devuelve un producto con todas sus opciones, variantes (con media) y categorías.
Ejemplo de respuesta:

Crear un Producto Completo

1. Crear el producto

2. Agregar opciones

La respuesta incluye los IDs de los valores creados. Guarda estos IDs para usarlos al crear variantes.
¿Necesitas agregar más valores a una opción? Usa POST /v1/products/{product_id}/options/{option_id}/values con el nombre del nuevo valor (ej. {"name": "XL"}).

3. Crear variantes

Cada variante debe incluir option_values con al menos un ID de valor de opción.

4. Agregar media a la variante

Las URLs de media deben ser públicas y accesibles. El sistema no puede acceder a URLs privadas o protegidas por autenticación.
Tipos de archivo permitidos:

5. Asignar categorías

Este endpoint es idempotente: si un tag ya está asignado, se ignora y la respuesta es 200. Solo se retorna 201 cuando se asignan tags nuevos.

Actualizar Entidades

Eliminar Entidades

Esto desvincula la categoría del producto, pero no elimina la categoría global.
Eliminar una variante también elimina toda su media asociada.
No puedes eliminar un valor de opción si está asociado a una variante activa.
Eliminar una opción también elimina todos sus valores. Las variantes asociadas a esos valores pueden quedar en estado inconsistente.
Eliminar un producto elimina todas sus variantes, opciones, valores de opción y media. Esta acción no se puede deshacer.

Producto Simple (sin variaciones)

No todos los productos tienen tallas o colores. Aún así, todo producto requiere al menos una opción y una variante. Usa un nombre genérico para la opción.
El nombre de la opción es libre: "Presentación", "Tipo", "Unidad", etc.

Errores Comunes

Los errores de validación (422) devuelven un body con detalles del campo que falló:
Estás creando una variante sin option_values o con una lista vacía. Debes crear opciones primero con POST /v1/products/{product_id}/options y usar los IDs de los valores retornados.
Si intentas crear una variante antes de haber creado opciones, no tendrás IDs de valores disponibles para el campo option_values. Siempre crea opciones primero.
El endpoint POST /v1/products/{product_id}/categories requiere tag_ids (lista de IDs numéricos), no nombres de categoría. Primero crea la categoría con POST /v1/categories y usa el id retornado.
El campo catalog_id es obligatorio al crear un producto. Obtén tu catálogo con GET /v1/catalogs.
Los IDs de option_values deben corresponder a valores del mismo producto. Usar IDs de otro producto o IDs inexistentes resultará en un error.
PATCH /v1/products/{product_id}/variants/{variant_id} no acepta option_values. Los valores de opción de una variante se asignan solo al crearla. Si necesitas corregirlos, elimina la variante y créala de nuevo con los valores correctos.