Agendar demo
Crear con variantes
Referencia

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. 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. 2
    Definir los atributos de la categoría

    POST /catalog/attributes × N — crea un atributo con role: "spec" por cada propiedad compartida (p. ej. material) y uno con role: "axis" por cada eje que genera variantes (p. ej. talla). Omite si ya están definidos.

  3. 3
    Crear el grupo

    POST /catalog/groups — registra el grupo que contendrá todas las variantes ("Camiseta Azul"). El id del grupo se usará en el paso 5.

  4. 4
    Asignar valores spec al grupo

    PUT /catalog/attribute-values — asigna los atributos compartidos al grupo. Estos valores se heredarán a todas las variantes (p. ej. material = algodón).

  5. 5
    Crear las variantes como productos

    POST /catalog/products × N — crea un producto por cada combinación de eje (S, M, L). Incluye el campo group_id con el id del grupo del paso 3. Cada variante tiene su propio SKU.

  6. 6
    Asignar valores axis a cada variante

    PUT /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" }