VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Variações e opções

Exceções de opções

Proíbe (ou permite somente) certas combinações das opções de um produto, como "gravação indisponível no tamanho GG".

Quando um produto tem várias opções, nem toda combinação faz sentido: a gravação a laser pode não caber no tamanho GG, ou a cor "dourado" só existir no tamanho P. As exceções são as regras que dizem isso.

Cada regra é uma combinação: pares "opção = valor". O produto tem um modo que define como ler todas as regras:

Modo (exceptions_type)SignificadoEfeito na vitrine
F (proibidas), o padrãoCada regra cadastrada é uma combinação proibida.Os valores que completariam uma combinação proibida ficam indisponíveis.
A (permitidas)Cada regra é uma combinação permitida; o que não está em nenhuma regra não pode ser comprado.Só ficam disponíveis os valores que aparecem em alguma regra compatível com o que o cliente já escolheu.

Cada par pode usar o id do valor, ou a palavra any para valer "qualquer valor" daquela opção.

Quem usa as regras

A vitrine consulta as regras com a rota da vitrine POST /api/v1/storefront/products/{id}/apply-exceptions, que recebe as escolhas atuais do cliente e devolve quais valores estão disponíveis. Excluir uma regra (DELETE /api/v1/admin/option-exceptions/{id}) faz parte da referência completa do administrador.

Listar regras

GET/api/v1/admin/products/{id}/option-exceptionsAdmin

Lista as regras de exceção de um produto

Devolve as regras na ordem de criação. Produto sem regras devolve lista vazia.

Path parameters

iduuidobrigatório
Id do produto.

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/admin/products/$PRODUCT_ID/option-exceptions" \
  -H "Authorization: Bearer $TOKEN"

Resposta

200Regras do produto
json
{
  "total": 1,
  "exceptions": [
    {
      "id": "84931b5d-277c-448a-ad56-93d76a408b3a",
      "product_id": "07635228-fcac-442e-9a0c-caa7c1c89a97",
      "combination": {
        "d89e2489-1661-423e-9cda-dc2c2903fcf4": "8770ee09-1b35-418e-bac1-60b4435ca24c",
        "83019681-c7aa-41c6-827a-0e4385adab9f": "any"
      }
    }
  ]
}

Response fields

totalinteger
Quantidade de regras.
exceptions[].iduuid
Id da regra.
exceptions[].product_iduuid
Produto da regra.
exceptions[].combinationobject
Pares id da opção para id do valor (ou any).

Erros

StatusQuandoExemplo de corpo
500id que não é UUID{"error":"failed to get option exceptions","detail":"..."}
401 / 403Sem login / sem privilégio de ver o catálogoveja Opções

Criar regra

POST/api/v1/admin/products/{id}/option-exceptionsAdmin

Cria uma regra de exceção

Cadastra uma combinação. No modo F, é uma combinação proibida; no modo A, uma permitida. Os ids de opção e de valor não são conferidos contra o produto: envie ids que existam nele.

Path parameters

iduuidobrigatório
Id do produto.

Corpo da requisição

combinationobjectobrigatório
Pares id da opção para id do valor, ou any para qualquer valor. Pelo menos um par. No exemplo, "tamanho GG com qualquer gravação".

Exemplo de requisição

bash
curl -X POST "$BASE_URL/api/v1/admin/products/$PRODUCT_ID/option-exceptions" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"combination":{"d89e2489-1661-423e-9cda-dc2c2903fcf4":"8770ee09-1b35-418e-bac1-60b4435ca24c","83019681-c7aa-41c6-827a-0e4385adab9f":"any"}}'

Resposta

201Regra criada
json
{
  "id": "84931b5d-277c-448a-ad56-93d76a408b3a",
  "product_id": "07635228-fcac-442e-9a0c-caa7c1c89a97",
  "combination": {
    "83019681-c7aa-41c6-827a-0e4385adab9f": "any",
    "d89e2489-1661-423e-9cda-dc2c2903fcf4": "8770ee09-1b35-418e-bac1-60b4435ca24c"
  }
}

Erros

StatusQuandoExemplo de corpo
400Corpo não é JSON{"error":"invalid request body","detail":"..."}
400combination vazio ou ausente{"error":"combination is required"}
500id de produto inválido ou inexistente{"error":"failed to create option exception","detail":"..."}
401 / 403Sem login / sem privilégio de gerenciar o catálogoveja Opções

Escolher o modo

PUT/api/v1/admin/products/{id}/exceptions-typeAdmin

Define o modo das exceções (proibido ou permitido)

Define se as regras do produto são lidas como proibidas (F) ou permitidas (A). Trocar o modo muda o sentido de todas as regras já cadastradas, então revise-as depois.

Path parameters

iduuidobrigatório
Id do produto.

Corpo da requisição

exceptions_typestringobrigatório
FA
F (proibidas) ou A (permitidas).

Exemplo de requisição

bash
curl -X PUT "$BASE_URL/api/v1/admin/products/$PRODUCT_ID/exceptions-type" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"exceptions_type":"A"}'

Resposta

200Modo atualizado
json
{ "exceptions_type": "F", "message": "exceptions type updated" }

Erros

StatusQuandoExemplo de corpo
400Valor diferente de F ou A{"error":"exceptions_type must be F (forbidden) or A (allowed)"}
404Produto não existe{"error":"product not found"}
401 / 403Sem login / sem privilégioveja Opções
Qual modo escolher

Se só uma ou duas combinações são problemáticas, fique no modo F e liste-as. Se só umas poucas combinações são vendáveis (e o resto é a exceção), o modo A dá menos regras para manter. No modo A sem nenhuma regra cadastrada, nada é bloqueado.

Veja também

  • Opções do produto
  • Valores de opção
  • Visão geral
Anterior
Variações unificadas
Próxima
Variações, tags e filtros
Nesta página
  • Listar regras
  • Exemplo de requisição
  • Resposta
  • Erros
  • Criar regra
  • Exemplo de requisição
  • Resposta
  • Erros
  • Escolher o modo
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também