We need to provide you a secret key to allow you to poll our system. This key must be sent in the "Authorization" header of the request. This key is unique for every restaurant location. (Example: 8yCPCvb3dDo1k).
You may create this key from the Restaurant Admin Panel -> Others (Search for the ... icon) -> 3rd party integrations -> Enabled integrations menu.
Select the template "Fetch Menu" and generate the key.
- The endpoint for fetching the menu is: https://pos.globalfoodsoft.com/pos/menu
- Method is GET
- API version must be set to: 2
- You can select the format (xml or json) by setting the "Accept" header to either "application/xml" or "application/json". Default is JSON.
curl "https://pos.globalfoodsoft.com/pos/menu" \
-X GET \
-H "Authorization: 8yCPCvb3dDo1k" \
-H "Accept: application/json" \
-H "Glf-Api-Version: 2"
See menu.json for response payload
curl "https://pos.globalfoodsoft.com/pos/menu" \
-X GET \
-H "Authorization: 8yCPCvb3dDo1k" \
-H "Accept: application/xml" \
-H "Glf-Api-Version: 2"
See menu.xml for response payload
DISCLAIMER: Results may contain some fields which are not documented here. This means that they are deprecated or only used internally. They are in the process of being removed from the Fetch Menu API. The last section includes a list of relevant fields so please expect and store only those.
The fields of a menu are:
Field | Type | Description |
---|---|---|
id | integer | id of the menu |
restaurant_id | integer | id of the restaurant |
currency | string | 3 letter currency code e.g. USD |
categories | array of menu categories | list of the menu categories |
The fields of a category are:
Field | Type | Description |
---|---|---|
id | integer | id of the menu |
name | string | name of the category |
items | array of menu items | list of the menu items linked with the category; can be empty |
groups | array of option groups | list of the option groups linked with the category; can be empty |
The fields of an item are:
Field | Type | Description |
---|---|---|
id | integer | id of the item |
name | string | name of the item |
description | string | description of the item |
price | float | price of the item |
sizes | array of sizes | list of the sizes that the item comes in; can be empty |
groups | array of option groups | list of the option groups linked with the item; can be empty |
tags | array of strings or null |
the list of possible string values inside the list are "HOT", "VEGETARIAN", "VEGAN", "GLUTEN_FREE", "HALAL", "NUT_FREE", "DAIRY_FREE", "RAW"; the null value will appear if the item has never had any tags set, otherwise it's always an array |
extras | object | See description bellow |
The extras object contains information for Allergens, Nutritional values, Order Types and Kitchen Internal Name.
The Allergens will have two implementations right now.
- menu_item_allergens_ids: The first one is an array of internal IDs for the allergens that has been deprecated and will be eliminated next year.
- menu_item_allergens_values: The seconds one is an array of objects that contain the internal id and the name of the allergen.
- menu_item_nutritional_values: This is an array of objects that contain the internal id of the nutritional value and the name of the nutritional value.
- menu_item_order_types: An array of strings with the order types in which the item is available. If this field does not exist or is null, the item is available for all order types.
- menu_item_kitchen_internal_name: A string with the internal name to be used on kitchen tickets, if available.
The fields of a size are:
Field | Type | Description |
---|---|---|
id | integer | id of the size |
name | string | name of the size |
price | float | price of the item |
default | boolean | if this size is the default size |
groups | array of option groups | list of the option groups linked with the size; can be empty |
extras | object | See description bellow |
The extras object contains information on Nutritional values. Details on Nutritional values can be found in Items / Extras / Nutritional Values
The fields of an option group are:
Field | Type | Description |
---|---|---|
id | integer | id of the group |
name | string | name of the group |
required | boolean | if selecting an item in the group is required |
allow_quantity | boolean | if the group allows options to have quantity bigger than 1 |
force_max | integer | maximum number of selected options |
force_min | integer | minimum number of selected options |
The fields of an option are:
Field | Type | Description |
---|---|---|
id | integer | id of the option |
name | string | name of the option |
price | float | price of the option |
default | boolean | if this option is the default option inside the group |
extras | object | See description bellow |
The extras object contains information on Kitchen Internal Name. Details on Kitchen Internal Name can be found in Items / Extras / Kitchen Internal Name. Inside options, it uses the key "menu_option_kitchen_internal_name".
NOTES:
- The key generated using the "Fetch Menu" template doesn't grant you access to the Accepted Orders API. More details of how to get an order once it was accepted here.