Main docs page Auth API Ordering API Menu API Venue API Inventory API Payment API Loyalty API Wallet API

Menu API (1.0)

Download OpenAPI specification:Download

OrderingStack menu API

Authentication

oauth2

Standard token auth

Security Scheme Type OAuth2

oauth2-client

Internal authorization between microservices

Security Scheme Type OAuth2

cache

resetCache

Reset menu cache.

Authorizations:
oauth2 (ROLE_SUROLE_MENU)

Responses

locks

getLock

Get lock definition by id

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENUROLE_VIEWMENUROLE_MENULOCKSROLE_MANAGERROLE_{venue}_MANAGERROLE_{venue}_MENULOCKS)
path Parameters
lock
required
string[a-zA-Z0-9_.-]+

Responses

deleteLock

Remove lock with provided ID.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENUROLE_MENULOCKSROLE_MANAGERROLE_{venue}_MANAGERROLE_{venue}_MENULOCKS)
path Parameters
lock
required
string[a-zA-Z0-9_.-]+

Responses

locksList

Get paginated list of Locks. This endpoint is compatible with React AdminOnRest framework to provide DataSource.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENUROLE_MENULOCKSROLE_VIEWMENUROLE_MANAGERROLE_{venue}_MANAGERROLE_{venue}_MENULOCKS)
query Parameters
required
object (LocksFilter)

Responses

postLock

Create new lock. Its ID must be new and unique. Overriding existing locks is not allowed. To alter a lock simply delete old one and create new.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENUROLE_MENULOCKSROLE_MANAGERROLE_{venue}_MANAGERROLE_{venue}_MENULOCKS)
Request Body schema: application/json

default response

id
required
string [ 3 .. 128 ] characters [a-zA-Z0-9_.-]+

ID of this lock.

products
Array of strings [ 1 .. 2147483647 ] items

IDs of locked products.

instances
Array of strings

Instances (venues) where this lock is applied.

object

Channels (like DINE_IN, DELIVERY, etc).

Responses

Request samples

Content type
application/json

basic

{
  • "id": "product_lock_1",
  • "products": [
    ],
  • "instances": [
    ],
  • "lockedInChannel": [
    ]
}

locks

Get currently set locks for instance (i.e. venue). Returns all locks with matching instance and global locks (without any instance assigned)

Authorizations:
path Parameters
instance
required
string[a-zA-Z0-9_.-]+
Example: venue-1

Responses

menu definition

getMenu

Get menu definition by ID.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENUROLE_VIEWMENUROLE_MANAGERROLE_{venue}_MANAGER)
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: MENU_default

Responses

putMenu

Update menu definition. ID in input document is overridden by the one from path. This method does upsert in database.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENU)
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: MENU_default
Request Body schema: application/json

default response

id
required
string[a-zA-Z0-9_.-]+
object

Map key refers to possible order types, like 'DELIVERY', 'TAKE_AWAY', 'DINE_IN', etc.

Responses

Request samples

Content type
application/json

basic

{
  • "id": "MENU_default",
  • "specific": {
    }
}

deleteMenu

Delete menu definition by ID.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENU)
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: MENU_default

Responses

definitionsList

Get paginated list of Menu definitions (menu sets assigned to venues). This endpoint is compatible with React AdminOnRest framework to provide DataSource.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENUROLE_VIEWMENUROLE_MANAGERROLE_{venue}_MANAGER)
query Parameters
required
object (DefinitionsFilter)

Responses

postMenu

Create new menu definition. If ID is not provided it will be generated. Otherwise this method is similar to PUT method and does upsert in database.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENU)
Request Body schema: application/json

default response

id
required
string[a-zA-Z0-9_.-]+
object

Map key refers to possible order types, like 'DELIVERY', 'TAKE_AWAY', 'DINE_IN', etc.

Responses

Request samples

Content type
application/json

basic

{
  • "id": "MENU_default",
  • "specific": {
    }
}

items

getItem

Retrieve menu item by ID from database.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENUROLE_VIEWMENUROLE_MANAGERROLE_{venue}_MANAGER)
path Parameters
item
required
string[a-zA-Z0-9_.-]+
Example: espresso

Responses

putItem

