Productos
Listar productos
GET /api/v1/catalog/products
Parámetros:
| Nombre | Tipo | Descripción |
|---|---|---|
cursor | string | Cursor de paginación |
limit | int | Items por página (default 25, máx 100) |
filter[status] | string | active, draft, archived |
filter[vendor] | string | Nombre del proveedor |
sort | string | -created_at, title, -price |
Respuesta 200:
{
"data": [
{
"id": "uuid",
"title": "Polo Clásico",
"slug": "polo-clasico",
"status": "active",
"price": 4900,
"currency": "PEN",
"vendor": "Mi Marca",
"created_at": "2026-04-08T12:00:00Z"
}
],
"meta": { "pagination": { "cursor": "eyJ...", "has_next": true, "limit": 25 } }
}
Crear producto
POST /api/v1/catalog/products
{
"title": "Polo Clásico",
"slug": "polo-clasico",
"short_description": "Polo 100% algodón",
"price": 4900,
"currency": "PEN",
"status": "active",
"vendor": "Mi Marca"
}
Respuesta 201: objeto Product completo.
Obtener producto
GET /api/v1/catalog/products/:id
Actualizar producto
PUT /api/v1/catalog/products/:id
Mismos campos que crear. Omite los campos que no quieras cambiar.
Eliminar producto
DELETE /api/v1/catalog/products/:id
Respuesta 204 No Content
Gestionar variantes
Generar variantes desde opciones
POST /api/v1/catalog/products/:id/variants/generate
Genera automáticamente todas las combinaciones de opciones definidas.
Actualizar precio de variante
PATCH /api/v1/catalog/products/:id/variants/:variant_id
{ "price": 5500, "compare_at_price": 6000 }