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]
Fecha de incorporación al menú
categories[n].assignedAt y products[n].additionalInfo.assignedAt indican cuándo la entidad entró al menú. Es un dato de membresía, no de edición: no cambia al editar el precio, el nombre, la descripción, la imagen, los modificadores, el orden ni la visibilidad.
Formato: ISO 8601 con precisión de segundos y sufijo Z — "2026-08-04T12:30:00Z". Siempre en UTC, nunca en la zona de la tienda: el valor es el mismo hecho para todas las tiendas del menú, que pueden estar en países distintos. Para mostrarlo en hora local usa el timezone que viaja por tienda en list.stores[n]. Sin milisegundos — a diferencia de event.createdAt, que sí los lleva.
No existe
assignedAt a nivel list ni list.stores[n]: el campo describe cuándo la entidad entró al menú, no cuándo una tienda empezó a recibirlo.
El mismo campo, con la misma semántica, viaja en product.updated. No viaja en product.price_updated ni en product.availability_changed: esos eventos transmiten solo su delta, y el assignedAt que ya tengas registrado sigue vigente.
Notas
- El payload es un menú completo — no un diff. Reemplaza el menú completo en el sistema externo.
- Cada
menu.modifierGroups[n].modifierOptions[n].productIddebe referenciar un producto definido enmenu.products. stores[n].channels[n].schedules: ventanas de tiempo en las que el canal está activo para esa tienda. Un array vacío ([]) indica que el canal opera 24 horas — sin restricciones.categories[].schedules: horario propio de la categoría si existe;nullsi no hay.products[].schedules: solo cuando el producto tiene schedulemode: custom;nullsi usa horario de tienda o no tiene horario custom.
Eliminar un menú externamente
Fire no emite un evento de borrado separado para menús. Para eliminar un menú de un sistema externo, Fire envía un eventomenu.updated con menu.categories, menu.products y menu.modifierGroups como arrays vacíos. Tu sistema debe interpretar un menú vacío como señal para desactivar o eliminar el menú externamente.
Este vaciado quita a categorías y productos del menú. Si el menú vuelve a publicarse, se reincorporan: llegan con assignedAt nuevo, no con su fecha original — misma regla que “producto quitado del menú y vuelto a agregar”.

