Skip to main content
Proposal — not implemented in XMART_BACKOFFICE yet. See Hybrid delivery for context. This page shows the intended shape of the event, not a live contract.
menu.list_ready is the notify half of hybrid delivery: it tells your system that a menu is ready to be fetched for one store and one sync assignment, without carrying any catalog data. One event = one list — a publication affecting several stores fires one menu.list_ready per assignment, not a batched array. Call GET /v1/menus/{syncId} with syncId to fetch the actual menu.

Payload

Fields

data

data.metadata

Notes

  • This event carries no catalog data. Call GET /v1/menus/{syncId} if you need categories, products, or modifier groups.
  • One event per assignment. Unlike targets[] in product.updated and product.availability_changed, or the batches in stores.sync / menus.sync, menu.list_ready does not group multiple stores or lists into one event. A publication affecting several assignments fires one menu.list_ready per assignment, correlated by metadata.groupId.
  • account, country, storeId, and syncId are top-level because they’re what most integrations route or filter on. Everything else — groupId, listId, channelId, fulfillmentType — is supplementary and lives under metadata; you don’t need any of it just to call the fetch endpoint.
  • Use syncId, not metadata.listId, as the unique key. The assignment a menu is published from is uniquely identified by the triple storeId + metadata.channelId + metadata.fulfillmentType — syncId is that assignment’s own id. metadata.listId is a human-readable composite of the same three values, kept for backward compatibility with menu.updated, but it isn’t guaranteed unique across every delivery path.