Valores de opção
Lista, cria, altera e exclui os valores escolhíveis de uma opção de compra, com ajuste de preço e peso.
Cada valor é uma escolha da opção (P, M, G...) e pode somar ou subtrair do preço e do peso do produto. Na rota, esses valores se chamam variants, mas não são as variações (produtos filhos) de Variações.
Listar
/api/v1/vendor/products/{id}/options/{optionId}/variantsSellerListar os valores de uma opção
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId do produto.
optionIdstring (uuid)obrigatórioId da opção.
Exemplo de requisição (listar)
bash
curl "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/options/$OPTION_ID/variants" \
-H "Authorization: Bearer $TOKEN"Resposta (listar)
200Valores
json
{
"variants": [
{
"id": "a1b2c3d4-0002-4aaa-8bbb-111122223333",
"option_id": "a1b2c3d4-0001-4aaa-8bbb-111122223333",
"value": "M",
"price_modifier": 0,
"price_modifier_type": "absolute",
"weight_modifier": 0,
"weight_modifier_type": "absolute",
"sku_suffix": "-M",
"position": 0
}
]
}Campos da resposta
variantsarrayValores da opção.
idstring (uuid)Id do valor.
option_idstring (uuid)Opção dona.
valuestringTexto do valor, como
M ou Vermelho.price_modifierintegerAjuste de preço: centavos se
absolute, pontos-base (1000 = 10%) se percentage. Pode ser negativo.price_modifier_typestringabsolutepercentageTipo do ajuste de preço.
weight_modifierintegerAjuste de peso: gramas se
absolute, pontos-base se percentage.weight_modifier_typestringabsolutepercentageTipo do ajuste de peso.
sku_suffixstringSufixo somado ao SKU do produto no pedido.
positionintegerOrdem de exibição.
Erros (listar)
| 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"} |
| 404 | A opção não existe. | {"error":"option not found"} |
Criar
/api/v1/vendor/products/{id}/options/{optionId}/variantsSellerCriar um valor
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId do produto.
optionIdstring (uuid)obrigatórioId da opção.
Corpo da requisição
valuestringobrigatórioTexto do valor.
price_modifierintegerpadrão: 0Ajuste de preço. Positivo = acréscimo, negativo = desconto.
price_modifier_typestringpadrão: absoluteabsolutepercentageabsolute (centavos) ou percentage (pontos-base).weight_modifierintegerpadrão: 0Ajuste de peso.
weight_modifier_typestringpadrão: absoluteabsolutepercentageabsolute (gramas) ou percentage (pontos-base).sku_suffixstringSufixo do SKU.
positionintegerOrdem de exibição.
Exemplo de requisição (criar)
bash
curl -X POST "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/options/$OPTION_ID/variants" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"value": "G",
"price_modifier": 500,
"price_modifier_type": "absolute",
"sku_suffix": "-G",
"position": 2
}'Resposta (criar)
201Valor criado
json
{
"id": "a1b2c3d4-0002-4aaa-8bbb-111122223333",
"option_id": "a1b2c3d4-0001-4aaa-8bbb-111122223333",
"value": "G",
"price_modifier": 500,
"price_modifier_type": "absolute",
"weight_modifier": 0,
"weight_modifier_type": "absolute",
"sku_suffix": "-G",
"position": 2
}Campos da resposta
idstring (uuid)Id do valor.
option_idstring (uuid)Opção dona.
valuestringTexto do valor, como
M ou Vermelho.price_modifierintegerAjuste de preço: centavos se
absolute, pontos-base (1000 = 10%) se percentage. Pode ser negativo.price_modifier_typestringabsolutepercentageTipo do ajuste de preço.
weight_modifierintegerAjuste de peso: gramas se
absolute, pontos-base se percentage.weight_modifier_typestringabsolutepercentageTipo do ajuste de peso.
sku_suffixstringSufixo somado ao SKU do produto no pedido.
positionintegerOrdem de exibição.
Erros (criar)
| 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"]} |
| 400 | value vazio. | {"error":"variant value is required"} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
| 500 | Opção inexistente. | {"error":"failed to create variant","detail":"..."} |
Alterar
/api/v1/vendor/products/{id}/options/{optionId}/variants/{variantId}SellerAlterar um valor
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId do produto.
optionIdstring (uuid)obrigatórioId da opção.
variantIdstring (uuid)obrigatórioId do valor.
Corpo da requisição
valuestringNovo texto.
price_modifierintegerNovo ajuste de preço.
price_modifier_typestringabsolutepercentageTipo do ajuste.
weight_modifierintegerNovo ajuste de peso.
weight_modifier_typestringabsolutepercentageTipo do ajuste de peso.
sku_suffixstringNovo sufixo.
positionintegerNova ordem.
Exemplo de requisição (alterar)
bash
curl -X PUT "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/options/$OPTION_ID/variants/$VARIANT_ID" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"price_modifier": 700
}'Resposta (alterar)
200Valor alterado
json
{
"id": "a1b2c3d4-0002-4aaa-8bbb-111122223333",
"option_id": "a1b2c3d4-0001-4aaa-8bbb-111122223333",
"value": "M",
"price_modifier": 700,
"price_modifier_type": "absolute",
"weight_modifier": 0,
"weight_modifier_type": "absolute",
"sku_suffix": "-M",
"position": 0
}Campos da resposta
idstring (uuid)Id do valor.
option_idstring (uuid)Opção dona.
valuestringTexto do valor, como
M ou Vermelho.price_modifierintegerAjuste de preço: centavos se
absolute, pontos-base (1000 = 10%) se percentage. Pode ser negativo.price_modifier_typestringabsolutepercentageTipo do ajuste de preço.
weight_modifierintegerAjuste de peso: gramas se
absolute, pontos-base se percentage.weight_modifier_typestringabsolutepercentageTipo do ajuste de peso.
sku_suffixstringSufixo somado ao SKU do produto no pedido.
positionintegerOrdem de exibição.
Erros (alterar)
| 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"]} |
| 400 | Valor inexistente ou corpo sem campo para alterar. | {"error":"option value not found"} |
| 403 | O produto existe mas é de outro seller (ou da loja). | {"error":"you do not have access to this product"} |
Excluir
/api/v1/vendor/products/{id}/options/{optionId}/variants/{variantId}SellerExcluir um valor
Cabeçalhos
AuthorizationstringobrigatórioBearer $TOKEN. Token de acesso do usuário seller (veja Tokens).Parâmetros de caminho
idstring (uuid)obrigatórioId do produto.
optionIdstring (uuid)obrigatórioId da opção.
variantIdstring (uuid)obrigatórioId do valor.
Exemplo de requisição (excluir)
bash
curl -X DELETE "$BASE_URL/api/v1/vendor/products/$PRODUCT_ID/options/$OPTION_ID/variants/$VARIANT_ID" \
-H "Authorization: Bearer $TOKEN"Resposta (excluir)
200Valor excluído
json
{
"message": "variant deleted"
}Campos da resposta
messagestringConfirmação fixa.
Erros (excluir)
| 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"} |
| 404 | Valor inexistente. | {"error":"variant not found"} |