Pular para o conteúdo principal

Importação Completa de Menu

Este endpoint é utilizado para importar ou atualizar um menu completo, incluindo categorias, tamanhos (sizes), regras de modulação (grupos obrigatórios) e promoções para uma ou mais lojas do tipo Cardápio.

POST
/menu/import

Regra Crítica de Negócio (Sobrescrita):
Este é um endpoint de Importação Massiva. Ao utilizá-lo, você está enviando a estrutura completa do menu que deseja que exista para as lojas listadas.

Exemplo para Múltiplos Sabores (ex: Pizza)​

Exemplo Payload Menu Múltiplos Sabores - Configuração Mandatário por: Categoria
{
"menus": [
{
"store_ids": [
53852
],
"description": "Menu teste completo",
"categories": [
{
"culinary_id": 481,
"name": "Pizzas Especiais",
"description": "Todas as pizzas incluem borda mandatoria (escolha a sua!)",
"packing_fee": 0.99,
"flavor_pricing_option": 1,
"status": true,
"available_hours": {
"first_interval": {
"from": "08:00",
"to": "18:00"
}
},
"sizes": [
{
"name": "P",
"flavors_amount": 1,
"additional_max_limit": 5,
"status": true
},
{
"name": "M",
"flavors_amount": 2,
"additional_max_limit": 8,
"status": true
},
{
"name": "G",
"flavors_amount": 3,
"additional_max_limit": 10,
"status": true,
"additional_items": [
{
"sku": "ADD_BACON",
"name": "Bacon Crocante Extra",
"value": 3.99,
"status": true
},
{
"sku": "ADD_CHEDDAR",
"name": "Cheddar Cremoso Extra",
"value": 4.5,
"status": true
}
]
}
],
"mandatory_groups": [
{
"name": "Bordas",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "BORDA_SEM",
"name": "Sem Borda",
"value": 0,
"status": true
},
{
"sku": "BORDA_CATU",
"name": "Borda de Catupiry",
"value": 8.5,
"status": true
}
]
}
],
"daily_sale": {
"start": "2025-12-01",
"end": "2025-12-31",
"daily_weekday_sale": [
{
"weekday_code": 0,
"discount_type": 0,
"discount": 5
},
{
"weekday_code": 4,
"discount_type": 1,
"discount": 10
}
]
},
"items": [
{
"sku": "PZ0001",
"name": "Pizza Calabresa Especial",
"description": "Mussarela, calabresa e azeitonas.",
"highlight": true,
"status": true,
"tags": [
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "PZ0001P",
"value": 35,
"status": true
},
{
"size_name": "M",
"sku": "PZ0001M",
"value": 45,
"status": true
},
{
"size_name": "G",
"sku": "PZ0001G",
"value": 55,
"status": true
}
],
"mandatory_groups": [],
"item_week_days": []
},
{
"sku": "PZ0002",
"name": "Pizza Quatro Queijos PREMIUM",
"description": "Mussarela, provolone, parmesão e gorgonzola.",
"highlight": false,
"status": true,
"tags": [
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "PZ0002P",
"value": 40,
"status": true
},
{
"size_name": "M",
"sku": "PZ0002M",
"value": 50,
"status": true
},
{
"size_name": "G",
"sku": "PZ0002G",
"value": 60,
"status": true
}
],
"mandatory_groups": [],
"item_week_days": []
}
]
}
]
}
]
}
Exemplo Payload Menu Múltiplos Sabores - Configuração Mandatário por: Categoria + Tamanho Específico
{
"menus": [
{
"store_ids": [
53852
],
"description": "Menu demonstrativo de modulação por Tamanho",
"categories": [
{
"culinary_id": 481,
"name": "Pizzas Gourmet",
"description": "Pizzas com regras de borda obrigatória e brinde no tamanho G.",
"packing_fee": 0.99,
"flavor_pricing_option": 1,
"status": true,
"available_hours": {
"first_interval": {
"from": "08:00",
"to": "18:00"
}
},
"sizes": [
{
"name": "P",
"flavors_amount": 1,
"additional_max_limit": 5,
"status": true
},
{
"name": "M",
"flavors_amount": 2,
"additional_max_limit": 8,
"status": true
},
{
"name": "G",
"flavors_amount": 3,
"additional_max_limit": 10,
"status": true,
"mandatory_groups": [
{
"name": "Escolha da Bebida",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "BEBIDA_AGUA",
"name": "Água Mineral",
"value": 0,
"status": true
},
{
"sku": "BEBIDA_REFR",
"name": "Refrigerante 200ml",
"value": 0,
"status": true
}
]
}
]
}
],
"mandatory_groups": [
{
"name": "Escolha a Borda",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "BORDA_SEM",
"name": "Sem Borda",
"value": 0,
"status": true
},
{
"sku": "BORDA_CHED",
"name": "Borda de Cheddar",
"value": 7,
"status": true
}
]
}
],
"items": [
{
"sku": "PZ0010",
"name": "Pizza Margherita",
"description": "Mussarela, manjericão e tomate.",
"highlight": true,
"status": true,
"tags": [
"VEGETARIAN",
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "PZ0010P",
"value": 30,
"status": true
},
{
"size_name": "M",
"sku": "PZ0010M",
"value": 40,
"status": true
},
{
"size_name": "G",
"sku": "PZ0010G",
"value": 50,
"status": true
}
],
"mandatory_groups": [],
"item_week_days": []
},
{
"sku": "PZ0011",
"name": "Pizza Vegana de Brócolis",
"description": "Queijo vegano, brócolis, alho e azeite.",
"highlight": false,
"status": true,
"tags": [
"VEGETARIAN",
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "PZ0011P",
"value": 45,
"status": true
},
{
"size_name": "M",
"sku": "PZ0011M",
"value": 55,
"status": true
},
{
"size_name": "G",
"sku": "PZ0011G",
"value": 65,
"status": true
}
],
"mandatory_groups": [],
"item_week_days": [],
"daily_sale": {}
}
]
}
]
}
]
}
Exemplo Payload Menu Múltiplos Sabores - Configuração Mandatário por: Categoria + Tamanho Específico + Item Específico
{
"menus": [
{
"store_ids": [
53852
],
"description": "Menu demonstrativo de modulação em 3 níveis (Múltiplos Sabores)",
"categories": [
{
"culinary_id": 481,
"name": "Pizzas Gourmet",
"description": "Pizzas com regras de borda obrigatória.",
"packing_fee": 0.5,
"flavor_pricing_option": 1,
"status": true,
"available_hours": {
"first_interval": {
"from": "11:00",
"to": "23:00"
}
},
"sizes": [
{
"name": "P",
"flavors_amount": 1,
"additional_max_limit": 3,
"status": true
},
{
"name": "M",
"flavors_amount": 2,
"additional_max_limit": 5,
"status": true
},
{
"name": "G",
"flavors_amount": 3,
"additional_max_limit": 7,
"status": true,
"mandatory_groups": [
{
"name": "Molho Extra",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "MOLHO_VERDE",
"name": "Molho Verde Grátis",
"value": 0,
"status": true
},
{
"sku": "MOLHO_CHEDDAR",
"name": "Molho Cheddar (+3)",
"value": 3,
"status": true
}
]
}
]
}
],
"mandatory_groups": [
{
"name": "Escolha a Borda",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "BORDA_SEM",
"name": "Sem Borda",
"value": 0,
"status": true
},
{
"sku": "BORDA_CATU",
"name": "Borda de Catupiry",
"value": 8,
"status": true
}
]
}
],
"items": [
{
"sku": "PZ0015",
"name": "Pizza Gourmet de Salmão",
"description": "Salmão, cream cheese e cebolinha.",
"highlight": true,
"status": true,
"tags": [
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "PZ0015P",
"value": 50,
"status": true
},
{
"size_name": "M",
"sku": "PZ0015M",
"value": 65,
"status": true
},
{
"size_name": "G",
"sku": "PZ0015G",
"value": 80,
"status": true
}
],
"mandatory_groups": [
{
"name": "Escolha o Queijo Base",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "BASE_MU",
"name": "Mussarela",
"value": 0,
"status": true
},
{
"sku": "BASE_CREAM",
"name": "Cream Cheese (+5)",
"value": 5,
"status": true
}
]
}
],
"item_week_days": []
},
{
"sku": "PZ0016",
"name": "Pizza Frango c/ Catupiry",
"description": "Frango desfiado, catupiry e orégano.",
"highlight": false,
"status": true,
"tags": [
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "PZ0016P",
"value": 40,
"status": true
},
{
"size_name": "M",
"sku": "PZ0016M",
"value": 50,
"status": true
},
{
"size_name": "G",
"sku": "PZ0016G",
"value": 60,
"status": true
}
],
"mandatory_groups": [],
"item_week_days": []
}
]
}
]
}
]
}