Update menu item. ID from path overrides the one provided in input object. Method does upsert in database.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENU)
path Parameters
item
required
string[a-zA-Z0-9_.-]+
Example: product-id
query Parameters
optimistic-lock
string <date-time>
Request Body schema: application/json

default response

id
required
string[a-zA-Z0-9_.-]+
object
kind
required
string
object (Details)

Override literals and media that describe product.

Array of objects (MenuItem)

Responses

Request samples

Content type
application/json
Example

category

{}

deleteItem

Deletes menu item by id. Be carefull when deleting items as they may be referenced by References in other items.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENU)
path Parameters
item
required
string[a-zA-Z0-9_.-]+
Example: product-id
query Parameters
optimistic-lock
string <date-time>

Responses

itemsList

Get paginated list of MenuItems. This endpoint is compatible with React AdminOnRest framework to provide DataSource.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENUROLE_MENULOCKSROLE_VIEWMENUROLE_MANAGERROLE_{venue}_MANAGERROLE_{venue}_MENULOCKS)
query Parameters
required
object (ItemsFilter)

Responses

postItem

Create new menu item. If ID is not provided it will be generated. Otherwise this method is similar to PUT method and does upsert in database.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENU)
Request Body schema: application/json

default response

id
required
string[a-zA-Z0-9_.-]+
object
kind
required
string
object (Details)

Override literals and media that describe product.

Array of objects (MenuItem)

Responses

Request samples

Content type
application/json
Example

category

{}

previewProduct

Preview product. Resolves references and queries to provide full product config. Nothing more (i.e. pricelists, prices and locks) is calculated here so that no sub-products are removed. Bear in mind that final product may not contain some of options due to those additional computations.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENUROLE_VIEWMENU)
query Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: menu=DEFAULT_menu

Menu identifier for computations.

channel
string [ 1 .. 32 ] characters [A-Z0-9_]+
Default: "DELIVERY"
Example: channel=DELIVERY

Channel used in menu computations.

Request Body schema: application/json

default response

id
required
string[a-zA-Z0-9_.-]+
object
kind
required
string
object (Details)

Override literals and media that describe product.

Array of objects (MenuItem)

Responses

Request samples

Content type
application/json

sample

{}

suggestItemsList

Fetch suggest list

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_MENUROLE_MENULOCKSROLE_VIEWMENUROLE_MANAGERROLE_{venue}_MANAGERROLE_{venue}_MENULOCKS)
query Parameters
required
object (SuggestItemsFilter)

Responses

menuItems

Get multiple products definition. Returns definitions of products by their IDs. All references are evaluated.

Authorizations:
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: DEFAULT_menu
query Parameters
channel
required
string [ 1 .. 32 ] characters [A-Z0-9_]+
Example: channel=DELIVERY
product
required
Array of strings [ 0 .. 20 ] items [a-zA-Z0-9_.-]+
Example: product=product-id-1
instance
required
string[a-zA-Z0-9_.-]+
Example: instance=venue-1

Responses

menuItem

Get single product definition. Returns product definition by its ID. All references are evaluated.

Authorizations:
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: DEFAULT_menu
product
required
string[a-zA-Z0-9_.-]+
Example: product-id-1
query Parameters
channel
required
string[A-Z0-9_]+
Example: channel=DELIVERY
instance
required
string[a-zA-Z0-9_.-]+
Example: instance=venue-1

Responses

search

Search for products by partial string (suggest). Returns all products which id, name or description literals contains provided string. It tries to determine locale by Accept-Locale request header and checks also name-[LOCALE] and description-[LOCALE] literals.

Authorizations:
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: DEFAULT_menu
query Parameters
required
object (SearchParams)

Responses

validateProducts

Validate products. Validates products with provided configuration of options and sub-products against product definition, current locks, etc. It also generates ProductDescription on successfull validation.

