Crear un producto con variantes
Guía paso a paso para registrar un producto que tiene varias variantes (p. ej. una camiseta en tallas S, M y L) usando la API del catálogo.
Flujo completo
Sigue estos 6 pasos en orden. Cada respuesta incluye el id que necesitas en el siguiente paso.
- 1 Crear o reutilizar la categoría
POST /catalog/categories— define la categoría bajo la que caerá el producto. Omite este paso si la categoría ya existe. - 2 Definir los atributos de la categoría
POST /catalog/attributes× N — crea un atributo conrole: "spec"por cada propiedad compartida (p. ej. material) y uno conrole: "axis"por cada eje que genera variantes (p. ej. talla). Omite si ya están definidos. - 3 Crear el grupo
POST /catalog/groups— registra el grupo que contendrá todas las variantes ("Camiseta Azul"). Eliddel grupo se usará en el paso 5. - 4 Asignar valores
specal grupoPUT /catalog/attribute-values— asigna los atributos compartidos al grupo. Estos valores se heredarán a todas las variantes (p. ej. material = algodón). - 5 Crear las variantes como productos
POST /catalog/products× N — crea un producto por cada combinación de eje (S, M, L). Incluye el campogroup_idcon eliddel grupo del paso 3. Cada variante tiene su propio SKU. - 6 Asignar valores
axisa cada variantePUT /catalog/attribute-values× N — asigna el valor del eje a cada producto creado (p. ej. producto 201 → talla = S; producto 202 → talla = M; producto 203 → talla = L).
Ejemplo en código
# 1. Categoría POST /catalog/categories { "name": "Ropa", "slug": "ropa" } → { "id": 11 } # 2a. Atributo spec POST /catalog/attributes { "category_id": 11, "key": "material", "label": "Material", "data_type": "text", "role": "spec" } → { "id": 30 } # 2b. Atributo axis POST /catalog/attributes { "category_id": 11, "key": "talla", "label": "Talla", "data_type": "enum", "role": "axis", "options": [{"value":"s","label":"S"},{"value":"m","label":"M"},{"value":"l","label":"L"}] } → { "id": 31 } # 3. Grupo POST /catalog/groups { "name": "Camiseta Azul", "slug": "camiseta-azul", "category_id": 11 } → { "id": 88 } # 4. Spec del grupo PUT /catalog/attribute-values { "attribute_id": 30, "group_id": 88, "value_text": "algodón" } # 5. Variantes POST /catalog/products → { "sku": "CAM-AZU-S", "group_id": 88, ... } → id 201 POST /catalog/products → { "sku": "CAM-AZU-M", "group_id": 88, ... } → id 202 POST /catalog/products → { "sku": "CAM-AZU-L", "group_id": 88, ... } → id 203 # 6. Axis de cada variante PUT /catalog/attribute-values { "attribute_id": 31, "product_id": 201, "value_text": "s" } PUT /catalog/attribute-values { "attribute_id": 31, "product_id": 202, "value_text": "m" } PUT /catalog/attribute-values { "attribute_id": 31, "product_id": 203, "value_text": "l" }