Skip to main content
Um menu no Fire é a definição completa do catálogo para uma combinação específica de loja e canal — incluindo categorias, produtos, grupos de modificadores e horários. O payload é autocontido e pronto para ser encaminhado a sistemas externos. Trate-o como um upsert: crie o menu se não existir ou substitua-o inteiramente se já existir.

Payload

Campos

data

data.menu

data.menu.list

data.menu.list.stores[n]

data.menu.list.stores[n].channels[n]

data.menu.list.stores[n].channels[n].schedules[n]

data.menu.categories[n]

data.menu.products[n]

data.menu.products[n].productModifiers[n].overrides[n]

data.menu.modifierGroups[n]

data.menu.modifierGroups[n].modifierOptions[n]

Data de atribuição ao menu

categories[n].assignedAt e products[n].additionalInfo.assignedAt indicam quando a entidade entrou no menu. É um dado de pertencimento, não de edição: não muda ao editar o preço, o nome, a descrição, a imagem, os modificadores, a ordem nem a visibilidade. Formato: ISO 8601 com precisão de segundos e sufixo Z"2026-08-04T12:30:00Z". Sempre em UTC, nunca no fuso da loja: o valor é o mesmo fato para todas as lojas do menu, que podem estar em países diferentes. Para exibir em horário local, use o timezone que viaja por loja em list.stores[n]. Sem milissegundos — diferente de event.createdAt, que os leva. Não existe assignedAt no nível list nem list.stores[n]: o campo descreve quando a entidade entrou no menu, não quando uma loja passou a recebê-lo. O mesmo campo, com a mesma semântica, viaja em product.updated. Não viaja em product.price_updated nem em product.availability_changed: esses eventos transmitem apenas seu delta, e o assignedAt que você já tem registrado continua válido.

Notas

  • O payload é um menu completo — não um diff. Substitua o menu inteiro no sistema externo.
  • Cada menu.modifierGroups[n].modifierOptions[n].productId deve referenciar um produto definido em menu.products.
  • stores[n].channels[n].schedules: janelas de tempo em que o canal está ativo para aquela loja. Um array vazio ([]) indica que o canal opera 24 horas — sem restrições.
  • categories[].schedules: horário próprio da categoria se existir; null se não houver.
  • products[].schedules: apenas quando o produto tem schedule mode: custom; null se usa horário da loja ou não tem horário customizado.

Remover um menu externamente

O Fire não emite um evento de exclusão separado para menus. Para remover um menu de um sistema externo, o Fire envia um evento menu.updated com menu.categories, menu.products e menu.modifierGroups como arrays vazios. Seu sistema deve interpretar um menu vazio como sinal para desativar ou remover o menu externamente. Esse esvaziamento remove categorias e produtos do menu. Se o menu for publicado de novo, eles são reincorporados: chegam com assignedAt novo, não com a data original — mesma regra de “produto removido do menu e adicionado novamente”.

Uso

Consulte o guia Publicação de menu para o fluxo completo de processamento.