Tamanhos
Criação de Tamanho (Size) Avulso
Este endpoint é utilizado para adicionar um novo tamanho (Ex: "GG", "Extra Grande") a uma categoria de menu existente. O tamanho criado ficará disponível para todos os itens dessa categoria.
/menu/{store_id}/sizesPayload Criação de Tamanho (Size) Avulso
{
"menu_category_id": 930103,
"name": "GG",
"flavors_amount": 2,
"additional_max_limit": 2,
"order": 1,
"status": true
}
Detalhamento do Payload
O payload utiliza os campos da estrutura categories[].sizes[], mas direcionado a uma categoria específica através do menu_category_id.
| Campo | Obrigatório | Descrição |
|---|---|---|
menu_category_id | ✅ | ID da Categoria na qual o novo tamanho deve ser inserido (Ex: 930103). |
name | ✅ | Nome do novo tamanho (Ex: "GG", "Super"). |
flavors_amount | ❌ | Quantidade de sabores permitida para este novo tamanho. (Regra: Válido apenas para culinárias que suportam múltiplos sabores, como Pizza). |
additional_max_limit | ❌ | Número máximo de itens adicionais (modificadores) opcionais permitidos para este tamanho. |
order | ❌ | Ordem de exibição do tamanho na lista. |
status | ❌ | Status de ativação/exibição do tamanho (true ou false). |
Atualização de Tamanho
Este endpoint é utilizado para modificar os detalhes de um tamanho existente (Ex: capacidade de sabores, nome, ou status) dentro de uma categoria de menu.
/menu/{store_id}/sizes/{id}/menu/{store_id}/sizes/{id}Payload Atualização de Tamanho
{
"name": "GG",
"flavors_amount": 4,
"additional_max_limit": 4,
"order": 1,
"status": true
}
Detalhamento do Payload
A atualização é realizada no corpo da requisição (payload). É possível usar PUT ou PATCH para enviar apenas os campos que se deseja alterar (atualização parcial).
| Campo | Obrigatório | Descrição |
|---|---|---|
id (na URL) | ✅ | ID do tamanho que está sendo atualizado. |
name | ❌ | Novo nome do tamanho (Ex: "GG"). |
flavors_amount | ❌ | Nova quantidade de sabores permitida para este tamanho. |
additional_max_limit | ❌ | Novo número máximo de itens adicionais opcionais permitidos. |
order | ❌ | Nova ordem de exibição do tamanho. |
status | ❌ | Novo status de ativação/exibição do tamanho (true ou false). |
Consulta de Detalhes de Tamanho
Este endpoint é utilizado para consultar os detalhes completos de um tamanho específico (Ex: "G") definido dentro de uma categoria, incluindo todas as regras de modulação atreladas a ele.
/menu/{store_id}/sizes/{id}Payload Consulta de Detalhes de Tamanho
{
"data": {
"id": 4519952,
"name": "G",
"flavors_amount": 2,
"additional_max_limit": 10,
"order": 5,
"status": true,
"blocked_until_tomorrow": false,
"additional_items": [
{
"id": 5542883,
"name": "Azeitona Extra",
"sku": "ADD_AZEI",
"value": "2.00",
"status": true
},
{
"id": 5542884,
"name": "Pimenta Calabreza",
"sku": "ADD_PIMEN",
"value": "1.50",
"status": true
},
{
"id": 5542885,
"name": "Queijo Vegano",
"sku": "ADD_QUEIJO",
"value": "5.00",
"status": true
}
],
"mandatory_groups": [
{
"id": 1388248,
"name": "Molho Grátis",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"id": 9764950,
"name": "Maionese Artesanal",
"sku": "MOLHO_MAYO",
"value": "0.00",
"status": true
},
{
"id": 9764951,
"name": "Ketchup Picante",
"sku": "MOLHO_KATCH",
"value": "0.00",
"status": true
}
]
}
],
"daily_sale": null,
"menu_category_id": 930103
}
}
Resposta de Sucesso (Status Code 200)
O retorno é um objeto na chave data contendo todos os detalhes do tamanho solicitado.
| Campo Principal | Descrição |
|---|---|
id | ID único do tamanho. |
name | Nome do tamanho (Ex: "G"). |
flavors_amount | Quantidade de sabores permitida para este tamanho. |
additional_max_limit | Limite máximo de itens adicionais opcionais permitidos. |
order | Ordem de exibição do tamanho. |
status | Status de exibição/disponibilidade do tamanho (true ou false). |
blocked_until_tomorrow | Indica se o tamanho está bloqueado para alteração até o dia seguinte (true ou false). |
menu_category_id | ID da categoria à qual este tamanho pertence. |
daily_sale | Objeto contendo as regras de promoção diária exclusivas deste tamanho (pode ser null). |
additional_items | Array contendo os adicionais opcionais configurados para este tamanho. |
mandatory_groups | Array contendo os grupos obrigatórios configurados para este tamanho. |
Detalhamento dos Grupos de Modulação
1. Adicionais Opcionais (additional_items[])
Estes itens podem ser adicionados pelo cliente.
| Campo | Descrição |
|---|---|
additional_items[].id | ID único do item adicional. |
additional_items[].name | Nome do adicional (Ex: "Azeitona Extra"). |
additional_items[].sku | SKU do item adicional. |
additional_items[].value | Valor em Reais do item adicional (em string, Ex: "2.00"). |
additional_items[].status | Status de ativação do item adicional (true ou false). |
2. Grupos Obrigatórios (mandatory_groups[])
Estes grupos definem as escolhas obrigatórias apenas para este tamanho.
| Campo | Descrição |
|---|---|
mandatory_groups[].id | ID único do grupo obrigatório. |
mandatory_groups[].name | Nome do grupo (Ex: "Molho Grátis"). |
mandatory_groups[].min_limit | Mínimo de opções que o cliente deve selecionar. |
mandatory_groups[].max_limit | Máximo de opções que o cliente pode selecionar. |
mandatory_groups[].mandatory_items | Array dos itens/opções que pertencem a este grupo. |
Exclusão de Tamanho
Este endpoint é utilizado para remover permanentemente um tamanho (Size) de uma categoria de menu.
/menu/{store_id}/sizes/{id}Detalhamento do Payload
A exclusão é realizada diretamente através da URL, não sendo necessário um corpo (payload).
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
store_id (na URL) | Integer | ✅ | O ID da loja. |
id (na URL) | Integer | ✅ | O ID único do tamanho que deve ser excluído da categoria. |