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].productIddeve referenciar um produto definido emmenu.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;nullse não houver.products[].schedules: apenas quando o produto tem schedulemode: custom;nullse 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 eventomenu.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”.

