iRetail PRO store node 1.0.0-m1: menus

15 operations

← All documentation · Source: contracts openapi/store-v1.yaml at 8000474.

← iRetail PRO store node 1.0.0-m1

Operations

GET /v1/guest-listener Whether the guest listener is on and the origin guests use (spec/RESTAURANT.md, The guest listener).

operationId getGuestListener · Permission store.read

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).

Responses

GET /v1/menus The guest menus in position order (spec/RESTAURANT.md, The guest menu).

operationId listMenus · Permission item.read

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).

Responses

  • 200 OK array of Menu
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
POST /v1/menus Make a guest menu (at most 10 a store).

operationId createMenu · Permission menu.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
Idempotency-Key header string spec/API.md, Idempotency.

Request body required

Responses

  • 201 OK Menu
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
  • 422 Error (spec/API.md). Error
GET /v1/menus/{id} One guest menu.

operationId getMenu · Permission item.read

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
id required path string (uuid) Id.

Responses

  • 200 OK Menu
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
PUT /v1/menus/{id} Replace a guest menu's name, areas and sections.

operationId putMenu · Permission menu.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
id required path string (uuid) Id.
If-Match header string The version the change is based on.

Request body required

Responses

  • 200 OK Menu
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
  • 412 Error (spec/API.md). Error
  • 422 Error (spec/API.md). Error
DELETE /v1/menus/{id} Delete a guest menu.

operationId deleteMenu · Permission menu.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
id required path string (uuid) Id.

Responses

  • 204 Done
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
GET /v1/menu-theme The guest menu's theme.

operationId getMenuTheme · Permission item.read

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).

Responses

PUT /v1/menu-theme Set the theme; colors are checked for WCAG 2.2 contrast (422 theme_contrast).

operationId putMenuTheme · Permission menu.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
If-Match header string The version the change is based on.

Request body required

Responses

  • 200 OK MenuTheme
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 412 Error (spec/API.md). Error
  • 422 Error (spec/API.md). Error
GET /v1/menu-photos The store's menu photos.

operationId listMenuPhotos · Permission item.read

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).

Responses

POST /v1/menu-photos Keep a JPEG or WebP photo of at most 512 KB, its EXIF and XMP removed.

operationId uploadMenuPhoto · Permission menu.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
Idempotency-Key header string spec/API.md, Idempotency.

Request body required

  • image/jpeg string (binary)
  • image/webp string (binary)

Responses

  • 201 OK MenuPhoto
  • 400 Error (spec/API.md). Error
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 413 Error (spec/API.md). Error
  • 422 Error (spec/API.md). Error
GET /v1/menu-photos/{id} A photo's bytes with its ETag; 304 for a matching If-None-Match.

operationId getMenuPhoto · Permission item.read

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
id required path string (uuid) Id.
If-None-Match header string The ETag the caller holds.

Responses

  • 200 The photo. string (binary)
  • 304 Not modified.
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
DELETE /v1/menu-photos/{id} Delete a photo no menu or theme uses (409 photo_in_use otherwise).

operationId deleteMenuPhoto · Permission menu.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
id required path string (uuid) Id.

Responses

  • 204 Done
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error
  • 409 Error (spec/API.md). Error
GET /v1/stop-list Items temporarily not served (spec/RESTAURANT.md, The guest menu).

operationId getStopList · Permission item.read

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).

Responses

PUT /v1/stop-list/{item_id} Put an item on the stop list, until a time or until it is taken off; refused to guests and at the register alike.

operationId stopItem · Permission stop_list.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
item_id required path string (uuid) The item.

Request body required

Responses

DELETE /v1/stop-list/{item_id} Take an item off the stop list.

operationId unstopItem · Permission stop_list.manage

Parameters

Name In Type Description
IRetail-App header string Which app sends the request, at which version: <app>/<version>, optionally a space and (<platform>), as cashier/1.2.0 (windows-x64) or manager/1.2.0 (web). The register (cashier), the back office and the console (manager) and the device gateway (gateway) send it on every request; a request without it is not one of the apps and is served as the current API, and a device token of an app's kind without it is an app of an unknown version; a header that does not parse counts as absent. The node may refuse an app 426 app_update_required by it, except on the operations marked x-app-update-exempt. Not a security boundary (spec/API.md, Transport; spec/RELEASES.md, Who is asking).
item_id required path string (uuid) The item.

Responses

  • 204 Done
  • 401 Error (spec/API.md). Error
  • 403 Error (spec/API.md). Error
  • 404 Error (spec/API.md). Error

Schemas

Error object

Every error response.

error required string Stable code, see spec/API.md.
message required string English text for logs.
details object

LocalizedText map of string

Text by language code; the organization's default language must be present.

GuestListener object

enabled required boolean Whether IRETAIL_GUEST_LISTEN is set.
origin required string (uri) | null IRETAIL_GUEST_ORIGIN, the origin printed in the tables' QR codes; null when not set.

DietTag "vegetarian" | "vegan" | "halal" | "kosher" | "gluten_free" | "lactose_free" | "spicy"

vegetarian · vegan · halal · kosher · gluten_free · lactose_free · spicy

Allergen "celery" | "crustaceans" | "eggs" | "fish" | "gluten" | "lupin" | "milk" | "mollusks" | "mustard" | "peanuts" | "sesame" | "soy" | "sulfites" | "tree_nuts" | "wheat"

celery · crustaceans · eggs · fish · gluten · lupin · milk · mollusks · mustard · peanuts · sesame · soy · sulfites · tree_nuts · wheat

MenuEntry object

item_id required string (uuid)
description required LocalizedText Up to 500 characters a language.
photo_id required string (uuid) | null
diet required array of DietTag
allergens required array of Allergen

MenuSection object

id required string
name required LocalizedText
entries required array of MenuEntry

MenuWrite object

name required LocalizedText
position integer
active required boolean
area_ids required array of string (uuid) The areas it is shown in; empty for every area.
sections required array of MenuSection

Menu object

A guest menu (spec/RESTAURANT.md, The guest menu).

id required string (uuid)
name required LocalizedText
position required integer
active required boolean
area_ids required array of string (uuid)
sections required array of MenuSection
version required integer (int64)

MenuPhoto object

id required string (uuid)
content_type required "image/jpeg" | "image/webp"
bytes required integer
width required integer
height required integer
etag required string
created_at required string (date-time)

ThemeColor string

MenuThemePut object

logo_photo_id string (uuid) | null
background required ThemeColor
text required ThemeColor
secondary_text required ThemeColor
accent required ThemeColor
on_accent required ThemeColor
font required "inter" | "noto_serif" | "noto_sans_armenian"
layout required "list" | "grid"
languages required array of "en" | "ru" | "de" | "es" | "fr" | "pl" | "hy" | "ky" | "kk" | "pt-BR"

MenuTheme object

The guest menu's look; its colors reach WCAG 2.2 contrast (spec/RESTAURANT.md, The guest menu).

logo_photo_id required string (uuid) | null
background required ThemeColor
text required ThemeColor
secondary_text required ThemeColor
accent required ThemeColor
on_accent required ThemeColor
font required "inter" | "noto_serif" | "noto_sans_armenian"
layout required "list" | "grid"
languages required array of "en" | "ru" | "de" | "es" | "fr" | "pl" | "hy" | "ky" | "kk" | "pt-BR"
version required integer (int64)

StopListEntry object

item_id required string (uuid)
until required string (date-time) | null
reason required string | null
by required string (uuid)
at required string (date-time)

StopListPut object

until string (date-time) | null
reason string | null