Cargar productos y variantes
Un producto se vende en variantes, y cada variante guarda sus propios datos.
Cada producto del catálogo vive en /products. Si se vende en tallas, colores o capacidades, tiene variantes: una fila por combinación, con su SKU, su precio, sus existencias y sus opciones. Leer pide marketplace:read; escribir, marketplace:write.
Atributos de una variante
Lo que cambia de una variante a otra y no es una opción de compra va en attributes: un mapa plano de texto, número o booleano. Por ejemplo, el rango de batería de los equipos que respaldan un SKU.
curl -X PATCH "https://api.vitrinadev.com/api/v1/products/$PRODUCT_ID/variants/$VARIANT_ID" \
-H "Authorization: Bearer $VITRINA_KEY" \
-H "Content-Type: application/json" \
-d '{"attributes": {"battery_min_pct": 99, "battery_max_pct": 100}}'La respuesta trae la variante completa, con "attributes": {"battery_min_pct": 99, "battery_max_pct": 100}. Una variante sin datos devuelve {}.
POST /products/{id}/variantsyPATCH /products/{id}/variants/{variantId}aceptanattributes; también cada elemento devariants[]al crear un producto.- Cada llave usa letras, números,
_,.o-(hasta 60 caracteres). Cada valor es texto (hasta 300), número o booleano. No se aceptan objetos, listas ninull. - Hasta 20 llaves y 2 KB por variante. Si te pasas, la respuesta es
400 VALIDATION_ERROR. PATCHreemplaza el mapa completo: manda todas las llaves que quieres conservar.{}lo vacía.- El agente de ventas lee
attributesdesdesearch_product_stockpara contestar preguntas como «¿qué batería tiene?».