Catálogo API v1
Atributos de categoría
Los atributos definen qué especificaciones y ejes de variante describe a los productos de una categoría. Se heredan a todas las subcategorías.
Campos
| Campo | Tipo | Notas | |
|---|---|---|---|
category_id | number | req | |
key | string | req | Único en la categoría. Snake_case recomendado |
label | string | req | Nombre visible al usuario |
data_type | enum | req | text · number · boolean · enum |
role | enum | req | spec (describe) · axis (genera variantes) |
options | array | Solo para data_type: enum. Ej: [{"value":"s","label":"S"}] | |
unit | string | Unidad de la medida, p. ej. cm, g | |
is_required | boolean | Default false | |
sort_order | integer |
Roles:
role: "spec" → el valor se asigna al grupo y lo heredan todas sus variantes. Usa este rol para propiedades comunes (material, color de base).
role: "axis" → el valor se asigna a cada producto/variante individualmente. Usa este rol para los ejes que distinguen las variantes (talla, capacidad).
Endpoints
Request — atributo axis
{
"category_id": 18,
"key": "talla",
"label": "Talla",
"data_type": "enum",
"role": "axis",
"options": [
{ "value": "s", "label": "S" },
{ "value": "m", "label": "M" },
{ "value": "l", "label": "L" }
]
} Response 201
{
"id": 31,
"category_id": 18,
"key": "talla",
"label": "Talla",
"data_type": "enum",
"role": "axis",
"options": [
{ "value": "s", "label": "S" },
{ "value": "m", "label": "M" },
{ "value": "l", "label": "L" }
],
"is_required": false,
"sort_order": 0
} Edita label, options, unit, is_required, sort_order. El key, data_type y role son inmutables.
Borra el atributo y todos sus valores asignados. 409 si el atributo es de tipo axis y tiene variantes activas generadas a partir de él.