Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 33 Next »

Payloads from Partner API and Oracle for each menu structure.

Partner API structure examples: Orders API - Cart Structure Examples

Contents

STS Gen2

  • In the Get Menus call we will get all products deployed for a particular store for a particular revenue center.

  • Items can be tagged – e.g. all kiosk items can be tagged as ‘kiosk products’. Tagging can be used to filter out categories of food (e.g. meals, LTOs…). Filtering lets you perform bulk actions. E.g. we can only retrieve specific menu items from the POS.

  • Cloud Assist Service is in charge of ensuring standardization of PLUs.

Different pricing between service modes will be managed by priceSequence within the same definitionSequence. Applicable for all products (item, combo, modifier).

  • DefinitionSequence always = 1

    • pricingSequence = 1 --> pick-up SM

    • pricingSequence = 2 --> delivery SM

GET Menus call returns all items for a given store, it doesn't take availability into account. To retrieve unavailable items per store, we need to make another call to the UNAVAILABLE endpoint, which returns the list of unavailable items. Hence, whenever we build the store menu (after a guest selects a restaurant in the platform), we need to call both endpoints to determine availability on a store-level:

  1. Call GET Menu - using v1/menus (Khumbu already does)

  2. Call GET Availability endpoint --- using (menus/items/unavailable) (Khumbu already does)

    1. Actively listen to webhook for changes to availability (notifications API) (Khumbu doesn't do this currently.)

Operators in the restaurant manage items availability on a store-level using the POS, Oracle POS only supports that on store-level for both service modes - not distinguishing availability per service mode.

Assumption: In general, menu item availability is not managed specifically differently per service mode (on a store-level).

For specific items whose availability is different for pickup and delivery within the same store, the following will be the suggestion to the operator:

In certain markets, there are menu items whose availability can be temporarily different for different service modes on a restaurant-level. Meaning, item_1 being available for pickup and delivery normally for a given store, but temporarily needs to be made unavailable only for the delivery service mode while still being available for pickup. An example of this is packaged ice creams not being sold via delivery temporarily during heat hours but still sold on pickup. For those items, the configuration requires two distinct PLUs per service mode, as well as 2 separate Sanity menu content documents. To illustrate:

  • The market has 500 menu items in total. Menu item availability for almost all menu is managed per store for both service modes (if a menu item is not available in the restaurant for online pickup ordering, then it also won't be available for delivery).

  • There are only 10 menu items that could have different availability per store and service mode at the same time, like the icecream example mentioned above.

  • The operator configures a single PLU for 490 items, the same PLU is shared for both service modes. Availability is managed for both service modes at the same time on a store-level - always.

  • For the 10 exceptional menu items, distinct PLUs are defined per service mode - in total 20 PLUs.

  • These different PLUs then can be marked available/unavailable via the Oracle POS to manage availability differently per service mode.

  • Similarly, 2 unique Sanity menu documents are created for these items, one for each service mode. Example: Ben & Jerry's Icecream Pickup and Ben & Jerry's Icecream Delivery. Applicable pickup and delivery PLUs are then added to each document. This is different than the remaining 490 items where there is a single Sanity menu item document and the same PLU is entered for both service modes under Vendor Configs.

This setup is required for the guest application to manage the availability correctly.

Combo pricing can be configured in 2 different ways. RBI Tech needs to support both scenarios, it is not possible to have one standardized way of managing combo pricing due to different taxation requirements of countries.

  1. Price is at the combo level. Menu items inside the combo are priced at 0, unless they’re premium. Examples are markets like BK DE, BK UK, BK MX.

    1. In general, anything premium (item or modifier) adds up to the total combo price.

  2. Price is at the combo items' level. Combo is priced at 0. The sum of the combo items' prices adds up to the combo PLU. This gives operators the flexibility to build a price allocation different from the ALC prices, which can optimize the VAT allocation.

    1. Premium modifier PLU is added to the applicable item price instead of the combo.

In both cases the total combo price = combo price + main item price + side 1 price + side 2 price. Therefore, summing up prices of everything always gives to total.

We will aim to manage different combo sizes with different PLUs (e.g. small, medium and large combos all having different PLUs).

We would need default sides selected for each combos to be able to show the pricing correctly. We might need to have this default logic enforced to the operator on Sanity (either implemented or a small button/toggle will be added to Sanity.)

A single PLU will be used for each modifier, and no PLUs for modifier multipliers. Modifier multipliers will be managed via prefixes, and prefixes will be enabled by RBI Tech platform by utilizing the quantity-based PLU or multiconstant PLU solutions. Having one of these solutions work will require some work on partnersAPI and likely within platform (menu and pricing).

To improve the experience of the operator, a single Sanity document should be used for management of modifiers on Sanity later on. Therefore, removing the modifier multiplier document from Sanity completely.

Note that the above agreements (especially the service mode management via pricingSequence and using distinct PLUs for different combo sizing) depends on the impact to the restaurant operations. Currently, there are complexities on duplication of buttons for the POS screen which could turn out to be a blocker, will be tested by Jean and then alignment/buy-in will be received from the operations.

Items

 RBI Partner API
"cart": {
        "menuSelections": [
            {
                "externalReferenceId": "801500",
                "id": "item_67165",
                "menuSelections": [],
                "price": {
                    "amount": 649,
                    "currency": "EUR"
                },
                "quantity": 1,
                "type": "Item"
            }
        ]
    }
 Oracle TS Gen2 (Get Menus call)
{
    "menuItems": [
        {
            "menuItemId": 1001001, // PLU of the single Whopper no cheese. This is the unique identifier per organization (e.g. BK UK, BK DE). 
            "name": {
                "en-US": "Whopper", // This name comes from the menu item master
                "es-MX": "Whopper s/Q"
            },
            "familyGroupRef": 10001, // Used for reporting purposes
            "definitions": [
                {
                    "definitionSequence": 2, //This determines the channel (delivery) and the price
                    "name": {
                        "en-US": "Whopper", // Names used in the POS specific to the definition sequence
                        "es-MX": "Whopper s/Q"
                    },
                    "name2": {}, // Alternative name to display in KDS
                    "slus": [
                        {
                            "sluNumber": 1, // Screen where item is displayed in the POS (e.g. display in scree named 'A LA CARTA')
                            "sluId": 101,
                            "name": {
                                "en-US": "A LA CARTA DEV"
                            }
                        }
                    ],
                    "prices": [
                        {
                            "priceSequence": 1, // Delivery
                            "price": 119,
                            "name": "Integrador"
                        },
                        {
                            "priceSequence": 2, // Non-integrated delivery
                            "price": 119 // Same price for both
                        }
                    ],
                    "defaultCondiments": [
                        { // Condiuments that come by defaul with the product (i.e. recipe). E.g. tomato, lettuce, bun... 
                            "condimentRef": 9102001,
                            "quantity": 1
                        },
                        {
                            "condimentRef": 9012002,
                            "quantity": 1
                        },
                        {
                            "condimentRef": 9012006,
                            "quantity": 1
                        },
                        {
                            "condimentRef": 9072006,
                            "quantity": 1
                        },
                        {
                            "condimentRef": 9012009,
                            "quantity": 2
                        },
                        {
                            "condimentRef": 9012007,
                            "quantity": 1
                        },
                        {
                            "condimentRef": 9012003,
                            "quantity": 1
                        },
                        {
                            "condimentRef": 9012008,
                            "quantity": 4
                        },
                        {
                            "condimentRef": 9055023,
                            "quantity": 1
                        }
                    ],
                    "condimentGroupRules": [
                        { // Each of these condiment groups refer to multiple modifiers.
                            "condimentGroupRef": 121,
                            "minimumCount": 0,
                            "maximumCount": 0
                        },
                        {
                            "condimentGroupRef": 122, // Condiment group 'Lg Burger Extras'. The condimentGroup has condimentGroupIds which represent each of the modifier PLUs that can be added to this Whopper. 
                            "minimumCount": 0,
                            "maximumCount": 0
                        },
                        {
                            "condimentGroupRef": 123,
                            "minimumCount": 0,
                            "maximumCount": 0
                        },
                        {
                            "condimentGroupRef": 256,
                            "minimumCount": 0,
                            "maximumCount": 0
                        }
                    ],
                    "consumerName": { // Name not used by the POS but used to display to customer. Used for 3P consuming the menu.  
                        "en-US": null,
                        "es-MX": "Whopper sin Queso"
                    },
                    "consumerDescription": { // Description not used by the POS but used to display to customer. Used for 3P consuming the menu.
                        "en-US": null,
                        "es-MX": "Consumer Item Desc"
                    },
                    "images": [
                        { //Images configured in the POS, used for the POS screen. 
                            "index": "1",
                            "url": "https://dimages.bk.com/1400x800 px/91_Whopper.png"
                        },
                        {
                            "index": "3",
                            "url": "https://dimages.bk.com/1400x800 px/91_Whopper.png"
                        },
                        {
                            "index": "6",
                            "url": "https://objectstorage.us-ashburn-1.oraclecloud.com/n/oraclegbuprod/b/IC_FBGBU_SS_54416_bt-sim-230712013344-BUK-6e3d4c47-94fb-42e8-a7bb-9c87ae600a37/o/BUK230731151512503.png",
                            "description": "@POS",
                            "isCloudImage": true,
                            "size": "Size: 171 kb, png: 400 x 400 px"
                        }
                    ],
                    "consumerAdvisoryText": {}, // E.g. contains gluten. 
                    "nutritionalData": [ //Nutritional info. Markets generally don't maintain it. 
                        {
                            "nutritionalItemId": "calories",
                            "value": 670,
                            "unitOfMeasure": "Calories",
                            "name": {
                                "en-US": "Calories"
                            }
                        }
                    ],
                    "extensions": { // Additional info that can be used by third parties. 
                        "PLU - Item": "20100",
                        "PLU - Combo Sm": "3020100",
                        "PLU - Combo Md": "3020101",
                        "PLU - Combo Lg": "3020102"
                    },
                    "taxClassRef": 20 // Defines how to tax the item. The taxClass 20 will define what the VAT is, etc.
                },
                {
                    "definitionSequence": 1, // This is the same as above but for in-store (sequence 1)
                    "name": {
                        "en-US": "Whopper",
                        "es-MX": "Whopper s/Q"
                    },
                    "name2": {},
                    "slus": [
                        {
                            "sluNumber": 1,
                            "sluId": 100,
                            "name": {
                                "en-US": "Whoppers"
                            }
                        }
                    ],
                    "prices": [
                        {
                            "priceSequence": 1,
                            "price": 109
                        }
                    ],
                    "defaultCondiments": [
                        {
                            "condimentRef": 9102001,
                            "quantity": 1
                        },
                        {
                            "condimentRef": 9012002,
                            "quantity": 1
                        },
                        {
                            "condimentRef": 9012006,
                            "quantity": 1
                        },
                        {
                            "condimentRef": 9072006,
                            "quantity": 1
                        },
                        {
                            "condimentRef": 9012009,
                            "quantity": 2
                        },
                        {
                            "condimentRef": 9012007,
                            "quantity": 1
                        },
                        {
                            "condimentRef": 9012003,
                            "quantity": 1
                        },
                        {
                            "condimentRef": 9012008,
                            "quantity": 4
                        },
                        {
                            "condimentRef": 9055023,
                            "quantity": 1
                        }
                    ],
                    "condimentGroupRules": [
                        {
                            "condimentGroupRef": 91,
                            "minimumCount": 0,
                            "maximumCount": 0
                        },
                        {
                            "condimentGroupRef": 92,
                            "minimumCount": 0,
                            "maximumCount": 0
                        },
                        {
                            "condimentGroupRef": 93,
                            "minimumCount": 0,
                            "maximumCount": 0
                        },
                        {
                            "condimentGroupRef": 121,
                            "minimumCount": 0,
                            "maximumCount": 0
                        },
                        {
                            "condimentGroupRef": 122,
                            "minimumCount": 0,
                            "maximumCount": 0
                        },
                        {
                            "condimentGroupRef": 123,
                            "minimumCount": 0,
                            "maximumCount": 0
                        },
                        {
                            "condimentGroupRef": 256,
                            "minimumCount": 0,
                            "maximumCount": 0
                        }
                    ],
                    "consumerName": {
                        "en-US": null,
                        "es-MX": "Whopper sin Queso"
                    },
                    "consumerDescription": {
                        "en-US": null,
                        "es-MX": "Consumer Item Desc"
                    },
                    "images": [
                        {
                            "index": "1",
                            "url": "https://dimages.bk.com/1400x800 px/91_Whopper.png"
                        },
                        {
                            "index": "3",
                            "url": "https://dimages.bk.com/1400x800 px/91_Whopper.png"
                        },
                        {
                            "index": "6",
                            "url": "https://objectstorage.us-ashburn-1.oraclecloud.com/n/oraclegbuprod/b/IC_FBGBU_SS_54416_bt-sim-230712013344-BUK-6e3d4c47-94fb-42e8-a7bb-9c87ae600a37/o/BUK230731151512503.png",
                            "description": "@POS",
                            "isCloudImage": true,
                            "size": "Size: 171 kb, png: 400 x 400 px"
                        }
                    ],
                    "consumerAdvisoryText": {},
                    "nutritionalData": [
                        {
                            "nutritionalItemId": "calories",
                            "value": 670,
                            "unitOfMeasure": "Calories",
                            "name": {
                                "en-US": "Calories"
                            }
                        }
                    ],
                    "extensions": {
                        "PLU - Item": "20100",
                        "PLU - Combo Sm": "3020100",
                        "PLU - Combo Md": "3020101",
                        "PLU - Combo Lg": "3020102"
                    },
                    "taxClassRef": 20
                }
            ]
        }
 Oracle TS Gen 2 (Commit call)
{
    "header": {
        "orgShortName": "{{OrgShortName}}", // org name
        "locRef": "{{LocRef}}",
        "rvcRef": {{RvcRef}}, // revenue center
        "idempotencyId": "{{$guid}}", // single ID
        "orderTypeRef": 9, // needs to match with the POS type, e.g. 9 is delivery
        "checkEmployeeRef": {{check_employee_ref}},
        "informationLines": ["{\"custName\":\"Rafael\", \"custId:ABC0987654321\"}"] // this displays in receipt
        
    }
,

    "menuItems": [
        {   "menuItemId":1001001, // Whopper PLU
            "definitionSequence": 1, // In-store (def 1)
            "quantity": 1 // Number of Whoppers
        }
    ],
    "tenders": [
        {
            "tenderId": 901 // Pay at counter tender. Order is unpaid. tenderId differs based on payment method. 
        }
    ]
}
 RBI Partner API
    "cart": {
        "menuSelections": [
            {
                "externalReferenceId": "801500",
                "id": "item_67165",
                "menuSelections": [
                    {
                        "externalReferenceId": "940289", 
                        "id": "34933841d0e7",
                        "menuSelections": [],
                        "price": {
                            "amount": 0,
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "ItemOptionModifier"
                    },
                    {
                        "externalReferenceId": "940294",
                        "id": "2fb34e217cf2",
                        "menuSelections": [],
                        "price": {
                            "amount": 0,
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "ItemOptionModifier"
                    }
                ],
                "price": {
                    "amount": 649,
                    "currency": "EUR"
                },
                "quantity": 1,
                "type": "Item"
            }
        ]
    },

The following payloads are from BK MX and are not up to date/standard. We won’t use definitionSequence 1, 2 for different service modes.

  • Two modifier PLUs:

    • Remove (“No”)

    • Add with quantities (multiples for each quantity – e.g. 1x ketchup, 2x ketchup).

  • Each modifier has a priceSequence - 1 for pickup and 2 for delivery.

 Oracle TS Gen2 (Get menus call)

Condiment Group

"condimentGroups": [
        {
            "condimentGroupId": 125, // Condiment groups are referenced in single menu items
            "name": {
                "en-US": "Sm Burger Extras"
            },
            "condimentItemRefs": [ // These are modifier PLUs
                9005004,
                9011005,
                9011010,
                9011012,
                9021004,
                9055001,
                9055004,
                9055021,
                9055022,
                9011018,
                9011013,
                9055025
            ],
            "consumerDescription": {
                "en-US": null
            }
        },

Condiment Item. This applies also to defaultCondiments

    "condimentItems": [
{
            "name": { // Name of the condiment (modifier)
                "en-US": "Ham",
                "es-MX": "Jamon"
            },
            "condimentId": 9005004, // PLU of the condiment
            "familyGroupRef": 60002, // Reporting ID
            "definitions": [
                {
                    "number": 2, // It can sold for delivery, definition 2
                    "name": {
                        "en-US": "Ham",
                        "es-MX": "Jamon"
                    },
                    "name2": {}, // Secondary name
                    "prices": [
                        {
                            "priceSequence": 1,
                            "price": 0, 
                            "name": "Default" // Oracle uses prefixes for different quantities of the modifier. But this can also be individual PLUs
                        },
                        {
                            "priceSequence": 2,
                            "price": 0,
                            "name": "Add"
                        },
                        {
                            "priceSequence": 5,
                            "price": 0,
                            "name": "Sub"
                        },
                        {
                            "priceSequence": 8,
                            "price": 0,
                            "name": "Extra"
                        },
                        {
                            "priceSequence": 3,
                            "price": 0,
                            "name": "No"
                        },
                        {
                            "priceSequence": 4,
                            "price": 0, // price you charge for heavy ham
                            "name": "Hvy"
                        }
                    ]
                },
                {
                    "number": 1, // Same for definition 1, in-restaurant
                    "name": {
                        "en-US": "Ham",
                        "es-MX": "Jamon"
                    },
                    "name2": {},
                    "prices": [
                        {
                            "priceSequence": 2,
                            "price": 19,
                            "name": "Add"
                        },
                        {
                            "priceSequence": 3,
                            "price": 0,
                            "name": "No"
                        },
                        {
                            "priceSequence": 4,
                            "price": 0,
                            "name": "Hvy"
                        },
                        {
                            "priceSequence": 5,
                            "price": 0,
                            "name": "Sub"
                        },
                        {
                            "priceSequence": 6,
                            "price": 0,
                            "name": "Add"
                        },
                        {
                            "priceSequence": 7,
                            "price": 0,
                            "name": "No"
                        },
                        {
                            "priceSequence": 8,
                            "price": 0,
                            "name": "Extra"
                        },
                        {
                            "priceSequence": 1,
                            "price": 0,
                            "name": "Default"
                        }
                    ]
                }
            ]
        }
 Oracle TS Gen 2 (Commit call)
{
    "header": {
        "orgShortName": "{{OrgShortName}}", // org name
        "locRef": "{{LocRef}}",
        "rvcRef": {{RvcRef}}, // revenue center
        "idempotencyId": "{{$guid}}", // single ID
        "orderTypeRef": 9, // needs to match with the POS type, e.g. 9 is delivery
        "checkEmployeeRef": {{check_employee_ref}},
        "informationLines": ["{\"custName\":\"Rafael\", \"custId:ABC0987654321\"}"] // this displays in receipt
        
    }
,

    "menuItems": [
        {   "menuItemId":1001001, // Whopper PLU
            "definitionSequence": 1, // In-store (def 1)
            "quantity": 1, // Number of Whoppers
            "condiments": [ // No patty modifier.
                {
                    "condimentId": 9072006, // PLU of the modifier/condiment. Whopper patty. 
                    "priceSequence": 3, // Prefix of the modifier. This is the "No" modifier. If you want an additional patty, this would be 2. 
                    "quantity": 1 // This determines the quantity of the modifier. E.g. add 2 whopper patties would be quantity 2. 
                }
            ]
        }
    ],
    "tenders": [
        {
            "tenderId": 901 // Pay at counter tender. Order is unpaid. tenderId differs based on payment method. 
        }
    ]
}

Combos

Oracle can only handle up to 10,000 combos.

 RBI Partner API
"cart": {
        "menuSelections": [
            {
                "externalReferenceId": "940269",
                "id": "3ffc8d3e-7c67-4410-8fbd-cd1b366fbf20",
                "menuSelections": [
                    {
                        "externalReferenceId": "801500",
                        "id": "item_67165",
                        "menuSelections": [],
                        "price": {
                            "amount": 0,
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "Item"
                    },
                    {
                        "externalReferenceId": "942214",
                        "id": "item_50929",
                        "menuSelections": [],
                        "price": {
                            "amount": 0,
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "Item"
                    },
                    {
                        "externalReferenceId": "942215",
                        "id": "item_66018",
                        "menuSelections": [],
                        "price": {
                            "amount": 0,
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "Item"
                    },
                    {
                        "externalReferenceId": "940325",
                        "id": "45adf5bb-2f3d-4c40-a735-cf59d5a661ef",
                        "menuSelections": [],
                        "price": {
                            "amount": 0,
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "Item"
                    }
                ],
                "price": {
                    "amount": 849,
                    "currency": "EUR"
                },
                "quantity": 1,
                "type": "Combo"
            }
        ]
    },
 Oracle TS Gen2 (Get Menus call)
    "comboMeals": [
        {
            "comboMealId": 1001002, // Combo Meal definition, internal for Oracle
            "name": "Whopper Cmb",
            "menuItemRef": 1001002, // Combo PLU
            "comboGroups": [
                {
                    "comboGroupId": 1001,
                    "name": "Whopper",
                    "count": 1, // Quantity. How many items need to be selected.
                    "isMainGroup": true, // This is the main item
                    "menuItems": [
                        {
                            "menuItemRef": 1001001, // This is the main item PLU. Same PLU as the Whopper ALC. You use it to validate availability. 
                            "count": 1, // Quantity, tells you the quantity of this item inside of the group
                            "prices": [] // Price is not set inside of the combo.
                        }
                    ],
                    "prices": []
                },
                {
                    "comboGroupId": 202,
                    "name": "Drnk (S)",
                    "count": 1, // Select 1 drink. 
                    "isMainGroup": false, // This is the drinks side. 
                    "menuItems": [ // List of all option drinks. 
                        {
                            "menuItemRef": 2102003, // Drink PLU
                            "count": 1,
                            "prices": [] // No additional price as it is included in the combo build. 
                        },
                        {
                            "menuItemRef": 2103003,
                            "count": 1,
                            "prices": [
                                {
                                    "priceSequence": 1,
                                    "price": 10 // Aditional price as this is a larger drink vs what's included in the combo. E.g. medium drink for a small combo.
                                }
                            ]
                        },
                        {
                            "menuItemRef": 2104003,
                            "count": 1,
                            "prices": [
                                {
                                    "priceSequence": 1,
                                    "price": 12.5 // Aditional price as this is a larger drink vs what's included in the combo. E.g. large drink for a small combo.
                                }
                            ]
                        },
                    ],
                    "prices": []
                },
                {
                    "comboGroupId": 102,
                    "name": "Sides",
                    "count": 1,
                    "isMainGroup": false,
                    "menuItems": [
                        {
                            "menuItemRef": 1013301, // This could be the Medium fries PLU. This PLU might have modifiers defined in the menu item defintiion (e.g. add salt).
                            "count": 1,
                            "prices": [
                                {
                                    "priceSequence": 1,
                                    "price": 10 // Premium price as this could be medium fries for a small combo. 
                                }
                            ]
                        },
                        {
                            "menuItemRef": 1013401,
                            "count": 1,
                            "prices": [
                                {
                                    "priceSequence": 1,
                                    "price": 12.5
                                }
                            ]
                        },
                        {
                            "menuItemRef": 1013202,
                            "count": 1,
                            "prices": []
                        }
                    ],
                    "prices": []
                }
            ]
        }
 Oracle TS v2 (Commit call)
{
    "header": {
        "orgShortName": "{{OrgShortName}}",
        "locRef": "{{LocRef}}",
        "rvcRef": {{RvcRef}},
        "idempotencyId": "{{$guid}}",
        "orderTypeRef": 9,
        "checkEmployeeRef": {{check_employee_ref}},
        "language": "es-ES",
        "Accept-Language": "es-ES"        
    },
    "menuItems": [], // this is just for single items
    "comboMeals": [ // this is for combos
        {
            "comboMealId": 1001002, // whopper combo meal ID
            "comboItem": {
                "menuItemId": 1001002, // whopper combo PLU
                "definitionSequence": 1, //in-store sequence
                "quantity": 1 // number of combos
            },
            "mainItem": {
                "menuItemId": 1001421, // PLU of the whopper ALC
                "definitionSequence": 1,
                "quantity": 1,
                    "condiments": [
                        {
                            "condimentId": 9011017, // condiment/modifier PLU for lettuce
                            "priceSequence": 3, // this determines the prefix of the condiment. in this case, "no"
                            "quantity": 1
                        }
                    ]
            },
            "sideItems": [
                {
                    "menuItemId": 1013201, // small fries PLU
                    "definitionSequence": 1,
                    "quantity": 1
                },
                {
                    "menuItemId": 2102002, // small pepsi PLU
                    "definitionSequence": 1,
                    "quantity": 1
                }
            ]
        }
    ],
    "tenders": [
        {
            "tenderId": 901 // pay at counter PLU
        }
    ]
}
 RBI Partner API
"cart": {
        "menuSelections": [
            {
                "externalReferenceId": "940269",
                "id": "3ffc8d3e-7c67-4410-8fbd-cd1b366fbf20",
                "menuSelections": [
                    {
                        "externalReferenceId": "801500",
                        "id": "item_67165",
                        "menuSelections": [
                            {
                                "externalReferenceId": "940275",
                                "id": "9cbf858b2190",
                                "menuSelections": [],
                                "price": {
                                    "amount": 1000,
                                    "currency": "EUR"
                                },
                                "quantity": 1,
                                "type": "ItemOptionModifier"
                            },
                            {
                                "externalReferenceId": "940294",
                                "id": "2fb34e217cf2",
                                "menuSelections": [],
                                "price": {
                                    "amount": 0,
                                    "currency": "EUR"
                                },
                                "quantity": 1,
                                "type": "ItemOptionModifier"
                            }
                        ],
                        "price": {
                            "amount": 0,
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "Item"
                    },
                    {
                        "externalReferenceId": "942214",
                        "id": "item_50929",
                        "menuSelections": [],
                        "price": {
                            "amount": 0,
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "Item"
                    },
                    {
                        "externalReferenceId": "940209",
                        "id": "item_66033",
                        "menuSelections": [],
                        "price": {
                            "amount": 0,
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "Item"
                    },
                    {
                        "externalReferenceId": "940325",
                        "id": "45adf5bb-2f3d-4c40-a735-cf59d5a661ef",
                        "menuSelections": [],
                        "price": {
                            "amount": 0,
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "Item"
                    }
                ],
                "price": {
                    "amount": 849,
                    "currency": "EUR"
                },
                "quantity": 1,
                "type": "Combo"
            }
        ]
    }
 Oracle TS Gen 2 (Commit call)
{
    "header": {
        "orgShortName": "{{OrgShortName}}", // org name
        "locRef": "{{LocRef}}",
        "rvcRef": {{RvcRef}}, // revenue center
        "idempotencyId": "{{$guid}}", // single ID
        "orderTypeRef": 9, // needs to match with the POS type, e.g. 9 is delivery
        "checkEmployeeRef": {{check_employee_ref}},
        "informationLines": ["{\"custName\":\"Rafael\", \"custId:ABC0987654321\"}"] // this displays in receipt
        
    }
,

    "menuItems": [
        {   "menuItemId":1001001, // Whopper PLU
            "definitionSequence": 1, // In-store (def 1)
            "quantity": 1, // Number of Whoppers
            "condiments": [ // No patty modifier.
                {
                    "condimentId": 9072006, // PLU of the modifier/condiment. Whopper patty. 
                    "priceSequence": 3, // Prefix of the modifier. This is the "No" modifier. If you want an additional patty, this would be 2. 
                    "quantity": 1 // This determines the quantity of the modifier. E.g. add 2 whopper patties would be quantity 2. 
                }
            ]
        }
    ],
    "tenders": [
        {
            "tenderId": 901 // Pay at counter tender. Order is unpaid. tenderId differs based on payment method. 
        }
    ]
}
 RBI Partner API
"cart": {
        "menuSelections": [
            {
                "externalReferenceId": "940269",
                "id": "3ffc8d3e-7c67-4410-8fbd-cd1b366fbf20",
                "menuSelections": [
                    {
                        "externalReferenceId": "801500",
                        "id": "item_67165",
                        "menuSelections": [],
                        "price": {
                            "amount": 0,
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "Item"
                    },
                    {
                        "externalReferenceId": "942214",
                        "id": "item_50929",
                        "menuSelections": [],
                        "price": {
                            "amount": 0,
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "Item"
                    },
                    {
                        "externalReferenceId": "942215",
                        "id": "item_66018",
                        "menuSelections": [],
                        "price": {
                            "amount": 100, //premium comboslot
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "Item"
                    },
                    {
                        "externalReferenceId": "940325",
                        "id": "45adf5bb-2f3d-4c40-a735-cf59d5a661ef",
                        "menuSelections": [],
                        "price": {
                            "amount": 0,
                            "currency": "EUR"
                        },
                        "quantity": 1,
                        "type": "Item"
                    }
                ],
                "price": {
                    "amount": 849,
                    "currency": "EUR"
                },
                "quantity": 1,
                "type": "Combo"
            }
        ]
    },
 Oracle TS Gen2 (Commit call)
{
    "header": {
        "orgShortName": "{{OrgShortName}}",
        "locRef": "{{LocRef}}",
        "rvcRef": {{RvcRef}},
        "idempotencyId": "{{$guid}}",
        "orderTypeRef": 9,
        "checkEmployeeRef": {{check_employee_ref}},
        "language": "es-ES",
        "Accept-Language": "es-ES"        
    },
    "menuItems": [], // this is just for single items
    "comboMeals": [ // this is for combos
        {
            "comboMealId": 1001002, // whopper combo meal ID
            "comboItem": {
                "menuItemId": 1001002, // small whopper combo PLU
                "definitionSequence": 1, //in-store sequence
                "quantity": 1 // number of combos
            },
            "mainItem": {
                "menuItemId": 1001421, // PLU of the whopper ALC
                "definitionSequence": 1,
                "quantity": 1,
                    "condiments": [
                        {
                            "condimentId": 9011017, // condiment/modifier PLU for lettuce
                            "priceSequence": 3, // this determines the prefix of the condiment. in this case, "no"
                            "quantity": 1
                        }
                    ]
            },
            "sideItems": [
                {
                    "menuItemId": 1013201, // small fries PLU
                    "definitionSequence": 1,
                    "quantity": 1
                },
                {
                    "menuItemId": 2104002, // large pepsi PLU
                    "definitionSequence": 1,
                    "quantity": 1
                }
            ]
        }
    ],
    "tenders": [
        {
            "tenderId": 901 // pay at counter PLU
        }
    ]
}

Offers

See Offers & Rewards - Payload Format .

Rewards

See https://rbictg.atlassian.net/wiki/spaces/ORACLE/pages/5123571783/Offers+Rewards+-+Payload+Format#Reward-payload-structures .

  • No labels