Exemplo para Único Sabor (ex: Hamburger, bebidas,etc)​

Exemplo Payload Menu Único Sabor - Configuração Mandatário por: Categoria
{
"menus": [
{
"store_ids": [
53852
],
"description": "Menu demonstrativo de modulação apenas por Categoria (Pão Mandatório)",
"categories": [
{
"culinary_id": 481,
"name": "Sanduíches Artesanais",
"description": "Todos os sanduíches exigem a escolha de um tipo de pão.",
"packing_fee": 0.5,
"flavor_pricing_option": 1,
"status": true,
"available_hours": {
"first_interval": {
"from": "11:00",
"to": "23:00"
}
},
"sizes": [
{
"name": "P",
"flavors_amount": 1,
"additional_max_limit": 3,
"status": true
},
{
"name": "M",
"flavors_amount": 1,
"additional_max_limit": 5,
"status": true
},
{
"name": "G",
"flavors_amount": 1,
"additional_max_limit": 7,
"status": true
}
],
"mandatory_groups": [
{
"name": "Escolha o Pão",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "PAO_BRIOCHE",
"name": "Pão Brioche",
"value": 0,
"status": true
},
{
"sku": "PAO_INTEG",
"name": "Pão Integral",
"value": 1.5,
"status": true
}
]
}
],
"items": [
{
"sku": "HMBR001",
"name": "Hambúrguer Clássico",
"description": "Carne, queijo e salada.",
"highlight": true,
"status": true,
"tags": [
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "HMBR001P",
"value": 25,
"status": true
},
{
"size_name": "M",
"sku": "HMBR001M",
"value": 35,
"status": true
},
{
"size_name": "G",
"sku": "HMBR001G",
"value": 45,
"status": true
}
],
"mandatory_groups": [],
"item_week_days": []
},
{
"sku": "HMBR002",
"name": "Sanduíche de Frango Crocante",
"description": "Frango empanado e maionese especial.",
"highlight": false,
"status": true,
"tags": [
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "HMBR002P",
"value": 28,
"status": true
},
{
"size_name": "M",
"sku": "HMBR002M",
"value": 38,
"status": true
},
{
"size_name": "G",
"sku": "HMBR002G",
"value": 48,
"status": true
}
],
"mandatory_groups": [],
"item_week_days": []
}
]
}
]
}
]
}
Exemplo Payload Menu Único Sabor - Configuração Mandatário por: Categoria + Tamanho Específico
{
"menus": [
{
"store_ids": [
53852
],
"description": "Menu demonstrativo de modulação por Tamanho (Hambúrgueres)",
"categories": [
{
"culinary_id": 481,
"name": "Sanduíches Artesanais",
"description": "Escolha o pão (mandatório) e ganhe um molho extra no tamanho G.",
"packing_fee": 0.5,
"flavor_pricing_option": 1,
"status": true,
"available_hours": {
"first_interval": {
"from": "11:00",
"to": "23:00"
}
},
"sizes": [
{
"name": "P",
"flavors_amount": 1,
"additional_max_limit": 3,
"status": true
},
{
"name": "M",
"flavors_amount": 1,
"additional_max_limit": 5,
"status": true
},
{
"name": "G",
"flavors_amount": 1,
"additional_max_limit": 7,
"status": true,
"mandatory_groups": [
{
"name": "Molho Grátis",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "MOLHO_MAYO",
"name": "Maionese Artesanal",
"value": 0,
"status": true
},
{
"sku": "MOLHO_KATCH",
"name": "Ketchup Picante",
"value": 0,
"status": true
}
]
}
]
}
],
"mandatory_groups": [
{
"name": "Escolha o Pão",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "PAO_BRIOCHE",
"name": "Pão Brioche",
"value": 0,
"status": true
},
{
"sku": "PAO_INTEG",
"name": "Pão Integral",
"value": 1.5,
"status": true
}
]
}
],
"items": [
{
"sku": "HMBR001",
"name": "Hambúrguer Clássico",
"description": "Carne, queijo e salada.",
"highlight": true,
"status": true,
"tags": [
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "HMBR001P",
"value": 25,
"status": true
},
{
"size_name": "M",
"sku": "HMBR001M",
"value": 35,
"status": true
},
{
"size_name": "G",
"sku": "HMBR001G",
"value": 45,
"status": true
}
],
"mandatory_groups": [],
"item_week_days": []
},
{
"sku": "HMBR002",
"name": "Sanduíche de Frango Crocante",
"description": "Frango empanado e maionese especial.",
"highlight": false,
"status": true,
"tags": [
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "HMBR002P",
"value": 28,
"status": true
},
{
"size_name": "M",
"sku": "HMBR002M",
"value": 38,
"status": true
},
{
"size_name": "G",
"sku": "HMBR002G",
"value": 48,
"status": true
}
],
"mandatory_groups": [],
"item_week_days": []
}
]
}
]
}
]
}
Exemplo Payload Menu Único Sabor - Configuração Mandatário por: Categoria + Tamanho Específico + Item Específico
{
"menus": [
{
"store_ids": [
53852
],
"description": "Menu demonstrativo de modulação em 3 níveis",
"categories": [
{
"culinary_id": 481,
"name": "Sanduíches Artesanais",
"description": "Todos os sanduíches exigem a escolha do pão.",
"packing_fee": 0.5,
"flavor_pricing_option": 1,
"status": true,
"available_hours": {
"first_interval": {
"from": "11:00",
"to": "23:00"
}
},
"sizes": [
{
"name": "P",
"flavors_amount": 1,
"additional_max_limit": 3,
"status": true
},
{
"name": "M",
"flavors_amount": 1,
"additional_max_limit": 5,
"status": true
},
{
"name": "G",
"flavors_amount": 1,
"additional_max_limit": 7,
"status": true,
"mandatory_groups": [
{
"name": "Molho Grátis",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "MOLHO_MAYO",
"name": "Maionese Artesanal",
"value": 0,
"status": true
},
{
"sku": "MOLHO_KATCH",
"name": "Ketchup Picante",
"value": 0,
"status": true
}
]
}
]
}
],
"mandatory_groups": [
{
"name": "Escolha o Pão",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "PAO_BRIOCHE",
"name": "Pão Brioche",
"value": 0,
"status": true
},
{
"sku": "PAO_INTEG",
"name": "Pão Integral",
"value": 1.5,
"status": true
}
]
}
],
"items": [
{
"sku": "HMBR001",
"name": "Hambúrguer Clássico",
"description": "Carne, queijo e salada.",
"highlight": true,
"status": true,
"tags": [
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "HMBR001P",
"value": 25,
"status": true
},
{
"size_name": "M",
"sku": "HMBR001M",
"value": 35,
"status": true
},
{
"size_name": "G",
"sku": "HMBR001G",
"value": 45,
"status": true
}
],
"mandatory_groups": [
{
"name": "Ponto da Carne",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "MEIO",
"name": "Ao Ponto",
"value": 0,
"status": true
},
{
"sku": "BEM",
"name": "Bem Passado",
"value": 0,
"status": true
}
]
}
],
"item_week_days": []
},
{
"sku": "HMBR002",
"name": "Sanduíche de Frango Crocante",
"description": "Frango empanado e maionese especial.",
"highlight": false,
"status": true,
"tags": [
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "HMBR002P",
"value": 28,
"status": true
},
{
"size_name": "M",
"sku": "HMBR002M",
"value": 38,
"status": true
},
{
"size_name": "G",
"sku": "HMBR002G",
"value": 48,
"status": true
}
],
"mandatory_groups": [],
"item_week_days": []
}
]
}
]
}
]
}

