Menu - Payload format

Payloads from Partner API and Oracle for each menu structure.

Partner API structure examples: Orders API - Cart Structure Examples

Contents

Items

Single item

"cart": { "menuSelections": [ { "externalReferenceId": "801500", "id": "item_67165", "menuSelections": [], "price": { "amount": 649, "currency": "EUR" }, "quantity": 1, "type": "Item" } ] }
{ "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 } ] }
{ "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. } ] }

Item with modifiers

"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.

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" } ] } ] }
{ "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.

Single combo

"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" } ] },
"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": [] } ] }
{ "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 } ] }

Combo with modifiers on items

"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" } ] }
{ "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. } ] }

Combo with premium comboslot

"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" } ] },
{ "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 https://rbictg.atlassian.net/wiki/spaces/ORACLE/pages/5123571783 .

Rewards

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

Related content