Categorias
Criação de Categoria de Menu
Este endpoint é utilizado para criar uma nova categoria (seção) dentro do cardápio de uma loja do tipo Cardápio (Restaurante).
/menu/{store_id}/categoriesPayload Criação de Categoria de Menu
{
"name": "Nova categoria Pizzas Veganas",
"description": "Pizzas Veganas.",
"culinary_id": 481,
"available_hours": {
"first_interval": {
"from": "10:00",
"to": "12:00"
},
"second_interval": {
"from": "15:00",
"to": "17:00"
}
},
"status": "1",
"order": 2,
"flavor_pricing_option": "1",
"packing_fee": 1.5
}
Detalhamento do Payload
Objeto Principal
| Campo | Obrigatório | Descrição |
|---|---|---|
name | ✅ | Nome da categoria (Ex: "Pizzas Veganas", "Lanches"). |
description | ❌ | Descrição da categoria, visível para o cliente. |
culinary_id | ✅ | ID da Culinária à qual a categoria pertence. |
status | ✅ | Status da categoria. Valores: "1" (Ativa/Exibida) ou "0" (Inativa/Não Exibida). |
order | ❌ | Ordem de exibição da categoria no menu da loja. |
flavor_pricing_option | ❌ | Regra de precificação para itens com múltiplos sabores. Valores: "1" (Maior Valor) ou "0" (Menor Valor). |
packing_fee | ❌ | Taxa de embalagem a ser aplicada a todos os itens desta categoria (em Reais, Ex: 1.50). |
available_hours | ❌ | Horário de Disponibilidade da Categoria. Define o período em que a categoria fica visível e disponível para pedidos no App (Ex: Menu de Almoço). |
Sub-objeto available_hours (Horário de Disponibilidade)
Este objeto permite configurar até dois intervalos de tempo para a disponibilidade diária da categoria.
| Campo | Obrigatório | Descrição |
|---|---|---|
available_hours.first_interval | ❌ | Define o primeiro intervalo de tempo em que a categoria fica ativa. |
available_hours.first_interval.from | ❌ | Hora de início do primeiro intervalo (Formato: HH:MM, Ex: "10:00"). |
available_hours.first_interval.to | ❌ | Hora de fim do primeiro intervalo (Formato: HH:MM, Ex: "12:00"). |
available_hours.second_interval | ❌ | Define o segundo intervalo de tempo (opcional) em que a categoria fica ativa. Útil para horários divididos. |
available_hours.second_interval.from | ❌ | Hora de início do segundo intervalo (Formato: HH:MM). Regra: Obrigatório se second_interval for enviado. |
available_hours.second_interval.to | ❌ | Hora de fim do segundo intervalo (Formato: HH:MM). Regra: Obrigatório se second_interval for enviado. |
Atualização de Categoria de Menu
Este endpoint é utilizado para modificar os detalhes de uma categoria existente no cardápio, como nome, culinária, status, ou horário de disponibilidade.
/menu/{store_id}/categories/{id}Payload Atualização de Categoria de Menu
{
"name": "teste",
"description": "DESCRIÇÃO TESTE",
"culinary_id": 482,
"available_hours": {
"first_interval": {
"from": "10:00",
"to": "12:00"
},
"second_interval": {
"from": "15:00",
"to": "17:00"
}
},
"status": "1",
"order": 17,
"flavor_pricing_option": "0",
"packing_fee": 1.5
}
Detalhamento do Payload
A atualização é realizada no corpo da requisição (payload). Você pode enviar apenas os campos que deseja alterar (atualização parcial).
| Campo | Obrigatório | Descrição |
|---|---|---|
id (na URL) | ✅ | O ID único da categoria a ser atualizada. |
name | ❌ | Nome da categoria. |
description | ❌ | Descrição da categoria, visível para o cliente. |
culinary_id | ❌ | ID da Culinária associada à categoria. |
status | ❌ | Status da categoria. Valores: "1" (Ativa/Exibida) ou "0" (Inativa/Não Exibida). |
order | ❌ | Ordem de exibição da categoria no menu. |
flavor_pricing_option | ❌ | Regra de precificação para múltiplos sabores. Valores: "1" (Maior Valor) ou "0" (Menor Valor). |
packing_fee | ❌ | Taxa de embalagem a ser aplicada a todos os itens desta categoria (em Reais, Ex: 1.50). |
available_hours | ❌ | Horário de Disponibilidade da Categoria. Define os intervalos de tempo em que a categoria fica ativa. Se enviado, sobrescreve os horários anteriores. |
Consulta de Todas Categorias de Menu da Loja
Este endpoint é utilizado para listar todas as categorias atualmente cadastradas e ativas no cardápio da loja.
/menu/{store_id}/categoriesPayload Consulta de Todas Categorias de Menu da Loja
{
"data": [
{
"id": 930054,
"name": "Pizzas Especiais",
"description": "Todas as pizzas incluem borda mandatoria (escolha a sua!)",
"available_at": null,
"status": "AVAILABLE",
"blocked_until_tomorrow": false,
"culinary_id": 481,
"has_daily_sale": false
},
{
"id": 930056,
"name": "Nova categoria Pizzas Veganas",
"description": "Pizzas Veganas.",
"available_at": null,
"status": "BLOCKED",
"blocked_until_tomorrow": false,
"culinary_id": 481,
"has_daily_sale": false
}
]
}
Resposta de Sucesso (Status Code 200)
O retorno é um objeto que segue o padrão de paginação, contendo um array na chave data com as categorias.
| Campo | Descrição |
|---|---|
id | ID único da categoria de menu. |
name | Nome da categoria (Ex: "Pizzas Especiais"). |
description | Descrição da categoria. |
available_at | Horário de disponibilidade da categoria, caso configurado (Ex: "10:00 - 12:00 / 15:00 - 17:00"). Se não houver horário específico, será null. |
status | Status de exibição/disponibilidade da categoria. Valores: "AVAILABLE" (Disponível/Ativa) ou "BLOCKED" (Bloqueada/Inativa). |
blocked_until_tomorrow | Indica se a categoria está bloqueada para alteração até o dia seguinte (true ou false). |
culinary_id | ID da culinária associada à categoria. |
has_daily_sale | Indica se a categoria possui alguma promoção diária (daily_sale) configurada (true ou false). |
Consulta de Categoria Específica
Este endpoint é utilizado para consultar os detalhes completos de uma única categoria do cardápio, incluindo todas as suas regras de modulação (grupos obrigatórios, tamanhos, adicionais) e promoções.
/menu/{store_id}/categories/{id}Payload Consulta de Categoria Específica
{
"data": {
"id": 930054,
"name": "Pizzas Especiais",
"culinary": {
"id": 481,
"name": "Pizza"
},
"description": "Todas as pizzas incluem borda mandatoria (escolha a sua!)",
"order": 1,
"status": "AVAILABLE",
"blocked_until_tomorrow": false,
"flavor_pricing_option": "HIGHER VALUE",
"packing_fee": "0.99",
"available_hours": {
"first_interval": {
"from": "08:00",
"to": "18:00"
},
"second_interval": null
},
"mandatory_groups": [
{
"id": 1388151,
"name": "Bordas",
"order": 1,
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"id": 9764756,
"name": "Sem Borda",
"value": "0.00",
"status": "AVAILABLE",
"description": null,
"sku": "BORDA_SEM"
},
{
"id": 9764757,
"name": "Borda de Catupiry",
"value": "8.50",
"status": "AVAILABLE",
"description": null,
"sku": "BORDA_CATU"
}
]
}
],
"sizes": [
{
"id": 4519815,
"name": "P",
"order": 1,
"status": "AVAILABLE",
"flavors_amount": 1,
"additional_max_limit": 5,
"additional_items": []
},
{
"id": 4519816,
"name": "M",
"order": 2,
"status": "AVAILABLE",
"flavors_amount": 2,
"additional_max_limit": 8,
"additional_items": []
},
{
"id": 4519817,
"name": "G",
"order": 3,
"status": "AVAILABLE",
"flavors_amount": 3,
"additional_max_limit": 10,
"additional_items": [
{
"id": 5542824,
"name": "Mel Picante",
"value": "5.00",
"status": "AVAILABLE",
"sku": "ADD_MEL"
},
{
"id": 5542825,
"name": "Geleia de Pimenta",
"value": "4.00",
"status": "AVAILABLE",
"sku": "ADD_GELEIA"
}
]
}
],
"daily_sale": null
}
}
Resposta de Sucesso (Status Code 200)
O retorno é um objeto que segue o padrão de paginação, contendo um array na chave data com as categorias.
| Campo Principal | Descrição |
|---|---|
id | ID único da categoria de menu. |
name | Nome da categoria (Ex: "Pizzas Especiais"). |
description | Descrição da categoria. |
order | Ordem de exibição da categoria no menu. |
status | Status de exibição/disponibilidade da categoria. Valores: "AVAILABLE" (Disponível/Ativa) ou "BLOCKED" (Bloqueada/Inativa). |
blocked_until_tomorrow | Indica se a categoria está bloqueada para alteração até o dia seguinte (true ou false). |
packing_fee | Taxa de embalagem configurada para esta categoria (em string de Real, Ex: "0.99"). |
flavor_pricing_option | Regra de precificação para m últiplos sabores. Valores: "MEAN VALUE" (Valor Médio/Menor Valor) ou "HIGHER VALUE" (Maior Valor). |
culinary | Objeto contendo o ID e o nome da Culinária associada. |
available_hours | Objeto contendo os horários de funcionamento específicos da categoria (intervalos de from e to). |
daily_sale | Objeto contendo as regras de promoção diária, se configuradas. |
mandatory_groups | Array contendo os grupos de modificadores que são obrigatórios para todos os itens/tamanhos desta categoria. |
sizes | Array contendo todos os tamanhos (Ex: P, M, G) que foram configurados para esta categoria. |
Detalhamento Adicional: Grupos Obrigatórios (mandatory_groups[])
| Campo | Descrição |
|---|---|
mandatory_groups[].id | ID único do grupo obrigatório. |
mandatory_groups[].name | Nome do grupo (Ex: "Bordas", "Massa"). |
mandatory_groups[].order | Ordem de exibição do grupo na lista. |
mandatory_groups[].min_limit | Mínimo de opções que o cliente deve selecionar neste grupo. |
mandatory_groups[].max_limit | Máximo de opções que o cliente pode selecionar neste grupo. |
mandatory_groups[].mandatory_items | Array de itens/opções que pertencem a este grupo mandatório. |
Sub-detalhamento: Itens Mandatórios (mandatory_items[])
| Campo | Descrição |
|---|---|
mandatory_items[].id | ID único do item obrigatório. |
mandatory_items[].sku | SKU ou código interno do item. |
mandatory_items[].name | Nome da opção (Ex: "Sem Borda", "Borda de Catupiry"). |
mandatory_items[].description | Descrição do item mandatório (pode ser null). |
mandatory_items[].value | Valor adicional (em string de Real, Ex: "8.50") cobrado por esta opção. |
mandatory_items[].status | Status de ativação/disponibilidade do item mandatório ("AVAILABLE"). |
Detalhamento dos Tamanhos (sizes[])
| Campo | Descrição |
|---|---|
sizes[].id | ID único do tamanho. |
sizes[].name | Nome do tamanho (Ex: "P", "M", "G"). |
sizes[].flavors_amount | Quantidade de sabores permitida para este tamanho. |
sizes[].additional_max_limit | Número máximo de itens adicionais opcionais permitidos. |
sizes[].additional_items | Array de adicionais opcionais configurados especificamente para este tamanho. Inclui id, name, value, status e sku do adicional. |
Deleção de Categoria de Menu
Este endpoint é utilizado para remover permanentemente uma categoria do cardápio da loja.
/menu/{store_id}/categories/{id}Detalhamento do Payload
A deleção é realizada utilizando apenas os parâmetros de path da URL:
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
store_id | ✅ | O ID único da loja onde a categoria será deletada. |
id | ✅ | O ID único da categoria que deve ser removida. |