Exemplo Menu Completo​

Exemplo Payload Menu Completo
{
"menus": [
{
"store_ids": [
53852
],
"description": "Menu de Pizza com modulação consolidada no nível Categoria/Tamanho.",
"categories": [
{
"culinary_id": 481,
"name": "Pizzas Gourmet",
"description": "Pizzas com regras de borda obrigatória.",
"packing_fee": 0.5,
"flavor_pricing_option": 1,
"status": true,
"available_hours": {
"first_interval": {
"from": "11:00",
"to": "23:00"
}
},
"sizes": [
{
"name": "P",
"flavors_amount": 1,
"additional_max_limit": 5,
"status": true,
"additional_items": [
{
"sku": "ADD_AZEI",
"name": "Azeitona Extra",
"value": 2,
"status": true
},
{
"sku": "ADD_BACON",
"name": "Bacon Extra",
"value": 3,
"status": true
},
{
"sku": "ADD_BROC",
"name": "Brócolis Extra",
"value": 3,
"status": true
}
]
},
{
"name": "M",
"flavors_amount": 2,
"additional_max_limit": 8,
"status": true,
"additional_items": [
{
"sku": "ADD_AZEI",
"name": "Azeitona Extra",
"value": 2,
"status": true
},
{
"sku": "ADD_BACON",
"name": "Bacon Extra",
"value": 3,
"status": true
},
{
"sku": "ADD_QUEIJO",
"name": "Queijo Vegano",
"value": 5,
"status": true
}
]
},
{
"name": "G",
"flavors_amount": 2,
"additional_max_limit": 10,
"status": true,
"mandatory_groups": [
{
"name": "Molho Grátis",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "MOLHO_MAYO",
"name": "Maionese Artesanal",
"value": 0,
"status": true
},
{
"sku": "MOLHO_KATCH",
"name": "Ketchup Picante",
"value": 0,
"status": true
}
]
}
],
"additional_items": [
{
"sku": "ADD_AZEI",
"name": "Azeitona Extra",
"value": 2,
"status": true
},
{
"sku": "ADD_PIMEN",
"name": "Pimenta Calabreza",
"value": 1.5,
"status": true
},
{
"sku": "ADD_QUEIJO",
"name": "Queijo Vegano",
"value": 5,
"status": true
}
]
}
],
"mandatory_groups": [
{
"name": "Escolha a Borda",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "BORDA_SIMPLES",
"name": "Borda Padrão",
"value": 0,
"status": true
},
{
"sku": "BORDA_QUEIJO",
"name": "Borda de Queijo (+8)",
"value": 8,
"status": true
}
]
}
],
"items": [
{
"sku": "PZ0001",
"name": "Pizza do Chef (Em Oferta)",
"description": "Calabresa, bacon, cebola e toque de pimenta.",
"highlight": true,
"status": true,
"tags": [
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "PZ0001P",
"value": 35,
"promotional_value": 30,
"status": true
},
{
"size_name": "M",
"sku": "PZ0001M",
"value": 45,
"promotional_value": 40,
"status": true
},
{
"size_name": "G",
"sku": "PZ0001G",
"value": 55,
"promotional_value": 50,
"status": true
}
],
"mandatory_groups": [
{
"name": "Tipo de Base",
"min_limit": 1,
"max_limit": 1,
"mandatory_items": [
{
"sku": "BASE_TRAD",
"name": "Molho de Tomate Tradicional",
"value": 0,
"status": true
},
{
"sku": "BASE_RUST",
"name": "Molho Rústico (+3)",
"value": 3,
"status": true
}
]
}
]
},
{
"sku": "PZ0002",
"name": "Pizza Vegetariana",
"description": "Mussarela, vegetais frescos e azeite.",
"highlight": false,
"status": true,
"tags": [
"SPICY"
],
"item_sizes": [
{
"size_name": "P",
"sku": "PZ0002P",
"value": 40,
"status": true
},
{
"size_name": "M",
"sku": "PZ0002M",
"value": 50,
"status": true
},
{
"size_name": "G",
"sku": "PZ0002G",
"value": 60,
"status": true
}
],
"mandatory_groups": []
}
]
}
]
}
]
}
Detalhamento do Payload

