GET v1/QuickCombos/{siteId}/{menuId}
NOTE: Until prices are added to items in the response, the caller must also interpret the data with an assumption. An item that has "PartOfCombo: true" on a Level that is less than the largest Level of the combo cannot be included in a combo Level above its own Level(s). In other words, an item can't be downsized from its combo's Level, only upsized. In reality, if a smaller item is chosen at a larger Level, we move the combo to the lower level and upsize the other items in the combo. e.g. A 'small' item cannot be a component of a 'large' combo, instead a 'large' item is a component of a 'small' combo.
Concrete Example: Refer to the json response below. This is an example of how the response may look. In the example, we describe a Bacon Cheeseburger Combo with 3 levels, Regular, Medium, and Large. This combo is composed of 3 components: a Burger (ComponentId: 1), a Drink (ComponentId: 2), and a Side (ComponentId: 3).
Component 3 (the sides) has four different item groups. Itemgroups are used to group collections of similar items together. Suppose ItemGroupId: 1 are fries, ItemId: 2420 is the small fry, 2421 is the medium, and 2422 is the large. By looking at each UpsellInfo object, you can see that each sales item is only considered to be part of its corresponding level. However, the large can be ordered with a small combo despite PartOfCombo being false. This is where the note above comes in. Since the large fry is part of the highest level (2), it can be ordered with a small combo (though likely with an upcharge, with small combo it is 0.75, with medium 0.5).
Component 2 represents the drink. In this example in group 1 there is coke
- sales item id 2408 is small coke
- sales item id 2409 is medium coke
- sales item id 2410 is large coke
To summarize, given a list of items, your base price (level) is the lowest level that the items satisfy.
URI template
v1/QuickCombos/{siteId}/{menuId}?promiseTime={promiseTime}&promoIds={promoIds}&orderMode={orderMode}Request Information
URI Parameters
Name | Description | Type | Additional information |
---|---|---|---|
siteId |
Online Ordering Site Id (integer) |
int |
Required |
menuId |
Menu id. |
integer |
Required |
promiseTime |
Promise time on POS. Don't specify any time zone. Example: Time in restaurant is 10:35AM AEST. The same time is applied as promise time. Value of promiseTime parameter should be “2016-06-16T10:35:00”. Default value is current time on POS. |
date |
None. |
promoIds |
Optional comma separated list of POS promo ids to filter quick combos. i.e. &promoIds=123,435,45 |
Collection of integer |
None. |
orderMode |
Order mode to be used for menu pricing. For this to work, the company has to have Delivery Menu Enabled set to true. Additionally, if the site does not have a CFC Delivery Price Change ID set, no delivery prices will have been imported. |
OrderModeType |
None. |
Body Parameters
None.
Response Information
Resource Description
QuickCombos
Name | Description | Type | Additional information |
---|---|---|---|
ComboList |
List of combos |
Collection of QuickCombo |
None. |
Response Formats
application/json, text/json
{ "ComboList": [ { "MenuItemId": 1, "PromoId": 123, "Name": "Bacon Cheeseburger Combo", "Description": "Bacon Cheeseburger", "DisplayName": "Bacon Cheeseburger Combo", "BaseImageName": "bacon_combo.png", "Levels": [ { "ComboLevelId": 0, "Name": "Bacon Cheeseburger Combo", "Price": 9.0 }, { "ComboLevelId": 1, "Name": "Medium Bacon Cheeseburger Combo", "Price": 0.2 }, { "ComboLevelId": 2, "Name": "Large Bacon Cheeseburger Combo", "Price": 0.4 } ], "Components": [ { "ComponentId": 1, "Primary": true, "Name": "Burger", "BaseImageName": "burgers.png", "ItemGroups": [ { "ItemGroupId": 1, "Name": "Burger", "BaseImageName": "burger1.png", "Items": [ { "SalesItemId": 2406, "UpsellInfo": [ { "ComboLevelId": 0, "PartOfCombo": true }, { "ComboLevelId": 1 }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2407, "UpsellInfo": [ { "ComboLevelId": 0 }, { "ComboLevelId": 1, "PartOfCombo": true }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2407, "UpsellInfo": [ { "ComboLevelId": 0 }, { "ComboLevelId": 1 }, { "ComboLevelId": 2, "PartOfCombo": true } ] } ] } ] }, { "ComponentId": 2, "Name": "Drink", "BaseImageName": "drinks.png", "ItemGroups": [ { "ItemGroupId": 1, "Name": "Coke", "BaseImageName": "coke.png", "Items": [ { "SalesItemId": 2408, "UpsellInfo": [ { "ComboLevelId": 0, "PartOfCombo": true }, { "ComboLevelId": 1 }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2409, "UpsellInfo": [ { "ComboLevelId": 0, "Price": 0.25 }, { "ComboLevelId": 1, "PartOfCombo": true }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2410, "UpsellInfo": [ { "ComboLevelId": 0, "Price": 0.5 }, { "ComboLevelId": 1, "Price": 0.25 }, { "ComboLevelId": 2, "PartOfCombo": true } ] } ] }, { "ItemGroupId": 2, "Name": "Coke Zero", "BaseImageName": "coke_zero.png", "Items": [ { "SalesItemId": 2411, "UpsellInfo": [ { "ComboLevelId": 0, "PartOfCombo": true }, { "ComboLevelId": 1 }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2412, "UpsellInfo": [ { "ComboLevelId": 0, "Price": 0.25 }, { "ComboLevelId": 1, "PartOfCombo": true }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2413, "UpsellInfo": [ { "ComboLevelId": 0, "Price": 0.5 }, { "ComboLevelId": 1, "Price": 0.25 }, { "ComboLevelId": 2, "PartOfCombo": true } ] } ] }, { "ItemGroupId": 4, "Name": "Sprite", "BaseImageName": "sprite.png", "Items": [ { "SalesItemId": 2414, "UpsellInfo": [ { "ComboLevelId": 0, "PartOfCombo": true }, { "ComboLevelId": 1 }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2415, "UpsellInfo": [ { "ComboLevelId": 0, "Price": 0.25 }, { "ComboLevelId": 1, "PartOfCombo": true }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2416, "UpsellInfo": [ { "ComboLevelId": 0, "Price": 0.5 }, { "ComboLevelId": 1, "Price": 0.25 }, { "ComboLevelId": 2, "PartOfCombo": true } ] } ] }, { "ItemGroupId": 3, "Name": "Cherry Coke", "BaseImageName": "cherry_coke.png", "Items": [ { "SalesItemId": 2417, "UpsellInfo": [ { "ComboLevelId": 0, "PartOfCombo": true }, { "ComboLevelId": 1 }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2418, "UpsellInfo": [ { "ComboLevelId": 0, "Price": 0.25 }, { "ComboLevelId": 1, "PartOfCombo": true }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2419, "UpsellInfo": [ { "ComboLevelId": 0, "Price": 0.5 }, { "ComboLevelId": 1, "Price": 0.25 }, { "ComboLevelId": 2, "PartOfCombo": true } ] } ] } ] }, { "ComponentId": 3, "Name": "Sides", "BaseImageName": "sides.png", "ItemGroups": [ { "ItemGroupId": 1, "Name": "Reg Fries", "BaseImageName": "fries.png", "Items": [ { "SalesItemId": 2420, "UpsellInfo": [ { "ComboLevelId": 0, "PartOfCombo": true }, { "ComboLevelId": 1 }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2421, "UpsellInfo": [ { "ComboLevelId": 0, "Price": 0.25 }, { "ComboLevelId": 1, "PartOfCombo": true }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2422, "UpsellInfo": [ { "ComboLevelId": 0, "Price": 0.75 }, { "ComboLevelId": 1, "Price": 0.5 }, { "ComboLevelId": 2, "PartOfCombo": true } ] } ] }, { "ItemGroupId": 4, "Name": "Chili Fries", "BaseImageName": "chili_fries.png", "Items": [ { "SalesItemId": 2423, "UpsellInfo": [ { "ComboLevelId": 0, "PartOfCombo": true }, { "ComboLevelId": 1 }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2424, "UpsellInfo": [ { "ComboLevelId": 0, "Price": 1.25 }, { "ComboLevelId": 1, "PartOfCombo": true, "Price": 1.0 }, { "ComboLevelId": 2 } ] }, { "SalesItemId": 2425, "UpsellInfo": [ { "ComboLevelId": 0, "Price": 1.75 }, { "ComboLevelId": 1, "Price": 1.5 }, { "ComboLevelId": 2, "PartOfCombo": true, "Price": 1.0 } ] } ] }, { "ItemGroupId": 2, "Name": "Baked Potato", "BaseImageName": "baked_potato.png", "Items": [ { "SalesItemId": 2426, "UpsellInfo": [ { "ComboLevelId": 0, "PartOfCombo": true }, { "ComboLevelId": 1 }, { "ComboLevelId": 2 } ] } ] }, { "ItemGroupId": 3, "Name": "Salad", "BaseImageName": "salad.png", "Items": [ { "SalesItemId": 2427, "UpsellInfo": [ { "ComboLevelId": 0, "PartOfCombo": true }, { "ComboLevelId": 1 }, { "ComboLevelId": 2 } ] } ] } ] } ] } ] }