Deprecated
Version 1.0 of the Menu API is deprecated and will be removed in the future. Please consider using version 1.1.
# Menu API Resources v1.0Deprecated
Each resource used in the Menu API version 1.0 is listed below.
# Brand
The brand that the menu is associated with.
Name | Required | Type | Description |
---|---|---|---|
key | false | string | The unique key for the brand. |
name | false | string | The full, official name of the brand. |
displayName | false | string | The shortened display name for the brand. |
enabled | false | boolean | Indicates if the brand is enabled or not. |
createdOn | false | date-time | The date and time the brand was created. |
modifiedOn | false | date-time | The date and time the brand was modified. |
# Sample
{
"key": "SPUR",
"name": "Spur",
"displayName": "Spur Steak Ranches",
"enabled": true,
"createdOn": "2013-09-25T13:37:28.8966667",
"modifiedOn": "2020-11-19T12:15:05.04"
}
# Image
Provides image information for sections and menu items.
Name | Required | Type | Description |
---|---|---|---|
key | false | string | The unique key for the image. Can be used with the Image API to retrieve additional information about the image. |
imageType | false | string | Indicates the type of image. Should be used to display the correct image intended for the specific use case. |
url | false | string | The URL to download the image from the CDN. The CDN supports image resizing and supports both HTTP as well as HTTPS for serving the image. See the Image API for more details. |
# Sample
{
"key": "F4270787-591D-4943-AB21-8C841C7E1B9F",
"imageType": "LandscapeImage",
"url": "images.spurcorp.com/F4270787-591D-4943-AB21-8C841C7E1B9F"
}
# Menu
Describes a full menu of items a customer may order from, grouped into sections and subsection and categorised by various other data points.
Name | Required | Type | Description |
---|---|---|---|
key | true | string | The unique key for the menu. |
version | true | int | The menu version. The same menu will have multiple versions over time. Each version will contain different items, pricing and so on. |
revision | false | int64 | The menu revision. A menu version will go through multiple revisions. This number will increment with each revision. |
name | true | string | The name of the menu. |
displayName | true | string | A display name for the menu for use within apps and websites. |
description | true | string | A description for the menu. |
status | false | string | The current status of the menu. |
statusChangedOn | false | date-time | The date and time the menu status was last changed on. |
publishStatus | false | string | The current published status of the menu. |
publishedOn | false | date-time | The date and time the menu was published on. |
brand | true | Brand | The brand the menu is for. |
defaultForBrand | true | boolean | Indicates if the menu is the default menu for the brand. The sit down menu in each brand would typically be marked as default. |
countryCode | true | string | The ISO 3166-1 Alpha-2 code for the country that the menu is intended to be used in. |
currency | true | string | The currency applicable for the pricing on the menu. |
foodTypes | true | string[] | The food types that the menu supports. |
orderingMethods | true | string[] | The ordering methods that the menu supports. |
provisioningMethods | false | string[] | The provisioning methods that the menu supports. |
availableFrom | true | string | The time of day the menu is available from. No value implies the menu is available for the duration of the individual restaurant's trading hours. |
availableTo | true | string | The time of day the menu is available to. No value implies the menu is available for the duration of the individual restaurant's trading hours. |
enabled | true | boolean | Indicates if the menu is enabled. |
effectiveFrom | true | date | The date the menu version is effective from. |
effectiveTo | true | date | The date the menu version is effective to. |
sectionCount | true | int | The number of section objects in the menu. |
sections | true | Section[] | The array of sections on the menu. |
itemCount | true | int | The number of menuItem objects in the menu. |
items | true | MenuItem[] | The array of items on the menu. |
restaurantCount | true | int | The number of restaurant objects in the menu. |
restaurants | true | Restaurant[] | The array of restaurants linked to the menu version. |
createdOn | true | date-time | The date and time the menu was created. |
modifiedOn | true | date-time | The date and time the menu was modified. |
# Sample
{
"key": "SPUR-ZA-45",
"version": 202010,
"revision": "4417846432",
"name": "DEMO MENU",
"displayName": "DEMO",
"description": "This menu is to demo new features and functionality.",
"status": "QA",
"statusChangedOn": "12/15/2020 11:08:37 AM",
"publishStatus": "Draft",
"publishedOn": null,
"brand": {
"key": "SPUR",
"name": "Spur",
"displayName": "Spur",
"enabled": true,
"createdOn": "2013-09-25T13:37:28.8966667",
"modifiedOn": "2020-11-19T12:15:05.04"
},
"defaultForBrand": false,
"countryCode": "ZA",
"currency": "ZAR",
"foodTypes": [],
"orderingMethods": [
"1st Party Ordering Platform",
"Branded App",
"ChatBot",
"Kiosk"
],
"provisioningMethods": [
"Collection",
"Delivery"
],
"availableFrom": null,
"availableTo": null,
"enabled": true,
"effectiveFrom": "2020-11-01",
"effectiveTo": "2021-12-31",
"sectionCount": 0,
"sections": [],
"itemCount": 0,
"items": [],
"restaurantCount": 0,
"restaurants": [],
"createdOn": "2020-10-20T09:05:37",
"modifiedOn": "2020-11-01T00:00:00"
}
# MenuItem
The units that a customer may order off the menu.
Name | Required | Type | Description |
---|---|---|---|
key | true | int64 | The unique key for the menu item. |
menuKey | true | string | The unique key for the menu for the menu item. |
menuVersion | true | int | The menu version for the menu item. |
itemType | true | string | The type of item. |
name | true | string | The name of the item. |
displayName | true | string | The display name of the item that should be used in apps on on the web. |
description | true | string | A description for the item. |
currency | true | string | The currency for the price of the item. |
price | true | double | The price of the item. |
tags | true | string[] | A set of tags for the menu item. |
allergens | false | string[] | A set of allergens for the menu item. |
enabled | true | boolean | Indicates if the item is enabled or not. |
sectionKey | false | int | The section key for the item's section. |
section | true | string | The menu section name for the item. |
subsectionKey | false | int | The subsection key for the item's subsection. |
subsection | true | string | The menu subsection name for the item. |
sortOrder | true | int | The sort or for the item on the section and subsection on menu. |
optionSetCount | true | int | The number of option sets for the item. |
optionSets | true | OptionSet[] | The array of option sets for the menu item. |
imageCount | false | int | The number of images for the item. |
images | false | Image[] | The array of images for the item. |
createdOn | true | date-time | The date and time the menu item was created. |
modifiedOn | true | date-time | The date and time the menu item was modified. |
# Sample
{
"key": 811001143,
"menuKey": "SPUR-ZA-45",
"menuVersion": 202010,
"itemType": "Item",
"name": "Spur Burger",
"displayName": "Original Spur Burger",
"description": null,
"currency": "ZAR",
"price": 79.90,
"tags": [],
"allergens": [
"Gluten"
],
"enabled": true,
"sectionKey": 450,
"section": "Burgers",
"subsectionKey": null,
"subsection": null,
"sortOrder": 1,
"optionSetCount": 2,
"optionSets": [
{
"key": 861000099,
"menuKey": "SPUR-ZA-45",
"menuVersion": 202010,
"optionSetType": "Options",
"name": "Single Burger Option",
"displayName": "Which patty would you like?",
"description": "Single Burger Option",
"enabled": true,
"sortOrder": 1,
"required": true,
"setMinSelect": 1,
"setMaxSelect": 1,
"doubleLinePricing": false,
"optionSetItemCount": 5,
"optionSetItems": [
{
"key": 811001217,
"menuKey": "SPUR-ZA-45",
"menuVersion": 202010,
"optionSetKey": 861000099,
"itemType": "Option",
"name": "Beef 160 (Burger Option)",
"displayName": "Beef Burger Patty",
"description": "Beef Burger Patty",
"currency": "ZAR",
"price": 0.00,
"sortOrder": 1,
"tags": [],
"allergens": [],
"enabled": true
}
]
}
],
"imageCount": 0,
"images": [],
"createdOn": "2020-04-14T21:20:29",
"modifiedOn": "2020-11-01T00:00:00"
}
# MenuItemPosItem
A representation of the menu item or option set item with information about an associated POS item.
Name | Required | Type | Description |
---|---|---|---|
key | true | int64 | The unique key for the menu item. |
menuKey | true | string | The unique key for the menu for the menu item. |
menuVersion | true | int | The menu version for the menu item. |
itemType | true | string | The type of item. |
name | true | string | The name of the item. |
currency | true | string | The currency for the price of the menu item. |
price | true | double | The price of the menu item. |
aggregated | false | boolean | Indicates if the item is aggregated. |
posItem | true | PosItem | The POS item is the item in POS that represents a menu item or option set item. |
# Sample
{
"key": 811000176,
"menuKey": "ROCO-ZA-3",
"menuVersion": 202004,
"itemType": "Item",
"name": "Classic Cheese Burger",
"currency": "ZAR",
"price": 64.00,
"aggregated": false,
"posItem": {
"key": 24713,
"pointOfSale": "Pilot",
"dataSet": "PILOT_ROCO_STD_ZA",
"dataSetVersion": "1200914",
"code": "1204",
"name": "Classic Cheese",
"currency": "ZAR",
"price": 67.00,
"enabled": true
}
}
# OptionSet
Groups option set items for customers to choose how they would like a menu item modified.
Name | Required | Type | Description |
---|---|---|---|
key | true | int64 | The unique key for the option set. |
menuKey | true | string | The unique key for the menu for the option set. |
menuVersion | true | int | The menu version for the option set. |
optionSetType | false | string | The type of option set. |
name | true | string | The name of the option set. |
displayName | true | string | The display name of the option set. |
description | true | string | A description for the option set. |
enabled | true | boolean | Indicates if the option set is enabled or not. |
sortOrder | false | int | The sort order of the option set to display. |
required | true | boolean | Indicates if a selection from the option set is required or not. |
setMinSelect | true | int | The minimum number of option set items within the set that must be selected. |
setMaxSelect | true | int | The maximum number of option set items within the set that can be selected. |
doubleLinePricing | true | boolean | Indicates if the option set should be used to display double line pricing or not. |
optionSetItemCount | true | int | The number of option set items contained within the option set. |
optionSetItems | true | OptionSetItem[] | The array of option set items for the option set. |
# Sample
{
"key": 861000099,
"menuKey": "SPUR-ZA-45",
"menuVersion": 202010,
"optionSetType": "Options",
"name": "Single Burger Option",
"displayName": "Which patty would you like?",
"description": "Single Burger Option",
"enabled": true,
"sortOrder": 1,
"required": true,
"setMinSelect": 1,
"setMaxSelect": 1,
"doubleLinePricing": false,
"optionSetItemCount": 5,
"optionSetItems": [
{
"key": 811001217,
"menuKey": "SPUR-ZA-45",
"menuVersion": 202010,
"optionSetKey": 861000099,
"itemType": "Option",
"name": "Beef 160 (Burger Option)",
"displayName": "Beef Burger Patty",
"description": "Beef Burger Patty",
"currency": "ZAR",
"price": 0.00,
"sortOrder": 1,
"tags": [],
"allergens": [],
"enabled": true
}
]
}
# OptionSetItem
The individual modifiers for a menu item.
Name | Required | Type | Description |
---|---|---|---|
key | true | int64 | The unique key for the option set item. |
menuKey | true | string | The unique key for the menu for the item. |
menuVersion | true | int | The menu version for the item. |
optionSetKey | true | int64 | The unique key for the option set the option set item is a member of. |
itemType | true | string | The type of item. |
name | true | string | The name of the option set item. |
displayName | false | string | The display name of the option set item. |
description | true | string | A description for the option set item. |
currency | true | string | The currency for the price of the option set item. |
price | true | double | The price of the option set item. |
sortOrder | true | int | The sort or for the option set item within the option set. |
tags | true | string[] | A set of tags for the option set item. |
allergens | false | string[] | A set of allergens for the option set item. |
enabled | true | boolean | Indicates if the option set item is enabled or not. |
# Sample
{
"key": 811001217,
"menuKey": "SPUR-ZA-45",
"menuVersion": 202010,
"optionSetKey": 861000099,
"itemType": "Option",
"name": "Beef 160 (Burger Option)",
"displayName": "Beef Burger Patty",
"description": "Beef Burger Patty",
"currency": "ZAR",
"price": 0.00,
"sortOrder": 1,
"tags": [],
"allergens": [],
"enabled": true
}
# PosItem
The item in POS that represents a menu item or option set item.
Name | Required | Type | Description |
---|---|---|---|
key | false | int | The unique key for the POS item. |
pointOfSale | false | string | The POS system that the item is from. |
dataSet | false | string | The POS dataset the item is from. |
dataSetVersion | false | string | The version of the dataset the item is from. |
code | false | string | The POS code for the item. |
name | false | string | The name of the item in the POS dataset. |
currency | false | string | The currency for the item price. |
price | false | double | The price of the item in POS. |
enabled | false | boolean | Indicates if the item is active or not. |
# Sample
{
"key": 24713,
"pointOfSale": "Pilot",
"dataSet": "PILOT_ROCO_STD_ZA",
"dataSetVersion": "1200914",
"code": "1204",
"name": "Classic Cheese",
"currency": "ZAR",
"price": 67.00,
"enabled": true
}
# Section
Sections are the primary grouping for menu items.
Name | Required | Type | Description |
---|---|---|---|
key | true | int64 | The unique key for the section. |
name | true | string | The name of the section. |
strapline | false | string | The strapline for the section. |
sortOrder | true | int | The sort order for the section in the menu. |
tags | false | string[] | A set of tags for the section. |
imageCount | true | int | The number of images assigned to the section. |
images | false | Image[] | The array of images for the section. |
subsectionCount | true | int | The number of subsections in the section. |
subsections | false | Subsection[] | The array of subsections for the section. |
# Sample
{
"key": 450,
"name": "Burgers",
"strapline": null,
"sortOrder": 5,
"tags": [],
"imageCount": 0,
"images": [],
"subsectionCount": 0,
"subsections": []
}
# Subsection
Subsections further break a section into smaller components.
Name | Required | Type | Description |
---|---|---|---|
key | true | int64 | The unique key for the section. |
name | true | string | The name of the section. |
strapline | false | string | The strapline for the section. |
sortOrder | true | int | The sort order for the section in the menu. |
tags | false | string[] | A set of tags for the section. |
imageCount | true | int | The number of images assigned to the subsection. |
images | false | Image[] | The array of images for the section. |
sectionKey | true | int | The key of the section that the subsection belongs to. |
sectionName | true | string | The name of the section that the subsection belongs to. |
# Sample
{
"key": 642,
"name": "Ribs",
"strapline": null,
"sortOrder": 10,
"tags": [],
"imageCount": 0,
"images": [],
"sectionKey": 451,
"sectionName": "Steaks & Ribs"
}
# Restaurant
Provides information about the restaurants that a menu could be linked to.
Name | Required | Type | Description |
---|---|---|---|
key | true | int | The unique key for the restaurant. |
name | true | string | The name of the restaurant. |
displayName | true | string | The display name of the restaurant. Suitable for displaying to customers. |
brandKey | true | string | The brand key for the restaurant. |
outletType | true | string | The type of outlet the restaurant is classified as. Values are either Restaurant or Virtual Kitchen |
tradingStatus | true | string | Describes the current trading status of the restaurant. This is not a real-time check. |
countryCode | true | string | The ISO 3166-1 Alpha-2 code of the country that the restaurant trades in. |
createdOn | false | date-time | The date and time the restaurant was created. |
modifiedOn | false | date-time | The date and time the restaurant was modified. |
# Sample
{
"key": 1232,
"name": "RM Greenpoint",
"displayName": "RocoMamas Greenpoint",
"brandKey": "ROCO",
"outletType": "Restaurant",
"tradingStatus": "Open",
"countryCode": "ZA",
"createdOn": "2015-08-21T09:11:11.6466667",
"modifiedOn": "2020-12-18T00:00:00"
}