1. Objeto Principal (menus[])​


CampoObrigatórioDescrição
menus✅Array principal que contém a definição dos menus a serem importados.
menus[].store_ids✅IDs das lojas para as quais este menu deve ser aplicado.
menus[].description❌Descrição inicial de boas-vindas do cardápio, visível para o cliente.
menus[].categories✅Array de objetos que definem as categorias do menu.

2. Objeto categories[] (Estrutura da Categoria)​


CampoObrigatórioDescrição
categories[].culinary_id✅ID da Culinária que a categoria estará associada e que aparece no carrossel do App para o cliente (Ex: Lanches, Pizza, Hambúrguer, Açaí). Consulte ID's Culinárias
categories[].name✅Nome da categoria (Ex: "Pizzas Salgadas", “Lanches”, “Bebidas Geladas”).
categories[].description❌Descrição da categoria (Ex: “Deliciosos lanches para seu café da manhã ou tarde.”).
categories[].packing_fee❌Taxa de embalagem a ser aplicada a todos os itens desta categoria (Ex: 0.90 => Corresponde à 90 centavos).
categories[].status✅Status da categoria: true (ativa) ou false (inativa/não exibida).
categories[].available_hours❌Horário em que a categoria fica disponível (útil para menus de almoço ou jantar específicos).
categories[].sizes✅Array de tamanhos que podem ser utilizados pelos itens desta categoria.
categories[].mandatory_groups❌Itens obrigatórios da categoria. Regra: Se configurado aqui, aplica-se a todos os tamanhos e todos os itens da categoria.
categories[].daily_sale❌Promoção diária aplicada a toda a categoria.
categories[].items✅Array de objetos que definem os itens que pertencem a esta categoria.
categories[].flavor_pricing_option✅Regra de precificação para pizzas e itens com múltiplos sabores. Valores: 0 (Aplicar Menor Valor) ou 1 (Aplicar Maior Valor) do item/sabor.

