Cadastro de opções
Lista, consulta, cria, altera e exclui as opções de compra de um produto (tamanho, gravação, cor da fita) pela API legada.
Uma opção é uma escolha que o cliente faz no carrinho sobre um produto, e cada opção tem valores (P, M, G). As rotas desta página são as de manutenção do cadastro, no contrato da Venddor 1.0: elas servem a quem sincroniza opções de um sistema externo. Todas exigem um administrador. Opções não têm estoque próprio; para estoque por combinação, veja Combinações.
Listar as opções de um produto
Devolve todas as opções de compra de um produto, cada uma com seus valores. É a leitura em lote de quem mantém o cadastro; para apenas consultar as opções no estilo da vitrine, veja Opções do produto.
/api/v1.0/optionsAdminListar opções de um produto
A resposta é uma lista JSON pura (sem envelope). Um produto sem opções, ou que não existe, devolve [] com 200. Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Parâmetros de consulta
product_idstringobrigatórioExemplo de requisição
curl -u "$EMAIL:$API_KEY" \
"$BASE_URL/api/v1.0/options?product_id=48e87591-5fb1-40da-b32e-edec3a8c596d"Resposta
[
{
"option_id": "5f3c1d52-8a41-4a39-9d44-1c0a6c1b7e10",
"product_id": "48e87591-5fb1-40da-b32e-edec3a8c596d",
"option_name": "Tamanho",
"option_type": "S",
"required": "Y",
"position": 1,
"variants": {
"a1b2c3d4-0001-4aaa-9bbb-000000000001": {
"variant_id": "a1b2c3d4-0001-4aaa-9bbb-000000000001",
"variant_name": "M",
"modifier_type": "A",
"modifier": "0.00",
"weight_modifier_type": "A",
"weight_modifier": 0,
"sku_suffix": "-M",
"position": 1
},
"a1b2c3d4-0002-4aaa-9bbb-000000000002": {
"variant_id": "a1b2c3d4-0002-4aaa-9bbb-000000000002",
"variant_name": "G",
"modifier_type": "A",
"modifier": "5.00",
"weight_modifier_type": "A",
"weight_modifier": 0,
"sku_suffix": "-G",
"position": 2
}
}
}
]Campos da resposta
option_idstringproduct_idstringoption_namestringoption_typestringSRCITFS lista, R botões de rádio, C caixa de seleção, I texto de uma linha, T texto de várias linhas, F arquivo.requiredstringYNY se o cliente é obrigado a escolher, N caso contrário.positionintegervariantsobjectvariants.{id}.variant_idstringvariants.{id}.variant_namestringM.variants.{id}.modifier_typestringAPA soma um valor absoluto ao preço, P soma uma porcentagem.variants.{id}.modifierstring"5.00"). Com modifier_type igual a P, é o percentual.variants.{id}.weight_modifier_typestringAPA ou P, como em modifier_type, mas para o peso.variants.{id}.weight_modifiernumbervariants.{id}.sku_suffixstringvariants.{id}.positionintegerErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | product_id ausente | {"error":"product_id is required"} |
| 401 | Sem credenciais ou chave inválida | {"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>.","status":401} |
| 403 | O usuário não é administrador | {"message":"Forbidden: admin scope required","status":403} |
| 500 | Falha ao consultar ou gravar (por exemplo, id que não é um UUID) | {"error":"query options: ..."} |
Consultar uma opção
Devolve uma opção pelo id, com os valores. Use depois de listar, ou quando você já guardou o id devolvido na criação.
/api/v1.0/options/{id}AdminConsultar uma opção
Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Parâmetros de caminho
idstringobrigatórioExemplo de requisição
curl -u "$EMAIL:$API_KEY" \
"$BASE_URL/api/v1.0/options/5f3c1d52-8a41-4a39-9d44-1c0a6c1b7e10"Resposta
{
"option_id": "5f3c1d52-8a41-4a39-9d44-1c0a6c1b7e10",
"product_id": "48e87591-5fb1-40da-b32e-edec3a8c596d",
"option_name": "Tamanho",
"option_type": "S",
"required": "Y",
"position": 1,
"variants": {
"a1b2c3d4-0001-4aaa-9bbb-000000000001": {
"variant_id": "a1b2c3d4-0001-4aaa-9bbb-000000000001",
"variant_name": "M",
"modifier_type": "A",
"modifier": "0.00",
"weight_modifier_type": "A",
"weight_modifier": 0,
"sku_suffix": "-M",
"position": 1
},
"a1b2c3d4-0002-4aaa-9bbb-000000000002": {
"variant_id": "a1b2c3d4-0002-4aaa-9bbb-000000000002",
"variant_name": "G",
"modifier_type": "A",
"modifier": "5.00",
"weight_modifier_type": "A",
"weight_modifier": 0,
"sku_suffix": "-G",
"position": 2
}
}
}O objeto tem os mesmos campos de cada item da listagem.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem credenciais ou chave inválida | {"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>.","status":401} |
| 403 | O usuário não é administrador | {"message":"Forbidden: admin scope required","status":403} |
| 404 | A opção não existe | {"error":"Option not found"} |
| 500 | Falha ao consultar ou gravar (por exemplo, id que não é um UUID) | {"error":"query option ...: ..."} |
Criar uma opção
Cria uma opção para um produto e, se você enviar variants, já cria os valores. Use para montar o cadastro de personalização (gravação, tamanho, cor da fita) a partir de um sistema externo.
/api/v1.0/optionsAdminCriar uma opção
Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Corpo da requisição
product_idstringobrigatóriooption_namestringoption_typestringpadrão: SSRCITFS lista, R rádio, C caixa de seleção, I texto de uma linha, T texto de várias linhas, F arquivo. Uma letra desconhecida vira S.requiredstringYNY torna a escolha obrigatória. Qualquer outro valor (ou omitir) deixa opcional.positionintegervariantsobjectvariant_name, modifier_type (A ou P), modifier (string ou número) e position. Os campos weight_modifier* e sku_suffix não são lidos na criação.Exemplo de requisição
curl -X POST -u "$EMAIL:$API_KEY" \
-H "Content-Type: application/json" \
-d '{"product_id": "48e87591-5fb1-40da-b32e-edec3a8c596d", "option_name": "Tamanho", "option_type": "S", "required": "Y", "position": 1, "variants": [{"variant_name": "M", "modifier_type": "A", "modifier": "0.00", "position": 1}, {"variant_name": "G", "modifier_type": "A", "modifier": "5.00", "position": 2}]}' \
"$BASE_URL/api/v1.0/options"Resposta
{
"option_id": "5f3c1d52-8a41-4a39-9d44-1c0a6c1b7e10"
}Campos da resposta
option_idstringErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON válido, ou sem product_id | {"error":"Invalid JSON"} / {"error":"product_id is required"} |
| 401 | Sem credenciais ou chave inválida | {"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>.","status":401} |
| 403 | O usuário não é administrador | {"message":"Forbidden: admin scope required","status":403} |
| 500 | Falha ao consultar ou gravar (por exemplo, id que não é um UUID) | {"error":"insert option: ..."} |
Alterar uma opção
Altera nome, tipo, obrigatoriedade ou posição de uma opção. Só o que você enviar muda. Os valores da opção não são alterados por esta rota.
/api/v1.0/options/{id}AdminAlterar uma opção
Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Parâmetros de caminho
idstringobrigatórioCorpo da requisição
option_namestringoption_typestringpadrão: SSRCITFS lista, R rádio, C caixa de seleção, I texto de uma linha, T texto de várias linhas, F arquivo. Uma letra desconhecida vira S.requiredstringYNY torna a escolha obrigatória. Qualquer outro valor (ou omitir) deixa opcional.positionintegerExemplo de requisição
curl -X PUT -u "$EMAIL:$API_KEY" \
-H "Content-Type: application/json" \
-d '{"option_name": "Tamanho da camisa", "required": "N"}' \
"$BASE_URL/api/v1.0/options/5f3c1d52-8a41-4a39-9d44-1c0a6c1b7e10"Resposta
{
"option_id": "5f3c1d52-8a41-4a39-9d44-1c0a6c1b7e10"
}Campos da resposta
option_idstringErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON válido | {"error":"Invalid JSON"} |
| 401 | Sem credenciais ou chave inválida | {"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>.","status":401} |
| 403 | O usuário não é administrador | {"message":"Forbidden: admin scope required","status":403} |
| 500 | Falha ao consultar ou gravar (por exemplo, id que não é um UUID) | {"error":"..."} |
Excluir uma opção
Remove a opção do produto. Quem já comprou com ela não é afetado, mas a opção deixa de aparecer em novas compras.
/api/v1.0/options/{id}AdminExcluir uma opção
Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Parâmetros de caminho
idstringobrigatórioExemplo de requisição
curl -X DELETE -u "$EMAIL:$API_KEY" \
"$BASE_URL/api/v1.0/options/5f3c1d52-8a41-4a39-9d44-1c0a6c1b7e10"Resposta
HTTP/1.1 204 No ContentErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem credenciais ou chave inválida | {"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>.","status":401} |
| 403 | O usuário não é administrador | {"message":"Forbidden: admin scope required","status":403} |
| 500 | Falha ao consultar ou gravar (por exemplo, id que não é um UUID) | {"error":"option not found"} |