Eixos e geração de variações
Define os eixos de variação de um produto, gera todas as combinações e sincroniza dados do pai para as filhas.
Os eixos são as características (Cor, Tamanho) que diferenciam as versões de um produto. Eles formam o grupo de variação, criado na primeira chamada de definição. Só depois dele é possível criar filhas, uma a uma ou por combinação.
Ler eixos
/api/v1/vendor/products/{id}/variation-groupSellerLer os eixos de variação
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioExemplo de requisição (ler eixos)
curl "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/variation-group" \
-H "Authorization: Bearer $TOKEN"Resposta (ler eixos)
{
"features": [
{
"id": "d1e2f3a4-0001-4b2c-8d3e-4f5a6b7c8d9e",
"group_id": "9e8d7c6b-5a49-4382-9170-6f5e4d3c2b1a",
"feature_id": "1f2e3d4c-5b6a-4789-8a9b-0c1d2e3f4a5b",
"purpose": "group_catalog_item"
}
],
"group_id": "9e8d7c6b-5a49-4382-9170-6f5e4d3c2b1a"
}Campos da resposta
group_idstring (uuid) | nullnull se o produto não tem grupo.featuresarrayid, group_id, feature_id, purpose.Erros (ler eixos)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 400 | Id que não é UUID. | {"error":"invalid id"} |
| 404 | Produto não existe. | {"error":"product not found"} |
Definir eixos
Define quais características diferenciam as versões do produto (os eixos, como Cor e Tamanho). A primeira chamada cria o grupo; as seguintes substituem os eixos. O produto não pode ser, ele mesmo, uma variação.
/api/v1/vendor/products/{id}/variation-group-featuresSellerDefinir os eixos de variação
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioCorpo da requisição
featuresarrayobrigatórioEixos, ao menos um.
feature_idstring (uuid)obrigatórioGET /api/v1/vendor/features.purposestringpadrão: group_catalog_itemgroup_catalog_itemgroup_variation_catalog_itemgroup_catalog_item.Exemplo de requisição (definir eixos)
curl -X PUT "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/variation-group-features" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"features": [
{
"feature_id": "1f2e3d4c-5b6a-4789-8a9b-0c1d2e3f4a5b",
"purpose": "group_catalog_item"
}
]
}'Resposta (definir eixos)
{
"group_id": "9e8d7c6b-5a49-4382-9170-6f5e4d3c2b1a"
}Campos da resposta
group_idstring (uuid)Erros (definir eixos)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 500 | Lista de eixos vazia, produto que já é variação, ou característica inexistente. | {"error":"failed to set variation group","detail":"at least one feature is required"} |
Gerar variações
Cria de uma vez uma filha para cada combinação enviada. Combinação que já existe é pulada. A operação é tudo ou nada: se uma combinação falhar, nenhuma filha é criada. As filhas nascem com SKU vazio e estoque 0.
/api/v1/vendor/products/{id}/variations/generateSellerGerar variações por combinação
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioCorpo da requisição
combinationsarrayobrigatórioid da característica para id da opção da característica (UUIDs). Ao menos um item.Exemplo de requisição (gerar)
curl -X POST "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/variations/generate" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"combinations": [
{
"1f2e3d4c-5b6a-4789-8a9b-0c1d2e3f4a5b": "6c7d8e9f-0a1b-4c2d-9e3f-4a5b6c7d8e9f"
},
{
"1f2e3d4c-5b6a-4789-8a9b-0c1d2e3f4a5b": "7d8e9f0a-1b2c-4d3e-8f4a-5b6c7d8e9f0a"
}
]
}'Resposta (gerar)
{
"variations": [
{
"id": "c0ffee00-1111-4222-8333-444455556666",
"name": "Camiseta Básica Algodão Preta - M",
"parent_product_id": "7bc1d5e9-a9a4-457b-866f-bbb3879d258d",
"is_variation": true
}
],
"total": 1
}Campos da resposta
variationsarraytotalintegerErros (gerar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 500 | Pai sem grupo de variação, ou combinação inválida. | {"error":"failed to generate variations","detail":"parent product has no variation group; create one first"} |
Sincronizar
Copia do pai para todas as filhas a descrição, o resumo, a categoria e o SEO (título e descrição). Nome, SKU, preço, estoque, peso, imagens e valores de eixo de cada filha não mudam.
/api/v1/vendor/products/{id}/variations/syncSellerCopiar dados do pai para as variações
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioExemplo de requisição (sincronizar)
curl -X POST "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/variations/sync" \
-H "Authorization: Bearer $TOKEN"Resposta (sincronizar)
{
"message": "variation data synced"
}Campos da resposta
messagestringErros (sincronizar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Token ausente, inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | Token que não é de seller, ou usuário sem o privilégio exigido pela rota. | {"error":"insufficient vendor privileges","privilege_required_any":["vendor_catalog"]} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 500 | O produto é, ele mesmo, uma variação. | {"error":"failed to sync variation data","detail":"parent product not found or is itself a child"} |