2.1. Objeto categories[].sizes[] (Tamanhos e Adicionais por Categoria)​

Define os tamanhos (Ex: P, M, G) que podem ser usados pelos itens da categoria


CampoObrigatórioDescrição
sizes[].name✅Nome do tamanho (Ex: "P", "M", "Grande")
sizes[].flavors_amount❌Quantidade de Sabores permitida para este tamanho.
Regra: Só é válido se a culinária suportar múltiplos sabores.
sizes[].status❌Status de ativação/exibição do tamanho.
sizes[].additional_max_limit❌Número máximo de itens adicionais (modificadores) permitidos para este tamanho.
sizes[].additional_items❌Array de itens adicionais que o cliente pode selecionar.
Regra: Todos os itens que utilizam este tamanho herdarão estes adicionais.
sizes[].daily_sale❌Promoção diária aplicada a apenas este tamanho.
sizes[].mandatory_groups❌Array de grupos obrigatórios que se aplicam apenas a este tamanho.

2.1.1. Sub-Objeto sizes[].additional_items (Itens Adicionais Opcionais)​

Estes são itens opcionais que podem ser adicionados pelo cliente, sendo configurados no nível do Tamanho da Categoria.


CampoObrigatórioDescrição
sizes[].additional_items❌Array de itens adicionais opcionais que o cliente pode selecionar. Regra: Todos os itens que utilizam este tamanho herdarão estes adicionais.
sizes[].additional_items[].sku❌SKU ou código interno do item adicional (Ex: "abc0001").
sizes[].additional_items[].name✅Nome do item adicional (Ex: "bacon extra").
sizes[].additional_items[].value❌Valor em Reais do item adicional (Ex: 2.99).
sizes[].additional_items[].status❌Status de ativação/exibição do item adicional.

