Pular para o conteúdo principal

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).

POST
/menu/{store_id}/categories

Payload 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


CampoObrigatórioDescrição
nameNome da categoria (Ex: "Pizzas Veganas", "Lanches").
descriptionDescrição da categoria, visível para o cliente.
culinary_idID da Culinária à qual a categoria pertence.
statusStatus da categoria. Valores: "1" (Ativa/Exibida) ou "0" (Inativa/Não Exibida).
orderOrdem de exibição da categoria no menu da loja.
flavor_pricing_optionRegra de precificação para itens com múltiplos sabores. Valores: "1" (Maior Valor) ou "0" (Menor Valor).
packing_feeTaxa de embalagem a ser aplicada a todos os itens desta categoria (em Reais, Ex: 1.50).
available_hoursHorá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.


CampoObrigatórioDescrição
available_hours.first_intervalDefine o primeiro intervalo de tempo em que a categoria fica ativa.
available_hours.first_interval.fromHora de início do primeiro intervalo (Formato: HH:MM, Ex: "10:00").
available_hours.first_interval.toHora de fim do primeiro intervalo (Formato: HH:MM, Ex: "12:00").
available_hours.second_intervalDefine o segundo intervalo de tempo (opcional) em que a categoria fica ativa. Útil para horários divididos.
available_hours.second_interval.fromHora de início do segundo intervalo (Formato: HH:MM). Regra: Obrigatório se second_interval for enviado.
available_hours.second_interval.toHora 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.

PUT
/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).


CampoObrigatórioDescrição
id
(na URL)
O ID único da categoria a ser atualizada.
nameNome da categoria.
descriptionDescrição da categoria, visível para o cliente.
culinary_idID da Culinária associada à categoria.
statusStatus da categoria. Valores: "1" (Ativa/Exibida) ou "0" (Inativa/Não Exibida).
orderOrdem de exibição da categoria no menu.
flavor_pricing_optionRegra de precificação para múltiplos sabores. Valores: "1" (Maior Valor) ou "0" (Menor Valor).
packing_feeTaxa de embalagem a ser aplicada a todos os itens desta categoria (em Reais, Ex: 1.50).
available_hoursHorá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.

GET
/menu/{store_id}/categories

Payload 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.


CampoDescrição
idID único da categoria de menu.
nameNome da categoria (Ex: "Pizzas Especiais").
descriptionDescrição da categoria.
available_atHorá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.
statusStatus de exibição/disponibilidade da categoria. Valores: "AVAILABLE" (Disponível/Ativa) ou "BLOCKED" (Bloqueada/Inativa).
blocked_until_tomorrowIndica se a categoria está bloqueada para alteração até o dia seguinte (true ou false).
culinary_idID da culinária associada à categoria.
has_daily_saleIndica 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.

GET
/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 PrincipalDescrição
idID único da categoria de menu.
nameNome da categoria (Ex: "Pizzas Especiais").
descriptionDescrição da categoria.
orderOrdem de exibição da categoria no menu.
statusStatus de exibição/disponibilidade da categoria. Valores: "AVAILABLE" (Disponível/Ativa) ou "BLOCKED" (Bloqueada/Inativa).
blocked_until_tomorrowIndica se a categoria está bloqueada para alteração até o dia seguinte (true ou false).
packing_feeTaxa de embalagem configurada para esta categoria (em string de Real, Ex: "0.99").
flavor_pricing_optionRegra de precificação para múltiplos sabores. Valores: "MEAN VALUE" (Valor Médio/Menor Valor) ou "HIGHER VALUE" (Maior Valor).
culinaryObjeto contendo o ID e o nome da Culinária associada.
available_hoursObjeto contendo os horários de funcionamento específicos da categoria (intervalos de from e to).
daily_saleObjeto contendo as regras de promoção diária, se configuradas.
mandatory_groupsArray contendo os grupos de modificadores que são obrigatórios para todos os itens/tamanhos desta categoria.
sizesArray contendo todos os tamanhos (Ex: P, M, G) que foram configurados para esta categoria.

Detalhamento Adicional: Grupos Obrigatórios (mandatory_groups[])


CampoDescrição
mandatory_groups[].idID único do grupo obrigatório.
mandatory_groups[].nameNome do grupo (Ex: "Bordas", "Massa").
mandatory_groups[].orderOrdem de exibição do grupo na lista.
mandatory_groups[].min_limitMínimo de opções que o cliente deve selecionar neste grupo.
mandatory_groups[].max_limitMáximo de opções que o cliente pode selecionar neste grupo.
mandatory_groups[].mandatory_itemsArray de itens/opções que pertencem a este grupo mandatório.

Sub-detalhamento: Itens Mandatórios (mandatory_items[])


CampoDescrição
mandatory_items[].idID único do item obrigatório.
mandatory_items[].skuSKU ou código interno do item.
mandatory_items[].nameNome da opção (Ex: "Sem Borda", "Borda de Catupiry").
mandatory_items[].descriptionDescrição do item mandatório (pode ser null).
mandatory_items[].valueValor adicional (em string de Real, Ex: "8.50") cobrado por esta opção.
mandatory_items[].statusStatus de ativação/disponibilidade do item mandatório ("AVAILABLE").

Detalhamento dos Tamanhos (sizes[])


CampoDescrição
sizes[].idID único do tamanho.
sizes[].nameNome do tamanho (Ex: "P", "M", "G").
sizes[].flavors_amountQuantidade de sabores permitida para este tamanho.
sizes[].additional_max_limitNúmero máximo de itens adicionais opcionais permitidos.
sizes[].additional_itemsArray 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.

DELETE
/menu/{store_id}/categories/{id}

Detalhamento do Payload

A deleção é realizada utilizando apenas os parâmetros de path da URL:


ParâmetroObrigatórioDescrição
store_idO ID único da loja onde a categoria será deletada.
idO ID único da categoria que deve ser removida.

aiqfome

© Copyright 2007-2026 aiqfome LTDA .