Authorizations:
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: DEFAULT_menu
query Parameters
channel
required
string [ 1 .. 32 ] characters [A-Z0-9_]+
Example: channel=DELIVERY
instance
required
string[a-zA-Z0-9_.-]+
Example: instance=venue-1
time
required
string <date-time>
Example: time=2021-01-01T10:10:00Z
Request Body schema: */*
object (ValidateProduct)

Responses

validateProduct

Validate product. Validates product with provided configuration of options and sub-products against product definition, current locks, etc. It also generates ProductDescription on successfull validation.

Authorizations:
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: DEFAULT_menu
query Parameters
channel
required
string [ 1 .. 32 ] characters [A-Z0-9_]+
Example: channel=DELIVERY
instance
required
string[a-zA-Z0-9_.-]+
Example: instance=venue-1
product
required
string[a-zA-Z0-9_.-]+
Example: product=product-id-1
time
required
string <date-time>
Example: time=2021-01-01T10:10:00Z
Request Body schema: application/json

default response

object

Selected items.

object

Merged filter based on emited filters matching selected items.

Responses

Request samples

Content type
application/json
Example

empty

{ }

export

exportMenu

Export menu.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_EXPORTROLE_EXPORTMENU)

Responses

importMenu

Import menu.

Authorizations:
oauth2-clientoauth2 (ROLE_SUROLE_IMPORTROLE_IMPORTMENU)
query Parameters
clean
boolean
Default: true

Responses

menu

menu

Get menu definition. Returns whole menu with evaluated references and queries. Also returns currently defined locks for instance.

Authorizations:
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: MENU_default
query Parameters
channel
required
string [ 1 .. 32 ] characters [A-Z0-9_]+
Example: channel=DELIVERY
instance
required
string[a-zA-Z0-9_.-]+
Example: instance=venue-1

Responses

menuSimplified

Get simplified menu definition. Returns categories and products without full product configuration.

Authorizations:
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: MENU_default
query Parameters
channel
required
string [ 1 .. 32 ] characters [A-Z0-9_]+
Example: channel=DELIVERY
instance
required
string[a-zA-Z0-9_.-]+
Example: instance=venue-1

Responses

menuItems

Get multiple products definition. Returns definitions of products by their IDs. All references are evaluated.

Authorizations:
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: DEFAULT_menu
query Parameters
channel
required
string [ 1 .. 32 ] characters [A-Z0-9_]+
Example: channel=DELIVERY
product
required
Array of strings [ 0 .. 20 ] items [a-zA-Z0-9_.-]+
Example: product=product-id-1
instance
required
string[a-zA-Z0-9_.-]+
Example: instance=venue-1

Responses

menuItem

Get single product definition. Returns product definition by its ID. All references are evaluated.

Authorizations:
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: DEFAULT_menu
product
required
string[a-zA-Z0-9_.-]+
Example: product-id-1
query Parameters
channel
required
string[A-Z0-9_]+
Example: channel=DELIVERY
instance
required
string[a-zA-Z0-9_.-]+
Example: instance=venue-1

Responses

search

Search for products by partial string (suggest). Returns all products which id, name or description literals contains provided string. It tries to determine locale by Accept-Locale request header and checks also name-[LOCALE] and description-[LOCALE] literals.

Authorizations:
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: DEFAULT_menu
query Parameters
required
object (SearchParams)

Responses

validateProducts

Validate products. Validates products with provided configuration of options and sub-products against product definition, current locks, etc. It also generates ProductDescription on successfull validation.

Authorizations:
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: DEFAULT_menu
query Parameters
channel
required
string [ 1 .. 32 ] characters [A-Z0-9_]+
Example: channel=DELIVERY
instance
required
string[a-zA-Z0-9_.-]+
Example: instance=venue-1
time
required
string <date-time>
Example: time=2021-01-01T10:10:00Z
Request Body schema: */*
object (ValidateProduct)

Responses

validateProduct

Validate product. Validates product with provided configuration of options and sub-products against product definition, current locks, etc. It also generates ProductDescription on successfull validation.

Authorizations:
path Parameters
menu
required
string[a-zA-Z0-9_.-]+
Example: DEFAULT_menu
query Parameters
channel
required
string [ 1 .. 32 ] characters [A-Z0-9_]+
Example: channel=DELIVERY
instance
required
string[a-zA-Z0-9_.-]+
Example: instance=venue-1
product
required
string[a-zA-Z0-9_.-]+
Example: product=product-id-1
time
required
string <date-time>
Example: time=2021-01-01T10:10:00Z
Request Body schema: application/json

default response

object

Selected items.

object

Merged filter based on emited filters matching selected items.

Responses

Request samples

Content type
application/json
Example

empty

{ }