├── .gitignore
├── accepted_orders
├── ORDER.md
├── version_1
│ ├── README.md
│ ├── MENU.md
│ ├── payload
│ │ ├── menu.xml
│ │ ├── menu.json
│ │ ├── orders.xml
│ │ └── orders.json
│ └── ORDER.md
└── payload
│ ├── json
│ ├── EU_tax_model_order.json
│ └── US_tax_model_order.json
│ └── xml
│ ├── EU_tax_model_order.xml
│ └── US_tax_model_order.xml
├── client_payments
└── README.md
├── README.md
└── fetch_menu
├── README.md
└── payload
├── menu.xml
└── menu.json
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 |
--------------------------------------------------------------------------------
/accepted_orders/ORDER.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client_payments/README.md:
--------------------------------------------------------------------------------
1 | GlobalFood Client Payments API
2 | =====================================
3 |
4 | Work in progress.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | GlobalFood Integration APIs
2 | =====================================
3 |
4 | Supported integration APIs:
5 |
6 | - Accept Orders API. For documentation go [here](./accepted_orders/README.md).
7 |
8 | - Fetch Menu API. For documentation go [here](./fetch_menu/README.md).
9 |
10 | - Client Payments API. For documentation go [here](./client_payments/README.md).
--------------------------------------------------------------------------------
/accepted_orders/version_1/README.md:
--------------------------------------------------------------------------------
1 | [DEPRECATED] GlobalFood Accepted Orders API (Version 1)
2 | =====================================
3 |
4 | We offer two main APIs:
5 |
6 | 1. [Getting an order right after it was accepted by the order taking app](./ORDER.md)
7 |
8 | 2. [Fetching the restaurants menu](./MENU.md)
9 |
10 | NOTE: We no longer update the version 1 documentation. To make use of newer features please upgrade to Version 2.
--------------------------------------------------------------------------------
/accepted_orders/version_1/MENU.md:
--------------------------------------------------------------------------------
1 | Fetching the restaurant's menu
2 | =============================
3 |
4 | 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). We will provide you this key manually via email once you have created that restaurant in our system. Simply tell us the email address that you used to create the account with in our system.
5 |
6 | Making the request
7 | ------------------
8 |
9 | 1. The endpoint for fetching the menu is: https://pos.globalfoodsoft.com/pos/menu
10 | 2. Method is GET
11 | 3. API version must be set to: 1
12 | 4. You can select the format (xml or json) by setting the "Accept" header to either "application/xml" or "application/json". Default is JSON.
13 |
14 |
15 | ### Example using JSON
16 | ```
17 | curl "https://pos.globalfoodsoft.com/pos/menu" \
18 | -X GET \
19 | -H "Authorization: 8yCPCvb3dDo1k" \
20 | -H "Accept: application/json" \
21 | -H "Glf-Api-Version: 1"
22 | ```
23 |
24 | See [menu.json](./payload/menu.json) for response payload
25 |
26 | ### Example using XML
27 | ```
28 | curl "https://pos.globalfoodsoft.com/pos/menu" \
29 | -X GET \
30 | -H "Authorization: 8yCPCvb3dDo1k" \
31 | -H "Accept: application/xml" \
32 | -H "Glf-Api-Version: 1"
33 | ```
34 |
35 | See [menu.xml](./payload/menu.xml) for response payload
36 |
37 |
38 |
39 | Menu fields
40 | -----------
41 |
42 | **DISCLAIMER:**
43 | 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 Accepted Orders API. The last section includes a list of relevant fields so please expect and store only those.
44 |
45 | ### Menus
46 |
47 | The fields of a menu are:
48 |
49 | |Field|Type|Description|
50 | |---|---|---|
51 | |id |integer| id of the menu|
52 | |restaurant_id |integer| id of the restaurant|
53 | |currency |string| 3 letter currency code
e.g. USD|
54 | |categories |array of menu categories| list of the menu categories|
55 |
56 |
57 | ### Categories
58 |
59 | The fields of a category are:
60 |
61 | |Field|Type|Description|
62 | |---|---|---|
63 | |id |integer| id of the menu|
64 | |name |string| name of the category|
65 | |sort |integer| sorting order of the category; default is 0|
66 | |items |array of menu items| list of the menu items linked with the category; can be empty|
67 | |groups |array of option groups| list of the option groups linked with the category; can be empty|
68 |
69 |
70 | ### Items
71 |
72 | The fields of an item are:
73 |
74 | |Field|Type|Description|
75 | |---|---|---|
76 | |id |integer| id of the item|
77 | |name |string| name of the item|
78 | |description |string| description of the item |
79 | |price |float| price of the item|
80 | |sort |integer| sorting order of the item; default is 0|
81 | |sizes |array of sizes| list of the sizes that the item comes in; can be empty|
82 | |groups |array of option groups| list of the option groups linked with the item; can be empty|
83 |
84 |
85 | ### Sizes
86 |
87 |
88 | The fields of a size are:
89 |
90 | |Field|Type|Description|
91 | |---|---|---|
92 | |id |integer| id of the size|
93 | |name |string| name of the size|
94 | |price |float| price of the item|
95 | |default |boolean| if this size is the default size|
96 | |groups |array of option groups| list of the option groups linked with the size; can be empty|
97 |
98 |
99 | ### Option Groups
100 |
101 | The fields of an option group are:
102 |
103 | |Field|Type|Description|
104 | |---|---|---|
105 | |id |integer| id of the group|
106 | |name |string| name of the group|
107 | |required |boolean| if selecting an item in the group is required|
108 | |allow_quantity |boolean| if the group allows options to have quantity bigger than 1|
109 | |force_max |integer| maximum number of selected options|
110 | |force_min |integer| minimum number of selected options|
111 |
112 |
113 | ### Options
114 |
115 | The fields of an option are:
116 |
117 | |Field|Type|Description|
118 | |---|---|---|
119 | |id |integer| id of the option|
120 | |name |string| name of the option|
121 | |price |float| price of the option|
122 | |default |boolean| if this option is the default option inside the group|
--------------------------------------------------------------------------------
/fetch_menu/README.md:
--------------------------------------------------------------------------------
1 | Fetching the restaurant's menu API (Version 2)
2 | =============================
3 |
4 | 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).
5 |
6 | You may create this key from the Restaurant Admin Panel -> Others (Search for the ... icon) -> 3rd party integrations -> Enabled integrations menu.
7 |
8 | Select the template "Fetch Menu" and generate the key.
9 |
10 |
11 |
12 | Making the request
13 | ------------------
14 |
15 | 1. The endpoint for fetching the menu is: https://pos.globalfoodsoft.com/pos/menu
16 | 2. Method is GET
17 | 3. API version must be set to: 2
18 | 4. You can select the format (xml or json) by setting the "Accept" header to either "application/xml" or "application/json". Default is JSON.
19 |
20 |
21 | ### Example using JSON
22 | ```
23 | curl "https://pos.globalfoodsoft.com/pos/menu" \
24 | -X GET \
25 | -H "Authorization: 8yCPCvb3dDo1k" \
26 | -H "Accept: application/json" \
27 | -H "Glf-Api-Version: 2"
28 | ```
29 |
30 | See [menu.json](./payload/menu.json) for response payload
31 |
32 | ### Example using XML
33 | ```
34 | curl "https://pos.globalfoodsoft.com/pos/menu" \
35 | -X GET \
36 | -H "Authorization: 8yCPCvb3dDo1k" \
37 | -H "Accept: application/xml" \
38 | -H "Glf-Api-Version: 2"
39 | ```
40 |
41 | See [menu.xml](./payload/menu.xml) for response payload
42 |
43 |
44 |
45 | Menu fields
46 | -----------
47 |
48 | **DISCLAIMER:**
49 | 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.
50 |
51 | ### Menus
52 |
53 | The fields of a menu are:
54 |
55 | |Field|Type|Description|
56 | |---|---|---|
57 | |id |integer| id of the menu|
58 | |restaurant_id |integer| id of the restaurant|
59 | |currency |string| 3 letter currency code
e.g. USD|
60 | |categories |array of menu categories| list of the menu categories|
61 |
62 |
63 | ### Categories
64 |
65 | The fields of a category are:
66 |
67 | |Field|Type|Description|
68 | |---|---|---|
69 | |id |integer| id of the menu|
70 | |name |string| name of the category|
71 | |items |array of menu items| list of the menu items linked with the category; can be empty|
72 | |groups |array of option groups| list of the option groups linked with the category; can be empty|
73 |
74 |
75 | ### Items
76 |
77 | The fields of an item are:
78 |
79 | |Field| Type |Description|
80 | |---|---------------------------|---|
81 | |id | integer | id of the item|
82 | |name | string | name of the item|
83 | |description | string | description of the item |
84 | |price | float | price of the item|
85 | |sizes | array of sizes | list of the sizes that the item comes in; can be empty|
86 | |groups | array of option groups | list of the option groups linked with the item; can be empty|
87 | |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
88 | |extras | object | See description bellow|
89 |
90 | #### Extras
91 |
92 | The extras object contains information for [Allergens](#allergens), [Nutritional values](#nutritional-values), [Order Types](#order-types) and [Kitchen Internal Name](#kitchen-internal-name).
93 |
94 | ##### Allergens
95 |
96 | The Allergens will have two implementations right now.
97 | - 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.
98 | - menu_item_allergens_values: The seconds one is an array of objects that contain the internal id and the name of the allergen.
99 |
100 | ##### Nutritional Values
101 |
102 | - 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.
103 |
104 | ##### Order Types
105 |
106 | - 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.
107 |
108 | ##### Kitchen Internal Name
109 |
110 | - menu_item_kitchen_internal_name: A string with the internal name to be used on kitchen tickets, if available.
111 |
112 |
113 | ### Sizes
114 |
115 |
116 | The fields of a size are:
117 |
118 | |Field|Type|Description|
119 | |---|---|---|
120 | |id |integer| id of the size|
121 | |name |string| name of the size|
122 | |price |float| price of the item|
123 | |default |boolean| if this size is the default size|
124 | |groups |array of option groups| list of the option groups linked with the size; can be empty|
125 | |extras | object | See description bellow|
126 |
127 | #### Extras
128 |
129 | The extras object contains information on [Nutritional values](#nutritional-values).
130 | Details on Nutritional values can be found in [Items / Extras / Nutritional Values](#nutritional-values)
131 |
132 | ### Option Groups
133 |
134 | The fields of an option group are:
135 |
136 | |Field|Type|Description|
137 | |---|---|---|
138 | |id |integer| id of the group|
139 | |name |string| name of the group|
140 | |required |boolean| if selecting an item in the group is required|
141 | |allow_quantity |boolean| if the group allows options to have quantity bigger than 1|
142 | |force_max |integer| maximum number of selected options|
143 | |force_min |integer| minimum number of selected options|
144 |
145 |
146 | ### Options
147 |
148 | The fields of an option are:
149 |
150 | |Field|Type|Description|
151 | |---|---|---|
152 | |id |integer| id of the option|
153 | |name |string| name of the option|
154 | |price |float| price of the option|
155 | |default |boolean| if this option is the default option inside the group|
156 | |extras | object | See description bellow|
157 |
158 | #### Extras
159 |
160 | The extras object contains information on [Kitchen Internal Name](#kitchen-internal-name).
161 | Details on Kitchen Internal Name can be found in [Items / Extras / Kitchen Internal Name](#kitchen-internal-name).
162 | Inside options, it uses the key "menu_option_kitchen_internal_name".
163 |
164 | NOTES:
165 | * 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](../accepted_orders/README.md).
166 |
--------------------------------------------------------------------------------
/accepted_orders/version_1/payload/menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 4108
4 | 4172
5 | true
6 | USD
7 |
8 | 14937
9 | 4108
10 | Pizza
11 | true
12 |
13 |
14 | 127
15 | 0
16 | 2939
17 | -
18 | 58424
19 | 14937
20 | Pizza Margherita
21 | (tomato sauce, cheese)
22 | 7
23 | true
24 |
25 |
26 | 127
27 | 0
28 |
29 | 37086
30 | 58424
31 | Small
32 | 0
33 | true
34 |
35 | 16978
36 | 4108
37 | Extra Toppings (Small)
38 | 0
39 | false
40 | 1
41 | 1
42 | false
43 |
50 |
57 |
58 |
59 |
60 | 37087
61 | 58424
62 | Large
63 | 2
64 | false
65 |
66 | 16979
67 | 4108
68 | Extra Toppings (Large)
69 | 0
70 | false
71 | 1
72 | 1
73 | false
74 |
81 |
88 |
89 |
90 |
91 | -
92 | 58425
93 | 14937
94 | Pizza Prosciutto
95 | (tomato sauce, cheese, ham)
96 | 8
97 | true
98 |
99 |
100 | 127
101 | 0
102 |
103 | 37088
104 | 58425
105 | Small
106 | 0
107 | true
108 |
109 | 16978
110 | 4108
111 | Extra Toppings (Small)
112 | 0
113 | false
114 | 1
115 | 1
116 | false
117 |
124 |
131 |
132 |
133 |
134 | 37089
135 | 58425
136 | Large
137 | 2
138 | false
139 |
140 | 16979
141 | 4108
142 | Extra Toppings (Large)
143 | 0
144 | false
145 | 1
146 | 1
147 | false
148 |
155 |
162 |
163 |
164 |
165 |
166 | 16977
167 | 4108
168 | Crust
169 | 0
170 | true
171 | 1
172 | 1
173 | false
174 |
181 |
188 |
189 |
190 |
191 | 14938
192 | 4108
193 | Pasta
194 | true
195 |
196 |
197 | 127
198 | 0
199 | 2967
200 | -
201 | 58426
202 | 14938
203 | Spaghetti Bolognese
204 |
205 | 9
206 | true
207 |
208 |
209 | 127
210 | 0
211 |
212 | -
213 | 58427
214 | 14938
215 | Spaghetti Frutti di Mare
216 | (with sea food)
217 | 12
218 | true
219 |
220 |
221 | 127
222 | 0
223 |
224 |
225 |
--------------------------------------------------------------------------------
/accepted_orders/version_1/payload/menu.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 4108,
3 | "restaurant_id": 4172,
4 | "active": true,
5 | "currency": "USD",
6 | "categories": [
7 | {
8 | "id": 14937,
9 | "menu_id": 4108,
10 | "name": "Pizza",
11 | "active": true,
12 | "active_begin": null,
13 | "active_end": null,
14 | "active_days": 127,
15 | "sort": 0,
16 | "picture_id": 2939,
17 | "items": [
18 | {
19 | "id": 58424,
20 | "menu_category_id": 14937,
21 | "name": "Pizza Margherita",
22 | "description": "(tomato sauce, cheese)",
23 | "price": 7,
24 | "active": true,
25 | "active_begin": null,
26 | "active_end": null,
27 | "active_days": 127,
28 | "sort": 0,
29 | "sizes": [
30 | {
31 | "id": 37086,
32 | "menu_item_id": 58424,
33 | "name": "Small",
34 | "price": 0,
35 | "default": true,
36 | "groups": [
37 | {
38 | "id": 16978,
39 | "menu_id": 4108,
40 | "name": "Extra Toppings (Small)",
41 | "sort": 0,
42 | "required": false,
43 | "force_min": 1,
44 | "force_max": 1,
45 | "allow_quantity": false,
46 | "options": [
47 | {
48 | "id": 51188,
49 | "option_group_id": 16978,
50 | "name": "Corn",
51 | "price": 0.7,
52 | "default": false
53 | },
54 | {
55 | "id": 51189,
56 | "option_group_id": 16978,
57 | "name": "Extra mozzarella",
58 | "price": 1.2,
59 | "default": false
60 | }
61 | ]
62 | }
63 | ]
64 | },
65 | {
66 | "id": 37087,
67 | "menu_item_id": 58424,
68 | "name": "Large",
69 | "price": 2,
70 | "default": false,
71 | "groups": [
72 | {
73 | "id": 16979,
74 | "menu_id": 4108,
75 | "name": "Extra Toppings (Large)",
76 | "sort": 0,
77 | "required": false,
78 | "force_min": 1,
79 | "force_max": 1,
80 | "allow_quantity": false,
81 | "options": [
82 | {
83 | "id": 51190,
84 | "option_group_id": 16979,
85 | "name": "Corn",
86 | "price": 1.2,
87 | "default": false
88 | },
89 | {
90 | "id": 51191,
91 | "option_group_id": 16979,
92 | "name": "Extra mozzarella",
93 | "price": 1.7,
94 | "default": false
95 | }
96 | ]
97 | }
98 | ]
99 | }
100 | ],
101 | "groups": []
102 | },
103 | {
104 | "id": 58425,
105 | "menu_category_id": 14937,
106 | "name": "Pizza Prosciutto",
107 | "description": "(tomato sauce, cheese, ham)",
108 | "price": 8,
109 | "active": true,
110 | "active_begin": null,
111 | "active_end": null,
112 | "active_days": 127,
113 | "sort": 0,
114 | "sizes": [
115 | {
116 | "id": 37088,
117 | "menu_item_id": 58425,
118 | "name": "Small",
119 | "price": 0,
120 | "default": true,
121 | "groups": [
122 | {
123 | "id": 16978,
124 | "menu_id": 4108,
125 | "name": "Extra Toppings (Small)",
126 | "sort": 0,
127 | "required": false,
128 | "force_min": 1,
129 | "force_max": 1,
130 | "allow_quantity": false,
131 | "options": [
132 | {
133 | "id": 51188,
134 | "option_group_id": 16978,
135 | "name": "Corn",
136 | "price": 0.7,
137 | "default": false
138 | },
139 | {
140 | "id": 51189,
141 | "option_group_id": 16978,
142 | "name": "Extra mozzarella",
143 | "price": 1.2,
144 | "default": false
145 | }
146 | ]
147 | }
148 | ]
149 | },
150 | {
151 | "id": 37089,
152 | "menu_item_id": 58425,
153 | "name": "Large",
154 | "price": 2,
155 | "default": false,
156 | "groups": [
157 | {
158 | "id": 16979,
159 | "menu_id": 4108,
160 | "name": "Extra Toppings (Large)",
161 | "sort": 0,
162 | "required": false,
163 | "force_min": 1,
164 | "force_max": 1,
165 | "allow_quantity": false,
166 | "options": [
167 | {
168 | "id": 51190,
169 | "option_group_id": 16979,
170 | "name": "Corn",
171 | "price": 1.2,
172 | "default": false
173 | },
174 | {
175 | "id": 51191,
176 | "option_group_id": 16979,
177 | "name": "Extra mozzarella",
178 | "price": 1.7,
179 | "default": false
180 | }
181 | ]
182 | }
183 | ]
184 | }
185 | ],
186 | "groups": []
187 | }
188 | ],
189 | "groups": [
190 | {
191 | "id": 16977,
192 | "menu_id": 4108,
193 | "name": "Crust",
194 | "sort": 0,
195 | "required": true,
196 | "force_min": 1,
197 | "force_max": 1,
198 | "allow_quantity": false,
199 | "options": [
200 | {
201 | "id": 51186,
202 | "option_group_id": 16977,
203 | "name": "Fluffy",
204 | "price": 0,
205 | "default": true
206 | },
207 | {
208 | "id": 51187,
209 | "option_group_id": 16977,
210 | "name": "Crispy",
211 | "price": 0,
212 | "default": false
213 | }
214 | ]
215 | }
216 | ]
217 | },
218 | {
219 | "id": 14938,
220 | "menu_id": 4108,
221 | "name": "Pasta",
222 | "active": true,
223 | "active_begin": null,
224 | "active_end": null,
225 | "active_days": 127,
226 | "sort": 0,
227 | "picture_id": 2967,
228 | "items": [
229 | {
230 | "id": 58426,
231 | "menu_category_id": 14938,
232 | "name": "Spaghetti Bolognese",
233 | "description": "",
234 | "price": 9,
235 | "active": true,
236 | "active_begin": null,
237 | "active_end": null,
238 | "active_days": 127,
239 | "sort": 0,
240 | "sizes": [],
241 | "groups": []
242 | },
243 | {
244 | "id": 58427,
245 | "menu_category_id": 14938,
246 | "name": "Spaghetti Frutti di Mare",
247 | "description": "(with sea food)",
248 | "price": 12,
249 | "active": true,
250 | "active_begin": null,
251 | "active_end": null,
252 | "active_days": 127,
253 | "sort": 0,
254 | "sizes": [],
255 | "groups": []
256 | }
257 | ],
258 | "groups": []
259 | }
260 | ]
261 | }
--------------------------------------------------------------------------------
/accepted_orders/payload/json/EU_tax_model_order.json:
--------------------------------------------------------------------------------
1 | {
2 | "count": 1,
3 | "orders": [
4 | {
5 | "coupons": [],
6 | "tax_list": [
7 | {
8 | "type": "delivery_fee",
9 | "value": 1.6,
10 | "rate": 0.19
11 | },
12 | {
13 | "type": "tip",
14 | "value": 0.6,
15 | "rate": 0.19
16 | },
17 | {
18 | "type": "item",
19 | "value": 4.37,
20 | "rate": 0.19
21 | },
22 | {
23 | "type": "fees_discounts_subtotal",
24 | "value": 1.60,
25 | "rate": 0.19
26 | },
27 | {
28 | "type": "service_fee_total",
29 | "value": 3.20,
30 | "rate": 0.19
31 | }
32 | ],
33 | "id": 6819,
34 | "total_price": 41.14,
35 | "sub_total_price": 27.4,
36 | "tax_value": 6.57,
37 | "persons": 0,
38 | "latitude": "53.32016595583847",
39 | "longitude": "-6.394491487835694",
40 | "client_first_name": "John",
41 | "client_last_name": "Doe",
42 | "client_email": "john.doe@gmail.com",
43 | "client_phone": "+12126871225",
44 | "client_order_count": 3,
45 | "restaurant_name": "Pronto",
46 | "instructions": null,
47 | "currency": "EUR",
48 | "type": "delivery",
49 | "status": "accepted",
50 | "missed_reason": null,
51 | "source": "admin",
52 | "pin_skipped": false,
53 | "accepted_at": "2019-05-29T14:51:52.000Z",
54 | "tax_type": "GROSS",
55 | "tax_name": "VAT",
56 | "fulfill_at": "2019-05-29T15:46:52.000Z",
57 | "updated_at": "2019-05-29T15:46:52.000Z",
58 | "reference": null,
59 | "restaurant_id": 195,
60 | "client_id": 756,
61 | "restaurant_phone": "+3532983027",
62 | "restaurant_timezone": "Europe/Dublin",
63 | "delivery_zone_name": "Zone 1",
64 | "outside_delivery_area": null,
65 | "company_account_id": 100195,
66 | "pos_system_id": 28,
67 | "restaurant_key": "bvvZ3913t1cJRf8HA5OxvO2FjiSmExSly",
68 | "restaurant_country": "Ireland",
69 | "restaurant_city": "Dublin",
70 | "restaurant_state": "Dublin",
71 | "restaurant_zipcode": "031534",
72 | "restaurant_street": "main street 1",
73 | "restaurant_latitude": "53.28782521356338",
74 | "restaurant_longitude": "-6.359779471163961",
75 | "restaurant_token": "TOKEN",
76 | "api_version": 2,
77 | "payment": "ONLINE",
78 | "for_later": false,
79 | "fulfillment_option": null,
80 | "client_marketing_consent": true,
81 | "client_ip_address": "127.0.0.1",
82 | "client_address": "Main street 5, Dublin",
83 | "client_address_parts": {
84 | "street": "Main street 5",
85 | "city": "Dublin"
86 | },
87 | "delivery_by_distance": {
88 | "distance": 5,
89 | "unit": "km",
90 | "delivery_fee": 2
91 | },
92 | "items": [
93 | {
94 | "id": 27187,
95 | "name": "DELIVERY_FEE",
96 | "total_item_price": 10,
97 | "price": 10,
98 | "quantity": 1,
99 | "instructions": null,
100 | "type": "delivery_fee",
101 | "type_id": 514,
102 | "tax_rate": 0.19,
103 | "tax_value": 1.5966,
104 | "parent_id": null,
105 | "item_discount": 0,
106 | "cart_discount_rate": 0,
107 | "cart_discount": 0,
108 | "tax_type": "GROSS",
109 | "kitchen_internal_name": null,
110 | "options": []
111 | },
112 | {
113 | "id": 27188,
114 | "name": "TIP",
115 | "total_item_price": 3.74,
116 | "price": 3.74,
117 | "quantity": 1,
118 | "instructions": null,
119 | "type": "tip",
120 | "type_id": null,
121 | "tax_rate": 0.19,
122 | "tax_value": 0.5971,
123 | "parent_id": null,
124 | "item_discount": 0,
125 | "cart_discount_rate": 0,
126 | "cart_discount": 0,
127 | "tax_type": "GROSS",
128 | "kitchen_internal_name": null,
129 | "options": []
130 | },
131 | {
132 | "id": 27189,
133 | "name": "Pizza Margherita",
134 | "total_item_price": 20.4,
135 | "price": 7,
136 | "quantity": 2,
137 | "instructions": "No pepper please",
138 | "type": "item",
139 | "type_id": 841,
140 | "tax_rate": 0.19,
141 | "tax_value": 2.4304,
142 | "parent_id": null,
143 | "item_discount": 0,
144 | "cart_discount_rate": 0.15432,
145 | "cart_discount": 3.15,
146 | "tax_type": "GROSS",
147 | "kitchen_internal_name": "Pizza Margherita Internal Name",
148 | "options": [
149 | {
150 | "id": 20094,
151 | "name": "Large",
152 | "price": 2,
153 | "group_name": "Size",
154 | "quantity": 1,
155 | "type": "size",
156 | "type_id": 798,
157 | "kitchen_internal_name": null
158 | },
159 | {
160 | "id": 20095,
161 | "name": "Extra mozzarella",
162 | "price": 1.2,
163 | "group_name": "Extra Toppings (Small)",
164 | "quantity": 1,
165 | "type": "option",
166 | "type_id": 1187,
167 | "kitchen_internal_name": "Extra mozzarella Internal Name"
168 | }
169 | ]
170 | },
171 | {
172 | "id": 27190,
173 | "name": "5$ off total for first time clients",
174 | "total_item_price": 0,
175 | "price": 0,
176 | "quantity": 1,
177 | "instructions": null,
178 | "type": "promo_cart",
179 | "type_id": 226,
180 | "tax_rate": 0,
181 | "tax_value": 0,
182 | "parent_id": null,
183 | "item_discount": 5,
184 | "cart_discount_rate": 0.15432,
185 | "cart_discount": -5,
186 | "tax_type": "GROSS",
187 | "coupon": "MQGTLWWLGQRE",
188 | "kitchen_internal_name": null,
189 | "options": []
190 | },
191 | {
192 | "id": 27191,
193 | "name": "Spaghetti Frutti di Mare",
194 | "total_item_price": 12,
195 | "price": 12,
196 | "quantity": 1,
197 | "instructions": "",
198 | "type": "item",
199 | "type_id": 844,
200 | "tax_rate": 0.19,
201 | "tax_value": 0,
202 | "parent_id": 27192,
203 | "item_discount": 12,
204 | "cart_discount_rate": 0.15432,
205 | "cart_discount": 0,
206 | "tax_type": "GROSS",
207 | "kitchen_internal_name": null,
208 | "options": []
209 | },
210 | {
211 | "id": 27192,
212 | "name": "Buy one get other free",
213 | "total_item_price": 24,
214 | "price": 0,
215 | "quantity": 1,
216 | "instructions": null,
217 | "type": "promo_item",
218 | "type_id": 225,
219 | "tax_rate": 0,
220 | "tax_value": 0,
221 | "parent_id": null,
222 | "item_discount": 12,
223 | "cart_discount_rate": 0.15432,
224 | "cart_discount": 1.85,
225 | "tax_type": "GROSS",
226 | "coupon": "9VKHM77MZ434",
227 | "kitchen_internal_name": null,
228 | "options": []
229 | },
230 | {
231 | "id": 27193,
232 | "name": "Spaghetti Frutti di Mare",
233 | "total_item_price": 12,
234 | "price": 12,
235 | "quantity": 1,
236 | "instructions": "",
237 | "type": "item",
238 | "type_id": 844,
239 | "tax_rate": 0.19,
240 | "tax_value": 1.6203,
241 | "parent_id": 27192,
242 | "item_discount": 0,
243 | "cart_discount_rate": 0.15432,
244 | "cart_discount": 1.85,
245 | "tax_type": "GROSS",
246 | "kitchen_internal_name": null,
247 | "options": []
248 | },
249 | {
250 | "id": 27194,
251 | "name": "Free drink on any order $30+",
252 | "total_item_price": 5,
253 | "price": 0,
254 | "quantity": 1,
255 | "instructions": null,
256 | "type": "promo_cart_item",
257 | "type_id": 228,
258 | "tax_rate": 0,
259 | "tax_value": 0,
260 | "parent_id": null,
261 | "item_discount": 5,
262 | "cart_discount_rate": 0.15432,
263 | "cart_discount": 0,
264 | "tax_type": "GROSS",
265 | "kitchen_internal_name": null,
266 | "options": []
267 | },
268 | {
269 | "id": 27195,
270 | "name": "Cola",
271 | "total_item_price": 5,
272 | "price": 5,
273 | "quantity": 1,
274 | "instructions": "",
275 | "type": "item",
276 | "type_id": 2716,
277 | "tax_rate": 0.19,
278 | "tax_value": 0,
279 | "parent_id": 27194,
280 | "item_discount": 5,
281 | "cart_discount_rate": 0.15432,
282 | "cart_discount": 0,
283 | "tax_type": "GROSS",
284 | "kitchen_internal_name": null,
285 | "options": [
286 | {
287 | "id": 20096,
288 | "name": "Cola light",
289 | "price": 0,
290 | "group_name": "Which cola",
291 | "quantity": 1,
292 | "type": "option",
293 | "type_id": 3873,
294 | "kitchen_internal_name": null
295 | }
296 | ]
297 | },
298 | {
299 | "id": 27196,
300 | "name": "Service fee subtotal 1",
301 | "total_item_price": 5,
302 | "price": 5,
303 | "quantity": 1,
304 | "instructions": null,
305 | "type": "service_fee_subtotal",
306 | "type_id": 123,
307 | "tax_rate": 0.19,
308 | "tax_value": 1.5966,
309 | "parent_id": null,
310 | "item_discount": 0,
311 | "cart_discount_rate": 0,
312 | "cart_discount": 0,
313 | "tax_type": "GROSS",
314 | "kitchen_internal_name": null,
315 | "options": []
316 | },
317 | {
318 | "id": 27197,
319 | "name": "Service fee subtotal 2",
320 | "total_item_price": 5,
321 | "price": 5,
322 | "quantity": 1,
323 | "instructions": null,
324 | "type": "service_fee_subtotal",
325 | "type_id": 125,
326 | "tax_rate": 0.19,
327 | "tax_value": 0.7983,
328 | "parent_id": null,
329 | "item_discount": 0,
330 | "cart_discount_rate": 0,
331 | "cart_discount": 0,
332 | "tax_type": "GROSS",
333 | "kitchen_internal_name": null,
334 | "options": []
335 | },
336 | {
337 | "id": 27198,
338 | "name": "Cash discount",
339 | "total_item_price": -5,
340 | "price": -5,
341 | "quantity": 1,
342 | "instructions": null,
343 | "type": "cash_discount",
344 | "type_id": 125,
345 | "tax_rate": 0.19,
346 | "tax_value": 0.7983,
347 | "parent_id": null,
348 | "item_discount": 0,
349 | "cart_discount_rate": 0,
350 | "cart_discount": 0,
351 | "tax_type": "GROSS",
352 | "kitchen_internal_name": null,
353 | "options": []
354 | },
355 | {
356 | "id": 27199,
357 | "name": "Service fee total",
358 | "total_item_price": 20,
359 | "price": 20,
360 | "quantity": 1,
361 | "instructions": null,
362 | "type": "service_fee_total",
363 | "type_id": 514,
364 | "tax_rate": 0.19,
365 | "tax_value": 3.1932,
366 | "parent_id": null,
367 | "item_discount": 0,
368 | "cart_discount_rate": 0,
369 | "cart_discount": 0,
370 | "tax_type": "GROSS",
371 | "kitchen_internal_name": null,
372 | "options": []
373 | }
374 | ]
375 | }
376 | ]
377 | }
378 |
--------------------------------------------------------------------------------
/accepted_orders/payload/json/US_tax_model_order.json:
--------------------------------------------------------------------------------
1 | {
2 | "count": 1,
3 | "orders": [
4 | {
5 | "coupons": [],
6 | "tax_list": [
7 | {
8 | "type": "delivery_fee",
9 | "value": 1.9,
10 | "rate": 0.19
11 | },
12 | {
13 | "type": "tip",
14 | "value": 1.1,
15 | "rate": 0.19
16 | },
17 | {
18 | "type": "item",
19 | "value": 9.08,
20 | "rate": 0.19
21 | },
22 | {
23 | "type": "fees_discounts_subtotal",
24 | "value": 1.90,
25 | "rate": 0.19
26 | },
27 | {
28 | "type": "service_fee_total",
29 | "value": 3.80,
30 | "rate": 0.19
31 | }
32 | ],
33 | "id": 6816,
34 | "total_price": 75.66,
35 | "sub_total_price": 47.8,
36 | "tax_value": 12.08,
37 | "persons": 0,
38 | "latitude": "40.802554599183225",
39 | "longitude": "-73.9407224846558",
40 | "client_first_name": "John",
41 | "client_last_name": "Doe",
42 | "client_email": "john.doe@gmail.com",
43 | "client_phone": "+12126871225",
44 | "client_order_count": 3,
45 | "restaurant_name": "Pronto",
46 | "instructions": "Please call when you arrive at the gate",
47 | "currency": "USD",
48 | "type": "delivery",
49 | "status": "accepted",
50 | "missed_reason": null,
51 | "source": "admin",
52 | "pin_skipped": false,
53 | "accepted_at": "2019-05-29T14:45:19.000Z",
54 | "tax_type": "NET",
55 | "tax_name": "Sales tax",
56 | "fulfill_at": "2019-05-29T15:40:19.000Z",
57 | "updated_at": "2019-05-29T15:40:19.000Z",
58 | "reference": null,
59 | "restaurant_id": 195,
60 | "client_id": 756,
61 | "restaurant_phone": "+12126871145",
62 | "restaurant_timezone": "America/New_York",
63 | "delivery_zone_name": "Zone 1",
64 | "outside_delivery_area": null,
65 | "company_account_id": 100195,
66 | "pos_system_id": 28,
67 | "restaurant_key": "bvvZ3913t1cJRf8HA5OxvO2FjiSmExSly",
68 | "restaurant_country": "United States",
69 | "restaurant_city": "Manhattan",
70 | "restaurant_state": "New York",
71 | "restaurant_zipcode": "031534",
72 | "restaurant_street": "Park avenue 78",
73 | "restaurant_latitude": "40.75009928615015",
74 | "restaurant_longitude": "-73.97940823862302",
75 | "restaurant_token": "TOKEN",
76 | "api_version": 2,
77 | "payment": "ONLINE",
78 | "for_later": false,
79 | "fulfillment_option": null,
80 | "client_marketing_consent": true,
81 | "client_ip_address": "127.0.0.1",
82 | "client_address": "Park avenue 121, Manhattan",
83 | "client_address_parts": {
84 | "street": "Park avenue 121",
85 | "city": "Manhattan"
86 | },
87 | "delivery_by_distance": {
88 | "distance": 5,
89 | "unit": "mile",
90 | "delivery_fee": 2
91 | },
92 | "items": [
93 | {
94 | "id": 27160,
95 | "name": "DELIVERY_FEE",
96 | "total_item_price": 10,
97 | "price": 10,
98 | "quantity": 1,
99 | "instructions": null,
100 | "type": "delivery_fee",
101 | "type_id": null,
102 | "tax_rate": 0.19,
103 | "tax_value": 1.9,
104 | "parent_id": null,
105 | "item_discount": 0,
106 | "cart_discount_rate": 0,
107 | "cart_discount": 0,
108 | "tax_type": "NET",
109 | "kitchen_internal_name": null,
110 | "options": []
111 | },
112 | {
113 | "id": 27161,
114 | "name": "TIP",
115 | "total_item_price": 6.88,
116 | "price": 6.88,
117 | "quantity": 1,
118 | "instructions": null,
119 | "type": "tip",
120 | "type_id": null,
121 | "tax_rate": 0.19,
122 | "tax_value": 1.0985,
123 | "parent_id": null,
124 | "item_discount": 0,
125 | "cart_discount_rate": 0,
126 | "cart_discount": 0,
127 | "tax_type": "GROSS",
128 | "kitchen_internal_name": null,
129 | "options": []
130 | },
131 | {
132 | "id": 27162,
133 | "name": "Pizza Margherita",
134 | "total_item_price": 40.8,
135 | "price": 7,
136 | "quantity": 4,
137 | "instructions": "No pepper please",
138 | "type": "item",
139 | "type_id": 841,
140 | "tax_rate": 0.19,
141 | "tax_value": 6.1923,
142 | "parent_id": null,
143 | "item_discount": 0,
144 | "cart_discount_rate": 0.0947,
145 | "cart_discount": 3.86,
146 | "tax_type": "NET",
147 | "kitchen_internal_name": "Pizza Margherita Internal Name",
148 | "options": [
149 | {
150 | "id": 20085,
151 | "name": "Large",
152 | "price": 2,
153 | "group_name": "Size",
154 | "quantity": 1,
155 | "type": "size",
156 | "type_id": 798,
157 | "kitchen_internal_name": null
158 | },
159 | {
160 | "id": 20086,
161 | "name": "Extra mozzarella",
162 | "price": 1.2,
163 | "group_name": "Extra Toppings (Small)",
164 | "quantity": 1,
165 | "type": "option",
166 | "type_id": 1187,
167 | "kitchen_internal_name": "Extra mozzarella Internal Name"
168 | }
169 | ]
170 | },
171 | {
172 | "id": 27163,
173 | "name": "5$ off total for first time clients",
174 | "total_item_price": 0,
175 | "price": 0,
176 | "quantity": 1,
177 | "instructions": null,
178 | "type": "promo_cart",
179 | "type_id": 226,
180 | "tax_rate": 0,
181 | "tax_value": 0,
182 | "parent_id": null,
183 | "item_discount": 5,
184 | "cart_discount_rate": 0.0947,
185 | "cart_discount": -5,
186 | "tax_type": "NET",
187 | "coupon": "MQGTLWWLGQRE",
188 | "kitchen_internal_name": null,
189 | "options": []
190 | },
191 | {
192 | "id": 27164,
193 | "name": "Free drink on any order $30+",
194 | "total_item_price": 5,
195 | "price": 0,
196 | "quantity": 1,
197 | "instructions": null,
198 | "type": "promo_cart_item",
199 | "type_id": 228,
200 | "tax_rate": 0,
201 | "tax_value": 0,
202 | "parent_id": null,
203 | "item_discount": 5,
204 | "cart_discount_rate": 0.0947,
205 | "cart_discount": 0,
206 | "tax_type": "NET",
207 | "kitchen_internal_name": null,
208 | "options": []
209 | },
210 | {
211 | "id": 27165,
212 | "name": "Spaghetti Frutti di Mare",
213 | "total_item_price": 12,
214 | "price": 12,
215 | "quantity": 1,
216 | "instructions": "",
217 | "type": "item",
218 | "type_id": 844,
219 | "tax_rate": 0.19,
220 | "tax_value": 0,
221 | "parent_id": 27166,
222 | "item_discount": 12,
223 | "cart_discount_rate": 0.0947,
224 | "cart_discount": 0,
225 | "tax_type": "NET",
226 | "kitchen_internal_name": null,
227 | "options": []
228 | },
229 | {
230 | "id": 27166,
231 | "name": "Buy one get other free",
232 | "total_item_price": 24,
233 | "price": 0,
234 | "quantity": 1,
235 | "instructions": null,
236 | "type": "promo_item",
237 | "type_id": 225,
238 | "tax_rate": 0,
239 | "tax_value": 0,
240 | "parent_id": null,
241 | "item_discount": 12,
242 | "cart_discount_rate": 0.0947,
243 | "cart_discount": 1.14,
244 | "tax_type": "NET",
245 | "coupon": "9VKHM77MZ434",
246 | "kitchen_internal_name": null,
247 | "options": []
248 | },
249 | {
250 | "id": 27167,
251 | "name": "Spaghetti Frutti di Mare",
252 | "total_item_price": 12,
253 | "price": 12,
254 | "quantity": 1,
255 | "instructions": "",
256 | "type": "item",
257 | "type_id": 844,
258 | "tax_rate": 0.19,
259 | "tax_value": 2.0641,
260 | "parent_id": 27166,
261 | "item_discount": 0,
262 | "cart_discount_rate": 0.0947,
263 | "cart_discount": 1.14,
264 | "tax_type": "NET",
265 | "kitchen_internal_name": null,
266 | "options": []
267 | },
268 | {
269 | "id": 27168,
270 | "name": "Cola",
271 | "total_item_price": 5,
272 | "price": 5,
273 | "quantity": 1,
274 | "instructions": "",
275 | "type": "item",
276 | "type_id": 2716,
277 | "tax_rate": 0.19,
278 | "tax_value": 0,
279 | "parent_id": 27164,
280 | "item_discount": 5,
281 | "cart_discount_rate": 0.0947,
282 | "cart_discount": 0,
283 | "tax_type": "NET",
284 | "kitchen_internal_name": null,
285 | "options": [
286 | {
287 | "id": 20087,
288 | "name": "Cola light",
289 | "price": 0,
290 | "group_name": "Which cola",
291 | "quantity": 1,
292 | "type": "option",
293 | "type_id": 3873,
294 | "kitchen_internal_name": null
295 | }
296 | ]
297 | },
298 | {
299 | "id": 27196,
300 | "name": "Service fee subtotal 1",
301 | "total_item_price": 5,
302 | "price": 5,
303 | "quantity": 1,
304 | "instructions": null,
305 | "type": "service_fee_subtotal",
306 | "type_id": 123,
307 | "tax_rate": 0.19,
308 | "tax_value": 1.900,
309 | "parent_id": null,
310 | "item_discount": 0,
311 | "cart_discount_rate": 0,
312 | "cart_discount": 0,
313 | "tax_type": "NET",
314 | "kitchen_internal_name": null,
315 | "options": []
316 | },
317 | {
318 | "id": 27197,
319 | "name": "Service fee subtotal 2",
320 | "total_item_price": 5,
321 | "price": 5,
322 | "quantity": 1,
323 | "instructions": null,
324 | "type": "service_fee_subtotal",
325 | "type_id": 125,
326 | "tax_rate": 0.19,
327 | "tax_value": 0.9500,
328 | "parent_id": null,
329 | "item_discount": 0,
330 | "cart_discount_rate": 0,
331 | "cart_discount": 0,
332 | "tax_type": "NET",
333 | "kitchen_internal_name": null,
334 | "options": []
335 | },
336 | {
337 | "id": 27198,
338 | "name": "Cash discount",
339 | "total_item_price": -5,
340 | "price": -5,
341 | "quantity": 1,
342 | "instructions": null,
343 | "type": "cash_discount",
344 | "type_id": 125,
345 | "tax_rate": 0.19,
346 | "tax_value": 0.9500,
347 | "parent_id": null,
348 | "item_discount": 0,
349 | "cart_discount_rate": 0,
350 | "cart_discount": 0,
351 | "tax_type": "NET",
352 | "kitchen_internal_name": null,
353 | "options": []
354 | },
355 | {
356 | "id": 27199,
357 | "name": "Service fee total",
358 | "total_item_price": 20,
359 | "price": 20,
360 | "quantity": 1,
361 | "instructions": null,
362 | "type": "service_fee_total",
363 | "type_id": 514,
364 | "tax_rate": 0.19,
365 | "tax_value": 3.800,
366 | "parent_id": null,
367 | "item_discount": 0,
368 | "cart_discount_rate": 0,
369 | "cart_discount": 0,
370 | "tax_type": "NET",
371 | "kitchen_internal_name": null,
372 | "options": []
373 | }
374 | ]
375 | }
376 | ]
377 | }
378 |
--------------------------------------------------------------------------------
/accepted_orders/version_1/ORDER.md:
--------------------------------------------------------------------------------
1 | Getting an order
2 | ================
3 |
4 | GlobalFood offers two integration methods for getting new orders:
5 |
6 | - Push (Cloud system)
7 | - Poll (Local system)
8 |
9 |
10 | Push (Cloud system)
11 | ----------------------
12 |
13 | This type of integration is recommended for systems with a centralized architecture. In this scenario an endpoint is notified via webhook that one or more orders have been accepted for one or more of the system's client restaurants.
14 |
15 |
16 | **You need to provide us with:**
17 |
18 | 1. A public HTTPS endpoint that interprets our calls over the POST method
19 | eg: https://www.your-domain.com/integration/orderingsystem
20 |
21 | 2. Tell us which format you like (XML or JSON)
22 |
23 |
24 |
25 | **Map orders to correct restaurants:**
26 |
27 | You need to identify which restaurant you need to assign an order to. Every order that we push to you contains the parameter which is unique to each restaurant location. We will provide you this key manually via email once you have created that restaurant in our system. Simply tell us the email address that you used to create the account within our system. You can see in the XML & JSON example below that the example key is 8yCPCvb3dDo1k.
28 |
29 |
30 |
31 | **Add optional security:**
32 |
33 | By default we send a master key alongside each request in the "Authorization" (example: e6fIguVkyG5xtT3BYGMI4rfm9iVt24YJ) header of the request. This key can be used by you to verify that the sender is us. Otherwise any third party that knows your URL https://www.your-domain.com/integration/orderingsystem could try to push a "fake" order.
34 |
35 |
36 | ### Example using JSON
37 |
38 | We will call
39 | ```
40 | POST https://www.your-domain.com/integration/orderingsystem
41 | ```
42 | with the payload found in [examples](./payload/orders.json)
43 |
44 |
45 |
46 | ### Example using XML
47 |
48 | We will call
49 | ```
50 | POST https://www.your-domain.com/integration/orderingsystem
51 | ```
52 | with the payload found in [examples](./payload/orders.xml)
53 |
54 |
55 | Poll (Local system)
56 | ----------------------
57 |
58 | This type of integration is recommended for systems with a decentralized architecture. In this scenario the restaurant device does not communicate with a central endpoint for notifications. The devices poll our server every minute to check for new confirmed order notifications. An example for "Polling" is when the device is behind a firewall inside the restaurant location and does not have a connection with a server in the cloud. When using polling, the orders will be available for an unlimited amount of time until being requested by the device.
59 |
60 |
61 | **We need to provide you:**
62 |
63 | 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). We will provide you this key manually via email once you have created that restaurant in our system. Simply tell us the email address that you used to create the account with in our system.
64 |
65 |
66 | **Polling:**
67 |
68 | 1. The endpoint for polling is: https://pos.globalfoodsoft.com/pos/order/pop
69 | 2. Method is POST
70 | 3. API version must be set to: 1
71 | 4. You can select the format (xml or json) by setting the "Accept" header to either "application/xml" or "application/json". Default is JSON.
72 |
73 |
74 | ### Example using JSON
75 | ```
76 | curl "https://pos.globalfoodsoft.com/pos/order/pop" \
77 | -X POST \
78 | -H "Authorization: 8yCPCvb3dDo1k" \
79 | -H "Accept: application/json" \
80 | -H "Glf-Api-Version: 1"
81 | ```
82 |
83 | See [examples](./payload/orders.json) for response payload
84 |
85 |
86 | ### Example using XML
87 | ```
88 | curl "https://pos.globalfoodsoft.com/pos/order/pop" \
89 | -X POST \
90 | -H "Authorization: 8yCPCvb3dDo1k" \
91 | -H "Accept: application/xml" \
92 | -H "Glf-Api-Version: 1"
93 | ```
94 |
95 | See [examples](./payload/orders.xml) for response payload
96 |
97 |
98 | Order fields
99 | ------------
100 |
101 | **DISCLAIMER:**
102 | 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 Accepted Orders API. The last section includes a list of relevant fields so please expect and store only those.
103 |
104 |
105 | **NOTES:**
106 | - all rates are decimals, meaning that 20% will be stored as 0.2 and 0.725% will be stored as 0.00725
107 | - some fields can contain null; in JSON null is treated as a separate type, in XML it's a self-closing element; the meaning of null is "field has not been used"
108 |
109 |
110 | ### Order Collections
111 |
112 | The fields of an order collection are:
113 |
114 | |Field|Type|Description|
115 | |---|---|---|
116 | |count |integer | number of orders to be fetched by the system|
117 | |orders |array of orders | list of the orders|
118 |
119 |
120 | ### Orders
121 |
122 | The fields of an order are:
123 |
124 | |Field|Type|Description|
125 | |---|---|---|
126 | |id |integer| order id|
127 | |api_version |integer| version of the accepted orders api|
128 | |type |string| 'pickup' or 'delivery'|
129 | |pickup_payment |string or null| payment method used when type is 'pickup', null otherwise; can be:
'CASH' - cash at the register
'ONLINE' - card using online payment
'CARD' - card at the register
'CARD_PHONE' - card details by phone|
130 | |delivery_payment |string or null| payment method used when type is 'delivery', null otherwise; can be:
'CASH' - cash at the register
'ONLINE' - card using online payment
'CARD' - card at the register
'CARD_PHONE' - card details by phone|
131 | |fulfill_time |string| UTC date string of when the order will be delivered or picked up|
132 | |instructions |string or null| order instructions|
133 | |restaurant_id |integer| restaurant id|
134 | |restaurant_name |string| name of the restaurant|
135 | |restaurant_key |string| authorization key of the restaurant|
136 | |restaurant_token |string| token or id of the corresponding restaurant in your system; this is set by adding it to the integration in the Admin panel|
137 | |currency |string| three letter currency code
e.g. 'USD'|
138 | |user_id |integer| client id|
139 | |client_first_name |string| client first name|
140 | |client_last_name |string| client last name|
141 | |client_email |string| client email|
142 | |client_phone |string| client phone|
143 | |client_address |string| client delivery address; it's an empty string when order is pickup
144 | |client_address_parts |object| client delivery address components; can contain the following components:
- street
- bloc
- floor
- apartment
- intercom
- more_address (in case extended address is not enabled)
- zipcode
- city
- full_address (legacy orders or order is pickup)
145 | |billing_details |object| 'person_name' - First and last name (Person)
'person_doc_number' - Document number (Person)
'company_name' - Company name (Company)
'company_doc_number' - Document number (Company)
'fiscal_address' - Address (Person or company)
'type' = 'doctype_person_cc' - Citizenship card (Person)
'type' = 'doctype_person_ce' - Foreign citizenship card (Person)
'type' = 'doctype_person_ti' - Identity Card (Person)
'type' = 'doctype_person_pp' - Passport (Person)
'type' = 'doctype_company_nit' - Tax identification number (Company)
'type_prefix' - Depends on the country
ARGENTINA: Ticket / DNI (Person) / CUIT (Company)
BOLIVIA: Ticket / CI (Person) / NIT (Company)
BRAZIL: Boleta / CI (Person) / CNPJ (Company)
CHILE: Boleta / CI (Person) / RUT (Company)
COLOMBIA: Boleta / CC (Person) / CE (Person) / NIT (Company)
COSTA RICA: Boleta / CI (Person) / NITE (Company)
DOMINICA: Receipt / CI (Person) / RNC (Company)
DOMINICAN REPUBLIC: Factura de Consumo / CIE (Person) / RNC (Company)
ECUADOR: Nota de venta / CI (Person) / RUC (Company)
EL SALVADOR: Boleta / DUI (Person) / NIT (Company)
GUATEMALA: Ticket / DPI (Person) / RTU (Company)
HONDURAS: Ticket / TI (Person) / RTN (Company)
MEXICO: Ticket / CURP (Person) / RFC (Company)
NICARAGUA: Ticket / CI (Person) / RUC (Company)
PANAMA: Boleta / CIP (Person) / NIT (Company)
PARAGUAY: Ticket / CI (Person) / RUC (Company)
PERU: Boleta / CEXT (Person) / DNI (Person) / PASS (Person) / RUC (Company)
URUGUAY: Boleta / CI (Person) / RUT (Company)
VENEZUELA: Boleta / CI (Person) / RIF (Company)
146 | |latitude |string or null| latitude of the client delivery address; null when order type is pickup|
147 | |longitude |string or null| longitude of the client delivery address; null when order type is pickup|
148 | |total_price |float| total including taxes|
149 | |sub_total_price |float| sub-total, not including tip, delivery fee and, only in 'NET' tax calculations, taxes on items|
150 | |sales_tax_type |string| how the default taxation is applied, can be either 'NET' or 'GROSS'|
151 | |taxes |float| total value of all the taxes|
152 | |sales_tax_label |string| name of default tax
e.g. 'VAT', 'Sales Tax'|
153 | |coupons |array of integers| list of promotion ids corresponding to coupon codes used during the ordering process (including those which were not applied in the end)|
154 | |items |array of order items| list of order items|
155 |
156 |
157 | ### Order Items
158 |
159 | The fields of an order item are:
160 |
161 | |Field|Type|Description|
162 | |---|---|---|
163 | |id |integer| order item id|
164 | |name |string| order item name |
165 | |instructions |string or null| order item instructions|
166 | |type |string| type of order item; can be:
- 'item' - item on the menu
- 'delivery_fee' - the delivery fee
- 'tip' - the tip
- 'promo_cart' - cart promotion (which applies to the entire cart, like discount on the cart total)
- 'promo_item' - item promotion (which applies to child items, that have parent_id equal to the id of this item)|
167 | |type_id |integer or null| id of the original menu item or promotion used to create the order item; it's null for 'delivery_fee' and 'tip'|
168 | |parent_id |integer or null| usually null except if the id of the parent order item has the following two conditions: item is of type 'item' and it belongs to another item of type 'promo_item'|
169 | |total_item_price |float| total price of the item taking into account quantity and options. In case type is 'promo_item' then it uses the child order items. In any case it does not include discounts|
170 | |tax_type |string| how taxation is applied, can be either 'NET' or 'GROSS'|
171 | |tax_value |float| value of the taxes; not calculated on items of type 'item' if they are children of type 'promo_item'; it's not calculated if type is 'promo_cart'|
172 | |tax_rate |float| rate used to calculate taxes; can be different for any item|
173 | |price |float| base price of the item, no quantity and no options; if tax_type is 'GROSS' then it also includes the tax_value|
174 | |quantity |integer| quantity of the item|
175 | |discount |float| discount applied to the item as a result of item promotions OR the total discount of an item of type 'promo_cart'|
176 | |total_discount_value |float| discount applied to the item as a result of cart promotions|
177 | |total_discount_rate |float| rate used to apply all of the cart promotions; if you have multiple cart promotions (type is 'promo_cart) then their rates are added up here|
178 | |options |array of item options| list of item options like sizes, toppings or addons|
179 |
180 |
181 |
182 | ### Item Options
183 |
184 | The fields of an item option are:
185 |
186 | |Field|Type|Description|
187 | |---|---|---|
188 | |id |integer| item option id|
189 | |name |string| item option name|
190 | |group_name |string| name of the option group
e.g. name of option is Ketchup, group_name is Sauces|
191 | |type |string| item option type; can be either 'option' or 'size'|
192 | |quantity |integer| quantity of the item option|
193 | |price |float| base price of the item option, does not use quantity|
194 |
--------------------------------------------------------------------------------
/accepted_orders/payload/xml/EU_tax_model_order.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 1
4 |
5 |
6 | delivery_fee
7 | 1.6
8 | 0.19
9 |
10 |
11 | tip
12 | 0.6
13 | 0.19
14 |
15 |
16 | item
17 | 4.37
18 | 0.19
19 |
20 |
21 | fees_discounts_subtotal
22 | 1.60
23 | 0.19
24 |
25 |
26 | service_fee_total
27 | 3.20
28 | 0.19
29 |
30 | 6819
31 | 41.14
32 | 27.4
33 | 6.57
34 | 0
35 | 53.32016595583847
36 | -6.394491487835694
37 | John
38 | Doe
39 | john.doe@gmail.com
40 | +12126871225
41 | 3
42 | Pronto
43 |
44 | EUR
45 | delivery
46 | accepted
47 |
48 | admin
49 | false
50 | 2019-05-29T14:51:52.000Z
51 | GROSS
52 | VAT
53 | 2019-05-29T15:46:52.000Z
54 | 2019-05-29T15:46:52.000Z
55 |
56 | 195
57 | 756
58 | +3532983027
59 | Europe/Dublin
60 | Zone 1
61 | null
62 | 100195
63 | 29
64 | LnCRs1RB9h91E27r5l4vvybBTkXIh7evG
65 | Ireland
66 | Dublin
67 | Dublin
68 | 031534
69 | main street 1
70 | 53.28782521356338
71 | -6.359779471163961
72 | TOKEN
73 | 2
74 | ONLINE
75 | false
76 | null
77 | true
78 | 127.0.0.1
79 | Main street 5, Dublin
80 |
81 | Main street 5
82 | Dublin
83 |
84 |
85 | 5
86 | km
87 | 2
88 |
89 | -
90 | 27187
91 | DELIVERY_FEE
92 | 10
93 | 10
94 | 1
95 |
96 | delivery_fee
97 | 514
98 | 0.19
99 | 1.5966
100 |
101 | 0
102 | 0
103 | 0
104 | GROSS
105 |
106 |
107 | -
108 | 27188
109 | TIP
110 | 3.74
111 | 3.74
112 | 1
113 |
114 | tip
115 |
116 | 0.19
117 | 0.5971
118 |
119 | 0
120 | 0
121 | 0
122 | GROSS
123 |
124 |
125 | -
126 | 27189
127 | Pizza Margherita
128 | 20.4
129 | 7
130 | 2
131 | No pepper please
132 | item
133 | 841
134 | 0.19
135 | 2.4304
136 |
137 | 0
138 | 0.15432
139 | 3.15
140 | GROSS
141 | Pizza Margherita Internal Name
142 |
152 |
162 |
163 | -
164 | 27190
165 | 5$ off total for first time clients
166 | 0
167 | 0
168 | 1
169 |
170 | promo_cart
171 | 226
172 | 0
173 | 0
174 |
175 | 5
176 | 0.15432
177 | -5
178 | GROSS
179 | MQGTLWWLGQRE
180 |
181 |
182 | -
183 | 27191
184 | Spaghetti Frutti di Mare
185 | 12
186 | 12
187 | 1
188 |
189 | item
190 | 844
191 | 0.19
192 | 0
193 | 27192
194 | 12
195 | 0.15432
196 | 0
197 | GROSS
198 |
199 |
200 | -
201 | 27192
202 | Buy one get other free
203 | 24
204 | 0
205 | 1
206 |
207 | promo_item
208 | 225
209 | 0
210 | 0
211 |
212 | 12
213 | 0.15432
214 | 1.85
215 | GROSS
216 | 9VKHM77MZ434
217 |
218 |
219 | -
220 | 27193
221 | Spaghetti Frutti di Mare
222 | 12
223 | 12
224 | 1
225 |
226 | item
227 | 844
228 | 0.19
229 | 1.6203
230 | 27192
231 | 0
232 | 0.15432
233 | 1.85
234 | GROSS
235 |
236 |
237 | -
238 | 27194
239 | Free drink on any order $30+
240 | 5
241 | 0
242 | 1
243 |
244 | promo_cart_item
245 | 228
246 | 0
247 | 0
248 |
249 | 5
250 | 0.15432
251 | 0
252 | GROSS
253 |
254 |
255 | -
256 | 27195
257 | Cola
258 | 5
259 | 5
260 | 1
261 |
262 | item
263 | 2716
264 | 0.19
265 | 0
266 | 27194
267 | 5
268 | 0.15432
269 | 0
270 | GROSS
271 |
272 |
282 |
283 | -
284 | 27196
285 | Service fee subtotal 1
286 | 10
287 | 10
288 | 1
289 |
290 | service_fee_subtotal
291 | 123
292 | 0.19
293 | 1.5966
294 |
295 | 0
296 | 0
297 | 0
298 | GROSS
299 |
300 |
301 | -
302 | 27197
303 | Service fee subtotal 2
304 | 5
305 | 5
306 | 1
307 |
308 | service_fee_subtotal
309 | 125
310 | 0.19
311 | 0.7983
312 |
313 | 0
314 | 0
315 | 0
316 | GROSS
317 |
318 |
319 | -
320 | 27198
321 | Cash discount
322 | 5
323 | -5
324 | 1
325 |
326 | cash_discount
327 | 125
328 | 0.19
329 | -0.7983
330 |
331 | 0
332 | 0
333 | 0
334 | GROSS
335 |
336 |
337 | -
338 | 27199
339 | Service fee total
340 | 20
341 | 20
342 | 1
343 |
344 | service_fee_total
345 | 124
346 | 0.19
347 | 3.1932
348 |
349 | 0
350 | 0
351 | 0
352 | GROSS
353 |
354 |
355 |
356 |
357 |
--------------------------------------------------------------------------------
/accepted_orders/payload/xml/US_tax_model_order.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 1
4 |
5 |
6 | delivery_fee
7 | 1.9
8 | 0.19
9 |
10 |
11 | tip
12 | 1.1
13 | 0.19
14 |
15 |
16 | item
17 | 9.08
18 | 0.19
19 |
20 |
21 | fees_discounts_subtotal
22 | 1.90
23 | 0.19
24 |
25 |
26 | service_fee_total
27 | 3.80
28 | 0.19
29 |
30 | 6816
31 | 75.66
32 | 47.8
33 | 12.08
34 | 0
35 | 40.802554599183225
36 | -73.9407224846558
37 | John
38 | Doe
39 | john.doe@gmail.com
40 | +12126871225
41 | 3
42 | Pronto
43 | Please call when you arrive at the gate
44 | USD
45 | delivery
46 | accepted
47 |
48 | admin
49 | false
50 | 2019-05-29T14:45:19.000Z
51 | NET
52 | Sales tax
53 | 2019-05-29T15:40:19.000Z
54 | 2019-05-29T15:40:19.000Z
55 |
56 | 195
57 | 756
58 | +12126871145
59 | America/New_York
60 | Zone 1
61 | null
62 | 100195
63 | 29
64 | LnCRs1RB9h91E27r5l4vvybBTkXIh7evG
65 | United States
66 | Manhattan
67 | New York
68 | 031534
69 | Park avenue 78
70 | 40.75009928615015
71 | -73.97940823862302
72 | TOKEN
73 | 2
74 | ONLINE
75 | false
76 | null
77 | true
78 | 127.0.0.1
79 | Park avenue 121, Manhattan
80 |
81 | Park avenue 121
82 | Manhattan
83 |
84 |
85 | 5
86 | mile
87 | 2
88 |
89 | -
90 | 27160
91 | DELIVERY_FEE
92 | 10
93 | 10
94 | 1
95 |
96 | delivery_fee
97 |
98 | 0.19
99 | 1.9
100 |
101 | 0
102 | 0
103 | 0
104 | NET
105 |
106 |
107 | -
108 | 27161
109 | TIP
110 | 6.88
111 | 6.88
112 | 1
113 |
114 | tip
115 |
116 | 0.19
117 | 1.0985
118 |
119 | 0
120 | 0
121 | 0
122 | GROSS
123 |
124 |
125 | -
126 | 27162
127 | Pizza Margherita
128 | 40.8
129 | 7
130 | 4
131 | No pepper please
132 | item
133 | 841
134 | 0.19
135 | 6.1923
136 |
137 | 0
138 | 0.0947
139 | 3.86
140 | NET
141 | Pizza Margherita Internal Name
142 |
152 |
162 |
163 | -
164 | 27163
165 | 5$ off total for first time clients
166 | 0
167 | 0
168 | 1
169 |
170 | promo_cart
171 | 226
172 | 0
173 | 0
174 |
175 | 5
176 | 0.0947
177 | -5
178 | NET
179 | MQGTLWWLGQRE
180 |
181 |
182 | -
183 | 27164
184 | Free drink on any order $30+
185 | 5
186 | 0
187 | 1
188 |
189 | promo_cart_item
190 | 228
191 | 0
192 | 0
193 |
194 | 5
195 | 0.0947
196 | 0
197 | NET
198 |
199 |
200 | -
201 | 27165
202 | Spaghetti Frutti di Mare
203 | 12
204 | 12
205 | 1
206 |
207 | item
208 | 844
209 | 0.19
210 | 0
211 | 27166
212 | 12
213 | 0.0947
214 | 0
215 | NET
216 |
217 |
218 | -
219 | 27166
220 | Buy one get other free
221 | 24
222 | 0
223 | 1
224 |
225 | promo_item
226 | 225
227 | 0
228 | 0
229 |
230 | 12
231 | 0.0947
232 | 1.14
233 | NET
234 | 9VKHM77MZ434
235 |
236 |
237 | -
238 | 27167
239 | Spaghetti Frutti di Mare
240 | 12
241 | 12
242 | 1
243 |
244 | item
245 | 844
246 | 0.19
247 | 2.0641
248 | 27166
249 | 0
250 | 0.0947
251 | 1.14
252 | NET
253 |
254 |
255 | -
256 | 27168
257 | Cola
258 | 5
259 | 5
260 | 1
261 |
262 | item
263 | 2716
264 | 0.19
265 | 0
266 | 27164
267 | 5
268 | 0.0947
269 | 0
270 | NET
271 |
272 |
282 |
283 | -
284 | 27196
285 | Service fee subtotal 1
286 | 10
287 | 10
288 | 1
289 |
290 | service_fee_subtotal
291 | 123
292 | 0.19
293 | 1.9000
294 |
295 | 0
296 | 0
297 | 0
298 | NET
299 |
300 |
301 | -
302 | 27197
303 | Service fee subtotal 2
304 | 5
305 | 5
306 | 1
307 |
308 | service_fee_subtotal
309 | 125
310 | 0.19
311 | 0.9500
312 |
313 | 0
314 | 0
315 | 0
316 | NET
317 |
318 |
319 | -
320 | 27198
321 | Cash discount
322 | 5
323 | -5
324 | 1
325 |
326 | cash_discount
327 | 125
328 | 0.19
329 | -0.9500
330 |
331 | 0
332 | 0
333 | 0
334 | NET
335 |
336 |
337 | -
338 | 27199
339 | Service fee total
340 | 20
341 | 20
342 | 1
343 |
344 | service_fee_total
345 | 124
346 | 0.19
347 | 3.8000
348 |
349 | 0
350 | 0
351 | 0
352 | NET
353 |
354 |
355 |
356 |
357 |
--------------------------------------------------------------------------------
/fetch_menu/payload/menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 4108
4 | 4172
5 | true
6 | USD
7 |
8 | 14937
9 | 4108
10 | Pizza
11 | true
12 |
13 |
14 | 127
15 | 2939
16 | -
17 | 58424
18 | 14937
19 | Pizza Margherita
20 | (tomato sauce, cheese)
21 | 7
22 | true
23 |
24 |
25 | 127
26 |
27 | pickup
28 | delivery
29 | Pizza Margherita Internal Name
30 |
31 |
32 | 37086
33 | 58424
34 | Small
35 | 0
36 | true
37 |
38 | 16978
39 | 4108
40 | Extra Toppings (Small)
41 | false
42 | 1
43 | 1
44 | false
45 |
53 |
63 |
64 |
65 |
66 | 9
67 | 123
68 |
69 |
70 | 10
71 | 12
72 |
73 |
74 | 11
75 | 12
76 |
77 |
78 | 12
79 | 12
80 |
81 |
82 | 13
83 | 12
84 |
85 |
86 | 14
87 | 12
88 |
89 | per_100g
90 |
91 |
92 |
93 | 37087
94 | 58424
95 | Large
96 | 2
97 | false
98 |
99 | 16979
100 | 4108
101 | Extra Toppings (Large)
102 | false
103 | 1
104 | 1
105 | false
106 |
114 |
122 |
123 |
124 |
125 | 9
126 | 323
127 |
128 |
129 | 10
130 | 32
131 |
132 |
133 | 11
134 | 32
135 |
136 |
137 | 12
138 | 32
139 |
140 |
141 | 13
142 | 32
143 |
144 |
145 | 14
146 | 32
147 |
148 | per_100g
149 |
150 |
151 |
152 | -
153 | 58425
154 | 14937
155 | Pizza Prosciutto
156 | (tomato sauce, cheese, ham)
157 | 8
158 | true
159 |
160 |
161 | 127
162 | 0
163 |
164 |
165 | 37088
166 | 58425
167 | Small
168 | 0
169 | true
170 |
171 | 16978
172 | 4108
173 | Extra Toppings (Small)
174 | false
175 | 1
176 | 1
177 | false
178 |
186 |
194 |
195 |
196 |
197 | 37089
198 | 58425
199 | Large
200 | 2
201 | false
202 |
203 | 16979
204 | 4108
205 | Extra Toppings (Large)
206 | false
207 | 1
208 | 1
209 | false
210 |
218 |
226 |
227 |
228 |
229 |
230 | 16977
231 | 4108
232 | Crust
233 | 0
234 | true
235 | 1
236 | 1
237 | false
238 |
246 |
254 |
255 |
256 |
257 | 14938
258 | 4108
259 | Pasta
260 | true
261 |
262 |
263 | 127
264 | 0
265 | 2967
266 | -
267 | 58426
268 | 14938
269 | Spaghetti Bolognese
270 |
271 | 9
272 | true
273 |
274 |
275 | 127
276 | 0
277 |
278 |
279 | 1
280 | 3
281 | 7
282 | 8
283 | 4
284 |
285 | 1
286 | Milk
287 |
288 |
289 | 3
290 | Eggs
291 |
292 |
293 | 7
294 | Shellfish
295 |
296 |
297 | 8
298 | Soybeans
299 |
300 |
301 | 4
302 | Peanuts
303 |
304 |
305 |
306 | -
307 | 58427
308 | 14938
309 | Spaghetti Frutti di Mare
310 | (with sea food)
311 | 12
312 | true
313 |
314 |
315 | 127
316 | 0
317 |
318 |
319 |
320 |
321 |
--------------------------------------------------------------------------------
/fetch_menu/payload/menu.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": 4108,
3 | "restaurant_id": 4172,
4 | "active": true,
5 | "currency": "USD",
6 | "categories": [
7 | {
8 | "id": 14937,
9 | "menu_id": 4108,
10 | "name": "Pizza",
11 | "active": true,
12 | "active_begin": null,
13 | "active_end": null,
14 | "active_days": 127,
15 | "picture_id": 2939,
16 | "items": [
17 | {
18 | "id": 58424,
19 | "menu_category_id": 14937,
20 | "name": "Pizza Margherita",
21 | "description": "(tomato sauce, cheese)",
22 | "price": 7,
23 | "active": true,
24 | "active_begin": null,
25 | "active_end": null,
26 | "active_days": 127,
27 | "extras": {
28 | "menu_item_order_types": ["pickup", "delivery"],
29 | "menu_item_kitchen_internal_name": "Pizza Margherita Internal Name"
30 | },
31 | "sizes": [
32 | {
33 | "id": 37086,
34 | "menu_item_id": 58424,
35 | "name": "Small",
36 | "price": 0,
37 | "default": true,
38 | "groups": [
39 | {
40 | "id": 16978,
41 | "menu_id": 4108,
42 | "name": "Extra Toppings (Small)",
43 | "required": false,
44 | "force_min": 1,
45 | "force_max": 1,
46 | "allow_quantity": false,
47 | "options": [
48 | {
49 | "id": 51188,
50 | "option_group_id": 16978,
51 | "name": "Corn",
52 | "price": 0.7,
53 | "default": false,
54 | "extras": null
55 | },
56 | {
57 | "id": 51189,
58 | "option_group_id": 16978,
59 | "name": "Extra mozzarella",
60 | "price": 1.2,
61 | "default": false,
62 | "extras": {
63 | "menu_option_kitchen_internal_name": "Extra Mozzarella Internal Name"
64 | }
65 | }
66 | ]
67 | }
68 | ]
69 | },
70 | {
71 | "id": 37087,
72 | "menu_item_id": 58424,
73 | "name": "Large",
74 | "price": 2,
75 | "default": false,
76 | "groups": [
77 | {
78 | "id": 16979,
79 | "menu_id": 4108,
80 | "name": "Extra Toppings (Large)",
81 | "required": false,
82 | "force_min": 1,
83 | "force_max": 1,
84 | "allow_quantity": false,
85 | "options": [
86 | {
87 | "id": 51190,
88 | "option_group_id": 16979,
89 | "name": "Corn",
90 | "price": 1.2,
91 | "default": false,
92 | "extras": null
93 | },
94 | {
95 | "id": 51191,
96 | "option_group_id": 16979,
97 | "name": "Extra mozzarella",
98 | "price": 1.7,
99 | "default": false,
100 | "extras": null
101 | }
102 | ]
103 | }
104 | ]
105 | }
106 | ],
107 | "groups": []
108 | },
109 | {
110 | "id": 58425,
111 | "menu_category_id": 14937,
112 | "name": "Pizza Prosciutto",
113 | "description": "(tomato sauce, cheese, ham)",
114 | "price": 8,
115 | "active": true,
116 | "active_begin": null,
117 | "active_end": null,
118 | "active_days": 127,
119 | "extras": null,
120 | "sizes": [
121 | {
122 | "id": 37088,
123 | "menu_item_id": 58425,
124 | "name": "Small",
125 | "price": 0,
126 | "default": true,
127 | "groups": [
128 | {
129 | "id": 16978,
130 | "menu_id": 4108,
131 | "name": "Extra Toppings (Small)",
132 | "required": false,
133 | "force_min": 1,
134 | "force_max": 1,
135 | "allow_quantity": false,
136 | "options": [
137 | {
138 | "id": 51188,
139 | "option_group_id": 16978,
140 | "name": "Corn",
141 | "price": 0.7,
142 | "default": false,
143 | "extras": null
144 | },
145 | {
146 | "id": 51189,
147 | "option_group_id": 16978,
148 | "name": "Extra mozzarella",
149 | "price": 1.2,
150 | "default": false,
151 | "extras": null
152 | }
153 | ]
154 | }
155 | ],
156 | "extras": {
157 | "menu_item_nutritional_values": [
158 | {
159 | "id": 9,
160 | "value": "123"
161 | },
162 | {
163 | "id": 10,
164 | "value": "12"
165 | },
166 | {
167 | "id": 11,
168 | "value": "12"
169 | },
170 | {
171 | "id": 12,
172 | "value": "12"
173 | },
174 | {
175 | "id": 13,
176 | "value": "12"
177 | },
178 | {
179 | "id": 14,
180 | "value": "12"
181 | }
182 | ],
183 | "menu_item_nutritional_values_size": "per_100g"
184 | }
185 | },
186 | {
187 | "id": 37089,
188 | "menu_item_id": 58425,
189 | "name": "Large",
190 | "price": 2,
191 | "default": false,
192 | "groups": [
193 | {
194 | "id": 16979,
195 | "menu_id": 4108,
196 | "name": "Extra Toppings (Large)",
197 | "required": false,
198 | "force_min": 1,
199 | "force_max": 1,
200 | "allow_quantity": false,
201 | "options": [
202 | {
203 | "id": 51190,
204 | "option_group_id": 16979,
205 | "name": "Corn",
206 | "price": 1.2,
207 | "default": false,
208 | "extras": null
209 | },
210 | {
211 | "id": 51191,
212 | "option_group_id": 16979,
213 | "name": "Extra mozzarella",
214 | "price": 1.7,
215 | "default": false,
216 | "extras": null
217 | }
218 | ]
219 | }
220 | ],
221 | "extras": {
222 | "menu_item_nutritional_values": [
223 | {
224 | "id": 9,
225 | "value": "323"
226 | },
227 | {
228 | "id": 10,
229 | "value": "32"
230 | },
231 | {
232 | "id": 11,
233 | "value": "32"
234 | },
235 | {
236 | "id": 12,
237 | "value": "32"
238 | },
239 | {
240 | "id": 13,
241 | "value": "32"
242 | },
243 | {
244 | "id": 14,
245 | "value": "32"
246 | }
247 | ],
248 | "menu_item_nutritional_values_size": "per_100g"
249 | }
250 | }
251 | ],
252 | "groups": []
253 | }
254 | ],
255 | "groups": [
256 | {
257 | "id": 16977,
258 | "menu_id": 4108,
259 | "name": "Crust",
260 | "required": true,
261 | "force_min": 1,
262 | "force_max": 1,
263 | "allow_quantity": false,
264 | "options": [
265 | {
266 | "id": 51186,
267 | "option_group_id": 16977,
268 | "name": "Fluffy",
269 | "price": 0,
270 | "default": true,
271 | "extras": null
272 | },
273 | {
274 | "id": 51187,
275 | "option_group_id": 16977,
276 | "name": "Crispy",
277 | "price": 0,
278 | "default": false,
279 | "extras": null
280 | }
281 | ]
282 | }
283 | ]
284 | },
285 | {
286 | "id": 14938,
287 | "menu_id": 4108,
288 | "name": "Pasta",
289 | "active": true,
290 | "active_begin": null,
291 | "active_end": null,
292 | "active_days": 127,
293 | "picture_id": 2967,
294 | "items": [
295 | {
296 | "id": 58426,
297 | "menu_category_id": 14938,
298 | "name": "Spaghetti Bolognese",
299 | "description": "",
300 | "price": 9,
301 | "active": true,
302 | "active_begin": null,
303 | "active_end": null,
304 | "active_days": 127,
305 | "sizes": [],
306 | "groups": [],
307 | "extras": {
308 | "sku": "",
309 | "menu_item_allergens_ids": [
310 | 1,
311 | 3,
312 | 7,
313 | 8,
314 | 4
315 | ],
316 | "menu_item_allergens_values": [
317 | {
318 | "id": 1,
319 | "name": "Milk"
320 | },
321 | {
322 | "id": 3,
323 | "name": "Eggs"
324 | },
325 | {
326 | "id": 7,
327 | "name": "Shellfish"
328 | },
329 | {
330 | "id": 8,
331 | "name": "Soybeans"
332 | },
333 | {
334 | "id": 4,
335 | "name": "Peanuts"
336 | }
337 | ]
338 | }
339 | },
340 | {
341 | "id": 58427,
342 | "menu_category_id": 14938,
343 | "name": "Spaghetti Frutti di Mare",
344 | "description": "(with sea food)",
345 | "price": 12,
346 | "active": true,
347 | "active_begin": null,
348 | "active_end": null,
349 | "active_days": 127,
350 | "extras": null,
351 | "sizes": [],
352 | "groups": []
353 | }
354 | ],
355 | "groups": []
356 | }
357 | ]
358 | }
359 |
--------------------------------------------------------------------------------
/accepted_orders/version_1/payload/orders.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 1
4 |
5 | 776043
6 | 4172
7 | 104174
8 | 188995
9 |
10 | website
11 | delivery
12 | accepted
13 | 2016-02-03T16:44:00.000Z
14 | undefined
15 | true
16 | 2016-02-03T16:43:51.000Z
17 | 47.88
18 | 4.13
19 | 62.41
20 | 5
21 | 30
22 | Donald
23 | Draper
24 | don.draper@globalfoodsoft.com
25 | +15551234567
26 | 21st Market Street, San Francisco
27 |
28 | 21st Market Street
29 | San Francisco
30 |
31 | John's Excellent Pizza
32 |
33 | 0
34 | USD
35 | 2016-02-03T16:42:33.000Z
36 | 2016-02-03T16:44:00.000Z
37 | 37.79448725889753
38 | -122.395311680426
39 | true
40 |
41 | ONLINE
42 | 0.07
43 | NET
44 | Sales Tax
45 | 0.1
46 | 2016-02-03T17:14:00.000Z
47 | 2016-02-03T16:47:49.000Z
48 |
49 | 30
50 | false
51 | 0.1
52 |
53 |
54 | 0
55 |
56 | en
57 | 3.35
58 | 0.5
59 | 1
60 | 8yCPCvb3dDo1k
61 | id-9389
62 | 1
63 | -
64 | 1678236
65 | 776043
66 |
67 | DELIVERY_FEE
68 | 5
69 | 5
70 | 1
71 |
72 | 2016-02-03T16:42:33.000Z
73 | 2016-02-03T16:42:34.000Z
74 |
75 | delivery_fee
76 | 0.1
77 | 0.5
78 |
79 | false
80 | 0
81 | 0
82 | NET
83 | 0
84 | 0
85 |
86 |
87 |
88 |
89 | -
90 | 1678237
91 | 776043
92 |
93 | TIP
94 | 5.67
95 | 5.67
96 | 1
97 |
98 | 2016-02-03T16:42:33.000Z
99 | 2016-02-03T16:43:48.000Z
100 |
101 | tip
102 | 0.05
103 | 0.2702
104 |
105 | false
106 | 0
107 | 0
108 | GROSS
109 | 0
110 | 0
111 |
112 |
113 |
114 |
115 | -
116 | 1678240
117 | 776043
118 | 58424
119 | Pizza Margherita
120 | 8.2
121 | 7
122 | 1
123 |
124 | 2016-02-03T16:42:44.000Z
125 | 2016-02-03T16:42:57.000Z
126 | 58424
127 | item
128 | 0.07
129 | 0
130 | 1678245
131 | false
132 | 0
133 | 0
134 | NET
135 | 0
136 | 8.2
137 | 14937
138 |
139 |
140 |
152 |
164 |
176 |
177 | -
178 | 1678242
179 | 776043
180 | 58425
181 | Pizza Prosciutto
182 | 11.7
183 | 8
184 | 1
185 |
186 | 2016-02-03T16:42:49.000Z
187 | 2016-02-03T16:42:57.000Z
188 | 58425
189 | item
190 | 0.07
191 | 0.819
192 | 1678245
193 | false
194 | 0
195 | 0
196 | NET
197 | 0
198 | 0
199 | 14937
200 |
201 |
202 |
214 |
226 |
238 |
239 | -
240 | 1678243
241 | 776043
242 | 58425
243 | Pizza Prosciutto
244 | 8.7
245 | 8
246 | 1
247 |
248 | 2016-02-03T16:42:56.000Z
249 | 2016-02-03T16:42:57.000Z
250 | 58425
251 | item
252 | 0.07
253 | 0.609
254 | 1678245
255 | false
256 | 0
257 | 0
258 | NET
259 | 0
260 | 0
261 | 14937
262 |
263 |
264 |
276 |
288 |
300 |
301 | -
302 | 1678245
303 | 776043
304 |
305 | 2 + 1 Pizza Special
306 | 28.6
307 | 0
308 | 1
309 |
310 | 2016-02-03T16:42:57.000Z
311 | 2016-02-03T16:43:02.000Z
312 | 251
313 | promo_item
314 | 0.07
315 | 1.3566
316 |
317 | true
318 | 0.05
319 | 1.02
320 | NET
321 | 0
322 | 8.2
323 | 25
324 |
325 |
326 |
327 | -
328 | 1678246
329 | 776043
330 | 58426
331 | Spaghetti Bolognese
332 | 18
333 | 9
334 | 2
335 |
336 | 2016-02-03T16:43:00.000Z
337 | 2016-02-03T16:43:02.000Z
338 | 58426
339 | item
340 | 0.07
341 | 1.197
342 |
343 | false
344 | 0.05
345 | 0.9
346 | NET
347 | 0
348 | 0
349 | 14938
350 |
351 |
352 |
353 | -
354 | 1678247
355 | 776043
356 | 58427
357 | Spaghetti Frutti di Mare
358 | 12
359 | 12
360 | 1
361 |
362 | 2016-02-03T16:43:02.000Z
363 | 2016-02-03T16:43:02.000Z
364 | 58427
365 | item
366 | 0.07
367 | 0.798
368 |
369 | false
370 | 0.05
371 | 0.6
372 | NET
373 | 0
374 | 0
375 | 14938
376 |
377 |
378 |
379 | -
380 | 1678248
381 | 776043
382 |
383 | 5% off total larger than 40$
384 | 0
385 | 0
386 | 1
387 |
388 | 2016-02-03T16:43:02.000Z
389 | 2016-02-03T16:43:48.000Z
390 | 250
391 | promo_cart
392 | 0.07
393 | 0
394 |
395 | true
396 | 0.05
397 | -2.52
398 | NET
399 | 0
400 | 2.52
401 | 9
402 | 0.05
403 |
404 |
405 |
406 |
407 |
--------------------------------------------------------------------------------
/accepted_orders/version_1/payload/orders.json:
--------------------------------------------------------------------------------
1 | {
2 | "count": 1,
3 | "orders": [
4 | {
5 | "coupons": [],
6 | "id": 776079,
7 | "restaurant_id": 4172,
8 | "company_account_id": 104174,
9 | "user_id": 188995,
10 | "app_instance_id": null,
11 | "source": "website",
12 | "type": "delivery",
13 | "status": "accepted",
14 | "confirmed_at": "2016-02-03T16:46:26.000Z",
15 | "finished": "undefined",
16 | "retrieved": true,
17 | "retrieved_at": "2016-02-03T16:46:18.000Z",
18 | "sub_total_price": 47.88,
19 | "taxes": 4.13,
20 | "total_price": 62.41,
21 | "delivery_fee": 5,
22 | "delivery_time": 30,
23 | "client_first_name": "Donald",
24 | "client_last_name": "Draper",
25 | "client_email": "don.draper@globalfoodsoft.com",
26 | "client_phone": "+15551234567",
27 | "client_address": "21st Market Street, San Francisco",
28 | "client_address_parts": {
29 | "street": "21st Market Street",
30 | "city": "San Francisco"
31 | },
32 | "restaurant_name": "John's Excellent Pizza",
33 | "instructions": null,
34 | "postpone": 0,
35 | "currency": "USD",
36 | "created_at": "2016-02-03T16:45:37.000Z",
37 | "updated_at": "2016-02-03T16:46:26.000Z",
38 | "latitude": "37.79448725889753",
39 | "longitude": "-122.395311680426",
40 | "outside_delivery": true,
41 | "pickup_payment": null,
42 | "delivery_payment": "ONLINE",
43 | "sales_tax": 0.07,
44 | "sales_tax_type": "NET",
45 | "sales_tax_label": "Sales Tax",
46 | "sales_tax_delivery": 0.1,
47 | "fulfill_time": "2016-02-03T17:16:26.000Z",
48 | "timeout_time": "2016-02-03T16:50:16.000Z",
49 | "payment_method_id": null,
50 | "minimum_order": 30,
51 | "pin_skipped": false,
52 | "tip": 0.1,
53 | "referrer_order_id": null,
54 | "share_text": null,
55 | "aggregated": 0,
56 | "delivery_zone_id": null,
57 | "language_code": "en",
58 | "items": [
59 | {
60 | "id": 1678273,
61 | "order_id": 776079,
62 | "menu_item_id": null,
63 | "name": "DELIVERY_FEE",
64 | "total_item_price": 5,
65 | "price": 5,
66 | "quantity": 1,
67 | "instructions": null,
68 | "created_at": "2016-02-03T16:45:37.000Z",
69 | "updated_at": "2016-02-03T16:45:37.000Z",
70 | "type_id": null,
71 | "type": "delivery_fee",
72 | "tax_rate": 0.1,
73 | "tax_value": 0.5,
74 | "parent_id": null,
75 | "promotion_complete": false,
76 | "total_discount_rate": 0,
77 | "total_discount_value": 0,
78 | "tax_type": "NET",
79 | "aggregated": 0,
80 | "discount": 0,
81 | "type_category_id": null,
82 | "promo_cart_percent": null,
83 | "promo_cart_fix": null,
84 | "options": []
85 | },
86 | {
87 | "id": 1678274,
88 | "order_id": 776079,
89 | "menu_item_id": null,
90 | "name": "TIP",
91 | "total_item_price": 5.67,
92 | "price": 5.67,
93 | "quantity": 1,
94 | "instructions": null,
95 | "created_at": "2016-02-03T16:45:37.000Z",
96 | "updated_at": "2016-02-03T16:46:15.000Z",
97 | "type_id": null,
98 | "type": "tip",
99 | "tax_rate": 0.05,
100 | "tax_value": 0.2702,
101 | "parent_id": null,
102 | "promotion_complete": false,
103 | "total_discount_rate": 0,
104 | "total_discount_value": 0,
105 | "tax_type": "GROSS",
106 | "aggregated": 0,
107 | "discount": 0,
108 | "type_category_id": null,
109 | "promo_cart_percent": null,
110 | "promo_cart_fix": null,
111 | "options": []
112 | },
113 | {
114 | "id": 1678275,
115 | "order_id": 776079,
116 | "menu_item_id": 58424,
117 | "name": "Pizza Margherita",
118 | "total_item_price": 8.2,
119 | "price": 7,
120 | "quantity": 1,
121 | "instructions": "",
122 | "created_at": "2016-02-03T16:45:43.000Z",
123 | "updated_at": "2016-02-03T16:45:52.000Z",
124 | "type_id": 58424,
125 | "type": "item",
126 | "tax_rate": 0.07,
127 | "tax_value": 0,
128 | "parent_id": 1678282,
129 | "promotion_complete": false,
130 | "total_discount_rate": 0,
131 | "total_discount_value": 0,
132 | "tax_type": "NET",
133 | "aggregated": 0,
134 | "discount": 8.2,
135 | "type_category_id": 14937,
136 | "promo_cart_percent": null,
137 | "promo_cart_fix": null,
138 | "options": [
139 | {
140 | "id": 1771286,
141 | "order_item_id": 1678275,
142 | "option_id": 37086,
143 | "name": "Small",
144 | "price": 0,
145 | "group_name": "Size",
146 | "created_at": "2016-02-03T16:45:43.000Z",
147 | "updated_at": "2016-02-03T16:45:43.000Z",
148 | "quantity": 1,
149 | "type": "size"
150 | },
151 | {
152 | "id": 1771287,
153 | "order_item_id": 1678275,
154 | "option_id": 51187,
155 | "name": "Crispy",
156 | "price": 0,
157 | "group_name": "Crust",
158 | "created_at": "2016-02-03T16:45:43.000Z",
159 | "updated_at": "2016-02-03T16:45:43.000Z",
160 | "quantity": 1,
161 | "type": "option"
162 | },
163 | {
164 | "id": 1771288,
165 | "order_item_id": 1678275,
166 | "option_id": 51189,
167 | "name": "Extra mozzarella",
168 | "price": 1.2,
169 | "group_name": "Extra Toppings (Small)",
170 | "created_at": "2016-02-03T16:45:43.000Z",
171 | "updated_at": "2016-02-03T16:45:43.000Z",
172 | "quantity": 1,
173 | "type": "option"
174 | }
175 | ]
176 | },
177 | {
178 | "id": 1678277,
179 | "order_id": 776079,
180 | "menu_item_id": 58425,
181 | "name": "Pizza Prosciutto",
182 | "total_item_price": 11.7,
183 | "price": 8,
184 | "quantity": 1,
185 | "instructions": "",
186 | "created_at": "2016-02-03T16:45:46.000Z",
187 | "updated_at": "2016-02-03T16:45:52.000Z",
188 | "type_id": 58425,
189 | "type": "item",
190 | "tax_rate": 0.07,
191 | "tax_value": 0.819,
192 | "parent_id": 1678282,
193 | "promotion_complete": false,
194 | "total_discount_rate": 0,
195 | "total_discount_value": 0,
196 | "tax_type": "NET",
197 | "aggregated": 0,
198 | "discount": 0,
199 | "type_category_id": 14937,
200 | "promo_cart_percent": null,
201 | "promo_cart_fix": null,
202 | "options": [
203 | {
204 | "id": 1771289,
205 | "order_item_id": 1678277,
206 | "option_id": 37089,
207 | "name": "Large",
208 | "price": 2,
209 | "group_name": "Size",
210 | "created_at": "2016-02-03T16:45:46.000Z",
211 | "updated_at": "2016-02-03T16:45:46.000Z",
212 | "quantity": 1,
213 | "type": "size"
214 | },
215 | {
216 | "id": 1771290,
217 | "order_item_id": 1678277,
218 | "option_id": 51187,
219 | "name": "Crispy",
220 | "price": 0,
221 | "group_name": "Crust",
222 | "created_at": "2016-02-03T16:45:46.000Z",
223 | "updated_at": "2016-02-03T16:45:46.000Z",
224 | "quantity": 1,
225 | "type": "option"
226 | },
227 | {
228 | "id": 1771291,
229 | "order_item_id": 1678277,
230 | "option_id": 51191,
231 | "name": "Extra mozzarella",
232 | "price": 1.7,
233 | "group_name": "Extra Toppings (Large)",
234 | "created_at": "2016-02-03T16:45:46.000Z",
235 | "updated_at": "2016-02-03T16:45:46.000Z",
236 | "quantity": 1,
237 | "type": "option"
238 | }
239 | ]
240 | },
241 | {
242 | "id": 1678281,
243 | "order_id": 776079,
244 | "menu_item_id": 58425,
245 | "name": "Pizza Prosciutto",
246 | "total_item_price": 8.7,
247 | "price": 8,
248 | "quantity": 1,
249 | "instructions": "",
250 | "created_at": "2016-02-03T16:45:51.000Z",
251 | "updated_at": "2016-02-03T16:45:52.000Z",
252 | "type_id": 58425,
253 | "type": "item",
254 | "tax_rate": 0.07,
255 | "tax_value": 0.609,
256 | "parent_id": 1678282,
257 | "promotion_complete": false,
258 | "total_discount_rate": 0,
259 | "total_discount_value": 0,
260 | "tax_type": "NET",
261 | "aggregated": 0,
262 | "discount": 0,
263 | "type_category_id": 14937,
264 | "promo_cart_percent": null,
265 | "promo_cart_fix": null,
266 | "options": [
267 | {
268 | "id": 1771294,
269 | "order_item_id": 1678281,
270 | "option_id": 37088,
271 | "name": "Small",
272 | "price": 0,
273 | "group_name": "Size",
274 | "created_at": "2016-02-03T16:45:51.000Z",
275 | "updated_at": "2016-02-03T16:45:51.000Z",
276 | "quantity": 1,
277 | "type": "size"
278 | },
279 | {
280 | "id": 1771295,
281 | "order_item_id": 1678281,
282 | "option_id": 51186,
283 | "name": "Fluffy",
284 | "price": 0,
285 | "group_name": "Crust",
286 | "created_at": "2016-02-03T16:45:51.000Z",
287 | "updated_at": "2016-02-03T16:45:51.000Z",
288 | "quantity": 1,
289 | "type": "option"
290 | },
291 | {
292 | "id": 1771296,
293 | "order_item_id": 1678281,
294 | "option_id": 51188,
295 | "name": "Corn",
296 | "price": 0.7,
297 | "group_name": "Extra Toppings (Small)",
298 | "created_at": "2016-02-03T16:45:51.000Z",
299 | "updated_at": "2016-02-03T16:45:51.000Z",
300 | "quantity": 1,
301 | "type": "option"
302 | }
303 | ]
304 | },
305 | {
306 | "id": 1678282,
307 | "order_id": 776079,
308 | "menu_item_id": null,
309 | "name": "2 + 1 Pizza Special",
310 | "total_item_price": 28.6,
311 | "price": 0,
312 | "quantity": 1,
313 | "instructions": null,
314 | "created_at": "2016-02-03T16:45:51.000Z",
315 | "updated_at": "2016-02-03T16:45:56.000Z",
316 | "type_id": 251,
317 | "type": "promo_item",
318 | "tax_rate": 0.07,
319 | "tax_value": 1.3566,
320 | "parent_id": null,
321 | "promotion_complete": true,
322 | "total_discount_rate": 0.05,
323 | "total_discount_value": 1.02,
324 | "tax_type": "NET",
325 | "aggregated": 0,
326 | "discount": 8.2,
327 | "type_category_id": 25,
328 | "promo_cart_percent": null,
329 | "promo_cart_fix": null,
330 | "options": []
331 | },
332 | {
333 | "id": 1678284,
334 | "order_id": 776079,
335 | "menu_item_id": 58426,
336 | "name": "Spaghetti Bolognese",
337 | "total_item_price": 18,
338 | "price": 9,
339 | "quantity": 2,
340 | "instructions": "",
341 | "created_at": "2016-02-03T16:45:54.000Z",
342 | "updated_at": "2016-02-03T16:45:56.000Z",
343 | "type_id": 58426,
344 | "type": "item",
345 | "tax_rate": 0.07,
346 | "tax_value": 1.197,
347 | "parent_id": null,
348 | "promotion_complete": false,
349 | "total_discount_rate": 0.05,
350 | "total_discount_value": 0.9,
351 | "tax_type": "NET",
352 | "aggregated": 0,
353 | "discount": 0,
354 | "type_category_id": 14938,
355 | "promo_cart_percent": null,
356 | "promo_cart_fix": null,
357 | "options": []
358 | },
359 | {
360 | "id": 1678286,
361 | "order_id": 776079,
362 | "menu_item_id": 58427,
363 | "name": "Spaghetti Frutti di Mare",
364 | "total_item_price": 12,
365 | "price": 12,
366 | "quantity": 1,
367 | "instructions": "",
368 | "created_at": "2016-02-03T16:45:56.000Z",
369 | "updated_at": "2016-02-03T16:45:56.000Z",
370 | "type_id": 58427,
371 | "type": "item",
372 | "tax_rate": 0.07,
373 | "tax_value": 0.798,
374 | "parent_id": null,
375 | "promotion_complete": false,
376 | "total_discount_rate": 0.05,
377 | "total_discount_value": 0.6,
378 | "tax_type": "NET",
379 | "aggregated": 0,
380 | "discount": 0,
381 | "type_category_id": 14938,
382 | "promo_cart_percent": null,
383 | "promo_cart_fix": null,
384 | "options": []
385 | },
386 | {
387 | "id": 1678287,
388 | "order_id": 776079,
389 | "menu_item_id": null,
390 | "name": "5% off total larger than 40$",
391 | "total_item_price": 0,
392 | "price": 0,
393 | "quantity": 1,
394 | "instructions": null,
395 | "created_at": "2016-02-03T16:45:56.000Z",
396 | "updated_at": "2016-02-03T16:46:15.000Z",
397 | "type_id": 250,
398 | "type": "promo_cart",
399 | "tax_rate": 0.07,
400 | "tax_value": 0,
401 | "parent_id": null,
402 | "promotion_complete": true,
403 | "total_discount_rate": 0.05,
404 | "total_discount_value": -2.52,
405 | "tax_type": "NET",
406 | "aggregated": 0,
407 | "discount": 2.52,
408 | "type_category_id": 9,
409 | "promo_cart_percent": 0.05,
410 | "promo_cart_fix": null,
411 | "options": []
412 | }
413 | ],
414 | "items_taxes": 3.35,
415 | "delivery_taxes": 0.5,
416 | "pos_system_id": 1,
417 | "restaurant_key": "8yCPCvb3dDo1k",
418 | "restaurant_token": "id-9389",
419 | "api_version": 1
420 | }
421 | ]
422 | }
423 |
--------------------------------------------------------------------------------