Skip to main content
menus.sync is the batch counterpart to menu.updated. Fire emits it when menus for multiple stores need to be propagated at once — for example, during initial onboarding or after a global menu change that affects many stores. Fire splits large batches automatically and emits multiple menus.sync events with up to 50 menus each. Each event is delivered and retried independently.

Payload

{
  "event": "menus.sync",
  "id": "evt_def458",
  "created_at": "2025-01-15T15:15:00Z",
  "data": {
    "account": "1",
    "country": "6",
    "batchIndex": 1,
    "batchTotal": 4,
    "menus": [
      {
        "list": {
          "ecommerceChannelId": 123,
          "channelReferenceName": "pickup-menu",
          "listId": "pickup-menu-t005",
          "listName": "Menu App",
          "vendorId": "16",
          "storeId": "805",
          "channelId": "0E049503-85CF-E511-80C6-000D3A3261F3",
          "schedules": []
        },
        "categories": [ ],
        "products": [ ],
        "modifierGroups": [ ],
        "scheduledActivities": [ ]
      }
    ]
  }
}

Fields

data

FieldTypeDescription
accountstringAccount identifier — required by downstream systems
countrystringCountry identifier — required by downstream systems
batchIndexintegerPosition of this batch (1-based)
batchTotalintegerTotal number of batches in this sync
menusobject[]Array of menu payloads

data.menus[n]

Each entry has the same structure as the data object in menu.updated:
FieldTypeDescription
listobjectMenu metadata and channel/store association
categoriesobject[]Category tree
productsobject[]Product catalog
modifierGroupsobject[]Modifier groups and options
scheduledActivitiesobject[]Future activation/deactivation windows

Processing

Process each menus.sync event independently. Iterate menus and apply each one to the corresponding downstream system identified by list.storeId and list.channelId. Use batchIndex and batchTotal to track progress if your system needs to know when a full sync is complete.
Each batch event is retried independently on failure — not the entire sync.

When does Fire emit this event?

  • During initial client onboarding
  • After a global menu change affecting many stores
  • On explicit sync requests triggered from the Fire dashboard
For individual menu changes in normal operation, Fire emits menu.updated instead.