2.1.2 Sub-Objeto sizes[].mandatory_groups (Grupos Obrigatórios/Mandatórios)​

Estes são grupos obrigatórios que se aplicam apenas a este tamanho


CampoObrigatórioDescrição
mandatory_groups❌Array de grupos obrigatórios que se aplicam apenas a este tamanho.
mandatory_groups[].name✅Nome do grupo (Ex: "Molho Extra", "Borda").
mandatory_groups[].min_limit❌Quantidade mínima de itens que o cliente deve selecionar neste grupo.
mandatory_groups[].max_limit❌Quantidade máxima de itens que o cliente pode selecionar neste grupo.
mandatory_groups[].mandatory_items✅Array de opções dentro deste grupo.

2.1.2 Sub-Objeto sizes[].daily_sale (Promoção Diária por Tamanho)​


CampoObrigatórioDescrição
daily_sale❌Objeto contendo a regra de promoção diária.
daily_sale.start❌Data de início da vigência da promoção no formato AAAA-MM-DD.
daily_sale.end❌Data de fim da vigência da promoção no formato AAAA-MM-DD.
daily_sale.daily_weekday_sale❌Array que lista os dias da semana e as regras de desconto aplicáveis.
daily_sale.daily_weekday_sale[].weekday_code✅Dia da semana em que o desconto será aplicado. Códigos: 0 (Segunda-feira) a 6 (Domingo).
daily_sale.daily_weekday_sale[].discount_type✅Tipo de desconto. Valores: 0 (Desconto em Reais) ou 1 (Desconto em Porcentagem).
daily_sale.daily_weekday_sale[].discount✅Valor ou percentual do desconto a ser aplicado (Ex: 10 para R$ 10,00 ou 10%).

