Saltar al contenido principal

Categorías

Las categorías soportan estructura de árbol mediante parent_id. Cada categoría tiene un path materializado (ej: root/electronics/phones) y un depth que indica el nivel de anidamiento.

Listar categorías

GET /api/v1/catalog/categories

Parámetros:

NombreTipoDescripción
cursorstringCursor de paginación
limitintItems por página (default 25, máx 100)
filter[status]stringactive, draft

Respuesta 200:

{
"data": [
{
"id": "uuid",
"parent_id": null,
"title": "Electrónica",
"slug": "electronica",
"depth": 0,
"path": "root/electronica",
"status": "active",
"visible_in_menu": true,
"product_count": 42,
"children": [
{
"id": "uuid",
"parent_id": "uuid",
"title": "Celulares",
"slug": "celulares",
"depth": 1,
"path": "root/electronica/celulares"
}
]
}
],
"meta": { "pagination": { "cursor": "eyJ...", "has_next": true } }
}

Crear categoría

POST /api/v1/catalog/categories

{
"title": "Celulares",
"slug": "celulares",
"description": "Smartphones y accesorios",
"parent_id": "uuid-de-electronica",
"position": 1,
"seo_title": "Celulares y Smartphones",
"seo_description": "Los mejores celulares al mejor precio"
}
CampoRequeridoTipoDescripción
titlestringNombre de la categoría
slugnostringURL-friendly (auto-generado si vacío)
descriptionnostringDescripción larga
parent_idnouuidCategoría padre (null = raíz)
positionnointOrden de aparición
seo_titlenostringTítulo para SEO
seo_descriptionnostringMeta descripción

Respuesta 201: objeto Category completo.


Obtener categoría

GET /api/v1/catalog/categories/:id

Incluye children anidados y product_count.


Actualizar categoría

PUT /api/v1/catalog/categories/:id

Mismos campos que crear. Adicionalmente:

CampoTipoDescripción
statusstringactive o draft
visible_in_menuboolMostrar en navegación
image_media_iduuidID de imagen en media library

Eliminar categoría

DELETE /api/v1/catalog/categories/:id

Respuesta 204 No Content

Para eliminar con productos asociados, usar DELETE /api/v1/catalog/categories/:id/archive-products (marca productos como archived).