Skip to main content
Um cardápio no Fire é a definição completa do catálogo para uma combinação específica de loja e canal — categorias, produtos, grupos de modificadores e horários. Sempre que um cardápio muda, o Fire emite um evento menu.updated com o catálogo completo pronto para encaminhar downstream. O payload é autocontido. Não é necessário chamar endpoints adicionais para obter os dados do cardápio — tudo já vem incluído.

Processamento

1

Verifique a assinatura

Extraia o header X-Fire-Signature e valide-o contra o body bruto da requisição usando o signing secret da sua integração. O secret é gerado ao registrar o endpoint no dashboard do Fire em Integrações de agregadores. Veja Autenticação para o processo de verificação completo.
2

Confirme imediatamente

Retorne 200 OK antes de qualquer processamento. O Fire reenviará se não receber resposta a tempo.
3

Identifique o cardápio

Use data.menu.list.storeId e data.menu.list.channelId para determinar a qual loja e canal este cardápio pertence.
4

Substitua o cardápio completo

Aplique data.menu como substituição total no seu sistema downstream. Não é um diff — sobrescreva o estado anterior por completo.
O payload é um cardápio completo, não um diff. Substitua o cardápio inteiro no sistema downstream sempre que receber este evento.

Payload

Veja menu.updated para o esquema completo com todos os campos e tipos.

Estrutura do cardápio

data.menu.list

Identifica a qual loja e canal o cardápio pertence. Use storeId e channelId como chave para fazer upsert no seu sistema downstream. O campo schedules em list define as janelas de tempo em que o cardápio está ativo. Sempre presente; null se nenhum horário estiver definido.

data.menu.categories

Lista de categorias visíveis. Cada categoria inclui productListing — um array com os productId de seus produtos e suas posições de exibição. As categorias também podem ter schedules próprios que restringem sua visibilidade a determinados horários, independentemente do horário do cardápio.

data.menu.products

Lista plana de todos os itens do cardápio — tanto produtos principais quanto opções usadas em grupos de modificadores. O campo type indica o papel de cada item: Para produtos COMBO, priceInfo.price é sempre 0. Use priceInfo.referencePrice como preço de cabeçalho. Os grupos de modificadores de um combo podem incluir overrides de preço por opção. Veja o guia Estrutura de produtos para o tratamento completo de COMBOs e overrides de modificadores.

data.menu.modifierGroups

Define os grupos de opções e suas regras de seleção. Cada grupo referencia suas opções via productId, que deve existir em products.

groupId

Eventos emitidos na mesma publicação compartilham o mesmo groupId. Você pode usá-lo para correlacionar eventos relacionados, mas não é necessário para processá-los — cada um é independente e autocontido.

Remover um cardápio

O Fire não emite um evento de exclusão separado. Para sinalizar a remoção de um cardápio, o Fire envia um menu.updated com categories, products e modifierGroups como arrays vazios. Trate um cardápio vazio como sinal para desativá-lo ou removê-lo no seu sistema downstream.

Idempotência

Você pode receber o mesmo evento mais de uma vez devido a retentativas. Como cada payload é uma substituição completa, aplicá-lo duas vezes produz o mesmo resultado.