Combinações de opções
Lê, cria, altera e zera o estoque por combinação de opções de um produto pela API legada.
Quando duas opções se combinam (Tamanho M com Cor Azul), cada combinação pode ter estoque e código próprios. Estas rotas, no contrato da Venddor 1.0, mantêm esse estoque. A combinação é identificada por um hash calculado a partir do mapa id da opção -> id do valor; a plataforma o devolve ao criar. Todas as rotas exigem um administrador e também respondem sem o prefixo de versão (/api/combinations).
Listar as combinações de um produto
Devolve o estoque de cada combinação de opções que o produto tem cadastrada.
/api/v1.0/combinationsAdminListar combinações de um produto
A resposta é uma lista JSON pura, na ordem de criação. Um produto sem combinações devolve []. 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/combinations?product_id=48e87591-5fb1-40da-b32e-edec3a8c596d"Resposta
[
{
"combination_hash": "d41d8cd98f00b204e9800998ecf8427e",
"product_id": "48e87591-5fb1-40da-b32e-edec3a8c596d",
"product_code": "CAM-M-AZ",
"amount": 12
}
]Campos da resposta
combination_hashstringproduct_idstringproduct_codestringamountintegerErros
| 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 option inventory list: ..."} |
Consultar uma combinação
Devolve a quantidade em estoque de uma combinação. Serve para conferir o saldo antes ou depois de uma carga.
/api/v1.0/combinations/{hash}AdminConsultar uma combinação
Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Parâmetros de caminho
hashstringobrigatórioParâmetros de consulta
product_idstringobrigatórioExemplo de requisição
curl -u "$EMAIL:$API_KEY" \
"$BASE_URL/api/v1.0/combinations/d41d8cd98f00b204e9800998ecf8427e?product_id=48e87591-5fb1-40da-b32e-edec3a8c596d"Resposta
{
"combination_hash": "d41d8cd98f00b204e9800998ecf8427e",
"product_id": "48e87591-5fb1-40da-b32e-edec3a8c596d",
"amount": 12
}Campos da resposta
combination_hashstringproduct_idstringamountinteger0, não 404; esta resposta não traz product_code.Erros
| 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":"..."} |
Criar uma combinação
Registra uma combinação de opções com seu estoque e código. A combinação é identificada pelo mapa de opções e valores, e a resposta devolve o hash.
/api/v1.0/combinationsAdminCriar uma combinação
Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Corpo da requisição
product_idstringobrigatóriocombinationobjectobrigatórioid da opção -> id do valor que define a combinação, por exemplo Tamanho = M e Cor = Azul. Obrigatório e não vazio.product_codestringamountintegerExemplo de requisição
curl -X POST -u "$EMAIL:$API_KEY" \
-H "Content-Type: application/json" \
-d '{"product_id": "48e87591-5fb1-40da-b32e-edec3a8c596d", "combination": {"5f3c1d52-8a41-4a39-9d44-1c0a6c1b7e10": "a1b2c3d4-0001-4aaa-9bbb-000000000001", "9e8d7c6b-0002-4aaa-9bbb-0000000000aa": "9e8d7c6b-0003-4aaa-9bbb-0000000000bb"}, "product_code": "CAM-M-AZ", "amount": 12}' \
"$BASE_URL/api/v1.0/combinations"Resposta
{
"combination_hash": "d41d8cd98f00b204e9800998ecf8427e"
}Campos da resposta
combination_hashstringErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | JSON inválido, product_id ausente ou combination ausente ou vazio | {"error":"Invalid JSON"} / {"error":"product_id is required"} / {"error":"combination 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":"upsert option inventory: ..."} |
Alterar uma combinação
Define o estoque e o código de uma combinação já conhecida pelo hash. Os dois valores são substituídos, não somados.
/api/v1.0/combinations/{hash}AdminAlterar uma combinação
Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Parâmetros de caminho
hashstringobrigatórioCorpo da requisição
product_idstringobrigatórioproduct_codestringamountintegerExemplo de requisição
curl -X PUT -u "$EMAIL:$API_KEY" \
-H "Content-Type: application/json" \
-d '{"product_id": "48e87591-5fb1-40da-b32e-edec3a8c596d", "product_code": "CAM-M-AZ", "amount": 30}' \
"$BASE_URL/api/v1.0/combinations/d41d8cd98f00b204e9800998ecf8427e"Resposta
{
"combination_hash": "d41d8cd98f00b204e9800998ecf8427e"
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | JSON inválido ou product_id ausente | {"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":"upsert option inventory: ..."} |
Zerar uma combinação
Zera o estoque da combinação e limpa o código. O registro continua existindo, com quantidade 0.
/api/v1.0/combinations/{hash}AdminZerar uma combinação
Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Parâmetros de caminho
hashstringobrigatórioParâmetros de consulta
product_idstringobrigatórioExemplo de requisição
curl -X DELETE -u "$EMAIL:$API_KEY" \
"$BASE_URL/api/v1.0/combinations/d41d8cd98f00b204e9800998ecf8427e?product_id=48e87591-5fb1-40da-b32e-edec3a8c596d"Resposta
HTTP/1.1 204 No ContentErros
| 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":"..."} |