2.2 Objeto categories[].items[] (Itens de Cardápio)​

Define os produtos dentro da categoria (Ex: Pizza Calabresa, Hamburger)


CampoObrigatórioDescrição
items[].sku❌SKU ou código interno do item.
items[].name✅Nome do item.
items[].description❌Descrição detalhada do item para o cliente.
items[].highlight❌Item em destaque (true) para o cliente.
items[].status✅Status de exibição/venda do item.
items[].tags✅Tags adicionais (VEGETARIAN, VEGAN, ORGANIC, GLUTEN_FREE, SUGAR_FREE, LAC_FREE, ALCOHOLIC_DRINK, NATURAL, ZERO, DIET, COLD, HOT).
items[].item_sizes❌Array de objetos com os tamanhos que este item específico aceita (pode ser um subconjunto dos tamanhos criados na categoria).
items[].item_week_days❌Disponibilidade do item de acordo com o dia da semana. Ex: Item do dia, pode ter o itens ativos em um dia específico e outros não ativos.
items[].mandatory_groups❌Grupos de itens obrigatórios para este item. Regra: Aplica-se apenas a este item, não à categoria.
items[].daily_sale❌Promoção diária aplicada apenas a este item.

2.2.1 Sub-objeto items[].item_sizes[] (Tamanhos do Item)​

Define os tamanhos que o item específico (Ex: Pizza Calabresa) aceita e seus respectivos preços, SKUs e regras de modulação.


CampoObrigatórioDescrição
item_sizes[].size_name✅Nome do tamanho (Ex: "P", "M", "G"). Deve corresponder a um nome de tamanho definido na Categoria (categories[].sizes).
item_sizes[].sku❌SKU ou código interno específico para este tamanho/preço do item (Ex: PZ0001P).
item_sizes[].value✅Preço de venda regular do item para este tamanho.
item_sizes[].promotional_value❌Valor promocional do item para este tamanho. O App prioriza este valor.
item_sizes[].status❌Status de venda para este tamanho: true (disponível) ou false (indisponível).
item_sizes[].inventory_quantity❌Quantidade de estoque do item para este tamanho.
item_sizes[].is_inventory_active❌Define se o item tem controle de estoque ativo (1) ou desativado (0) para este tamanho.
item_sizes[].daily_sale❌Promoção diária aplicada apenas a este tamanho/preço (pode gerar duplicação se configurado em outros níveis).

2.2.2 Sub-objeto items[].item_week_days[] (Disponibilidade por Dia)​

Define a disponibilidade de venda do item específico ao longo da semana.


