Skip to main content
A menu in Fire is a full catalog definition for a specific store and channel combination — including categories, products, modifier groups, and schedules. The payload is self-contained and ready to be forwarded to downstream systems. Treat it as an upsert: create the menu if it doesn’t exist, replace it entirely if it does.

Payload

Fields

data

data.menu

data.menu.list

data.menu.list.schedules[n]

data.menu.categories[n]

data.menu.products[n]

data.menu.modifierGroups[n]

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

Notes

  • The payload is a complete menu — not a diff. Replace the entire menu on the downstream system.
  • Every menu.modifierGroups[n].modifierOptions[n].productId must reference a product defined in menu.products.
  • The schedules fields on list, categories, and products are always present in the payload. Use null when no schedule applies; never omit the key.
  • list.schedules: inheritance fulfillment → channel → salesScheduleoperationSchedulenull.
  • categories[].schedules: category-specific schedule if it exists; null if none.
  • products[].schedules: only when the product has schedule mode: custom; null if using store hours or no custom schedule (implicitly inherits the list window).

Removing a menu externally

Fire does not emit a separate delete event for menus. To remove a menu from a downstream system, Fire sends a menu.updated event with menu.categories, menu.products, and menu.modifierGroups as empty arrays. Your system should treat an empty menu as a signal to deactivate or remove the menu externally.

Usage

See Menu publication for the full handling guide.