fetchStoreItems
The item catalogue for ONE STOREFRONT (ONE-2746) — the per-store form of fetchLocationItems, for a partner holding store ids from fetchStores rather than kitchen ids.
⚠️ AVAILABILITY IS HELD AT THE KITCHEN, NOT THE STOREFRONT. This operation resolves your storeId to its parent kitchen and answers from there, narrowed to the store's own brand. Two consequences worth designing against, both of them properties of the platform rather than of this API:
availableis the KITCHEN's answer. Every sibling storefront of the same brand at that kitchen reports the identical value, and 86-ing an item affects all of them. The reply echoeslocationIdso the sharing is visible in the data, not just in this paragraph.availableis what OneTablet INTENDS, never what the delivery platform currently shows. A platform can independently mark an item unavailable on its own side, and this read does not see that. It is the item-level counterpart of thedesired/observedsplitfetchStoreStatusmakes explicit for the storefront itself.
A storefront being PAUSED is a separate axis again and does not change any available value here — read fetchStoreStatus for that.
Scope: the store must be one this organization owns or operates a brand out of, and items are restricted to the store's own brand. An unknown or foreign storeId is NotFound, indistinguishable by design.
Request
- storeIdstring
The
Store.idwhose catalogue you want. - querystring
Case-insensitive name search.
- availableboolean
Filter to items currently available (or unavailable) at the store's kitchen.
- pagePageRequest
Cursor pagination.
{
"storeId": "00000000-0000-0000-0000-000000000000",
"query": "<query>",
"available": true,
"page": {
"limit": 50,
"cursor": "<cursor>"
}
}Responses
- asOfstring<date-time>
When this response was assembled — UTC, ISO-8601. The availability values are read live at that moment; this is the freshness claim for the whole response.
- locationIdstring
The kitchen the answer actually came from.
⚠️ READ THIS BEFORE ACTING ON THE RESULT. Availability is held at the KITCHEN (location) grain, never per storefront, so this operation resolves your
storeIdto its parent location and reports that kitchen's catalogue. Every sibling storefront at the same kitchen sees the identical answer. Echoed here so the sharing is visible in the response rather than only in the documentation — pass it tosetItemAvailabilityif you intend to change anything. - itemsItemAvailability[]
The page of items tracked at the store's kitchen, narrowed to the store's own brand and sorted by name. Empty when nothing matches.
- nextCursorstring
Opaque cursor for the next page. Absent means the last page.
About Item availability
Item availability ("86-ing") — mark one item available or unavailable at one kitchen (ONE-2621, single-item shape per ONE-2904).
fetchLocationItems and setItemAvailability are ONE indivisible unit: the write is useless without the discovery read, because a partner cannot know OneTablet's item ids in advance.
NOT IMPLEMENTED ON THIS API: replay via Idempotency-Key (the published contract's parameter promises it, and nothing on the platform implements idempotent replay today; a retried setItemAvailability call re-applies rather than de-duplicating). ONE-2621 research and decision 3.