CampoObrigatórioDescrição
item_week_days[].week_day✅Número do dia da semana: 0 (Segunda-feira) a 6 (Domingo).
item_week_days[].status✅Status do item no dia: true (ativo/disponível) ou false (inativo/não disponível).

2.2.3 Sub-objeto items[].mandatory_groups (Grupos Obrigatórios/Mandatórios)​

Usado para grupos de modificadores que o cliente deve escolher (Ex: Tipo de Massa, Borda, Ponto da Carne).


CampoObrigatórioDescrição
mandatory_groups[].name✅Nome do grupo obrigatório da categoria (Ex: "Bordas", "Tipo de Massa"). Regra: Aplica-se apenas a este item, não à categoria ou tamanho.
mandatory_groups[].min_limit❌Quantidade mínima de itens que o cliente deve selecionar neste grupo.
mandatory_groups[].max_limit❌Quantidade máxima de itens que o cliente pode selecionar neste grupo.
mandatory_groups[].mandatory_items✅Array dos itens/opções dentro deste grupo (Ex: Opção "Catupiry" ou "Sem Borda").
mandatory_groups[].mandatory_items[].sku❌SKU do item mandatório.
mandatory_groups[].mandatory_items[].name✅Nome da opção.
mandatory_groups[].mandatory_items[].value❌Valor do item obrigatório em Reais
mandatory_groups[].mandatory_items[].status❌Status de ativação da opção.

2.2.4 Sub-objeto items[].daily_sale (Regra por Dia)​

Dias da semana da promoção aplicada apenas a este item.


CampoObrigatórioDescrição
daily_sale.start❌Data de início da vigência da promoção no formato AAAA-MM-DD (Ex: "2025-12-01").
daily_sale.end❌Data de fim da vigência da promoção no formato AAAA-MM-DD (Ex: "2025-12-31").
daily_sale.daily_weekday_sale[].weekday_code✅Dia da semana em que o desconto será aplicado. Códigos: 0 (Segunda-feira) a 6 (Domingo).
daily_sale.daily_weekday_sale[].discount_type✅Tipo de desconto. Valores: 0 (Desconto em Reais) ou 1 (Desconto em Porcentagem).
daily_sale.daily_weekday_sale[].discount✅Valor ou percentual do desconto a ser aplicado (Ex: 10 para R$ 10,00 ou 10%).

2.3 Objeto categories[].mandatory_groups[] (Grupos Obrigatórios)​

Estes grupos definem as escolhas obrigatórias de modificadores que todos os itens na categoria herdarão (Ex: escolha de borda para todas as pizzas).


CampoObrigatórioDescrição
mandatory_groups❌Array de objetos que definem os grupos obrigatórios. Regra: Aplica-se a todos os itens e tamanhos desta categoria.
mandatory_groups[].name✅Nome do grupo obrigatório (Ex: "Escolha a Borda", "Tipo de Massa").
mandatory_groups[].min_limit❌Quantidade mínima de itens que o cliente deve selecionar neste grupo.
mandatory_groups[].max_limit❌Quantidade máxima de itens que o cliente pode selecionar neste grupo.
mandatory_groups[].mandatory_items✅Array dos itens/opções dentro deste grupo (Ex: Opção "Catupiry" ou "Sem Borda").
mandatory_groups[].mandatory_items[].sku❌SKU do item mandatório.
mandatory_groups[].mandatory_items[].name✅Nome da opção.
mandatory_groups[].mandatory_items[].value❌Valor do item obrigatório em Reais.
mandatory_groups[].mandatory_items[].status❌Status de ativação da opção.

2.4 Objeto categories[].available_hours (Horários de Disponibilidade)​

Define o horário em que a categoria fica visível e disponível para pedidos no App (Ex: Menu de Almoço).


CampoObrigatórioDescrição
available_hours❌Objeto que define os intervalos de tempo de disponibilidade da categoria.
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).
available_hours.first_interval.to❌Hora de fim do primeiro intervalo (Formato: HH:MM).
available_hours.second_interval❌Define o segundo intervalo de tempo (opcional) em que a categoria fica ativa.
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.

aiqfome

© Copyright 2007-2026 aiqfome LTDA .