Oracle Config - Offers

Contents

Overview

Offers will be mapped to Oracle Discounts. However, during testing, RBI found issues with the Oracle API that prevent the use of discounts at this stage. These issues are expected to be solved by Oracle by the end of Q1 2025. In the interim, offers need to be configured in Oracle as combos. Sub-sections of this document below cover the Oracle and Sanity configuration for both combo-based and discount-based offers.

Using combos is a workaround and will be replaced by discounts once the Oracle issues are resolved. To minimise impact to business operations, the RBI Platform allows combo-based and discount-based offers to co-exist, which means that Franchisees will be able to decide when they want to switch from combo-based to discount-based.

Combo-based offers

Oracle

@Marrara, Jean Review Offers configuration Guide for Oracle

Sanity

https://rbictg.atlassian.net/wiki/spaces/HELP/pages/4902027448

Discount-based offers

Oracle

For offers we need a distinct discount ID per offers with a price associated to it. The only exception is with cart level discounts that only need a discount ID associated to it. For cart level and product discounts logic is done in the app to calculate prices.

@Marrara, Jean Review Offers configuration Guide for Oracle

Sanity

https://rbictg.atlassian.net/wiki/spaces/HELP/pages/4902027448

Payloads

The structure of order payloads sent to Khumbu is the same, regardless of whether offers are configured as discounts or combos. If configured as discounts, the externalReferenceId field will have a D- suffix, for example D-129.

Scenario

Payload

Scenario

Payload

Offer items

  • Standard reward added to the basket (as seen in the screenshot below)

    • Discount ID = 105

    • Menu item ID = 100-1-1

  • Regular menu item also added to the basket (not shown in the screenshot):

    • Menu item ID = 200-1-1

image-20240315-235844.png
{ "callbackUrl": "https://euc1-staging-plk-partners-api.rbictg.com/api/v1/orders/773c6655-a9ad-4e5b-9581-143d43c4f463/price/callback", "cart": { "menuSelections": [ { "externalReferenceId": "D-105", // offer discount id "id": "31049d5a-4047-4965-8780-8ff2f37775dc", "menuSelections": [ { "externalReferenceId": "100-1-1", // item PLU "id": "ba322af6-a956-4c6b-8bf2-d6fea3c351fd", "menuSelections": [], "price": { "amount": 2495, "currency": "PLN" }, "quantity": 1, "type": "Item" } ], "price": { "amount": 200, // offer price "currency": "PLN" }, "quantity": 1, "type": "Offer" }, { "externalReferenceId": "200-1-1", // item PLU "id": "31049d5a-4047-4965-8780-8ff2f37775dc", "price": { "amount": 2400, "currency": "PLN" }, "quantity": 1, "type": "Item" } ] }, "channel": "WHITELABEL_IN_STORE", "fees": [], "id": "773c6655-a9ad-4e5b-9581-143d43c4f463", "instructions": [], "number": "M360", "orderDiscounts": [], "serviceMode": "TAKEOUT", "storeId": "48002" }

Offer combos

  • Standard offer added to the basket (as seen in the screenshot below)

    • Discount ID = 105

    • Menu Combo ID = 100-1-1

    • Menu Item 1 ID = 101-1-1

    • Menu Item 2 ID = 102-1-1

    • Menu Item 3 ID = 103-1-1

"cart": { "menuSelections": [ { "externalReferenceId": "105", // offer discount id "id": "43b4cf07-79c9-4aff-98d1-bce9cf2d890f", "menuSelections": [ { "externalReferenceId": "100-1-1", // combo plu "id": "43b4cf07-79c9-4aff-98d1-bce9cf2d890f", //combo sanity id "menuSelections": [ { "externalReferenceId": "101-1-1", // item 1 plu "id": "item_1852", "menuSelections": [], "price": { "amount": 0, "currency": "SAR" }, "quantity": 1, "type": "Item" }, { "externalReferenceId": "102-1-1", // item 2 plu "id": "4f99db1e-128a-4e53-b23b-dffc0fedf636", "menuSelections": [], "price": { "amount": 0, "currency": "SAR" }, "quantity": 1, "type": "Item" }, { "externalReferenceId": "103-1-1", // item 3 plu "id": "16f482db-2f13-4476-88d3-d2eec26057f3", "menuSelections": [], "price": { "amount": 0, "currency": "SAR" }, "quantity": 1, "type": "Item" }, ], "price": { "amount": 300, // original price of combo "currency": "SAR" }, "quantity": 1, "type": "Combo" } ], "price": { "amount": 100, // final price of the offer "currency": "SAR" }, "quantity": 1, "type": "Offer" } ] },

Offer cart level discount

20% off in the total value of the cart

  • Discount ID = D-107

  • Combo Menu item ID = 100-1-1 (this is a normal menu item added to the cart. Other menu items could be added to the cart and the 20% off discount would apply to the total of the cart)

    • Menu Combo ID = 100-1-1

    • Menu Item 1 ID = 101-1-1

    • Menu Item 2 ID = 102-1-1

    • Menu Item 3 ID = 103-1-1

{ "callbackUrl": "https://euw3-staging-bk-partners-api.rbictg.com/api/v1/orders/b311434d-e4ee-4bfb-a3b7-c84bb5bcfb1d/price/callback", "cart": { "menuSelections": [ { "externalReferenceId": "100-1-1", "id": "7403727e-949c-42b6-a544-5f2124e17c5c", "menuSelections": [ { "externalReferenceId": "101-1-1", "id": "item_11177", "menuSelections": [], "price": { "amount": 0, "currency": "EUR" }, "quantity": 1, "type": "Item" }, { "externalReferenceId": "102-1-1", "id": "2d874c0a-37da-406e-a50e-cd3cd9c5c710", "menuSelections": [], "price": { "amount": 0, "currency": "EUR" }, "quantity": 1, "type": "Item" } ], "price": { "amount": 425, "currency": "EUR" }, "quantity": 1, "type": "Combo" }, { "externalReferenceId": "D-107", // Oracle Discount ID "id": "08e4ccf5-23fc-4bc7-a800-a7703e7228c6", "menuSelections": [], "price": { "amount": 0, "currency": "EUR" }, "quantity": 1, "type": "Offer" } ] }, "channel": "WHITELABEL_IN_STORE", "fees": [ { "total": { "amount": 48, "currency": "EUR" }, "type": "BAG_FEE" } ], "id": "b311434d-e4ee-4bfb-a3b7-c84bb5bcfb1d", "instructions": [], "number": "6406", "orderDiscounts": [ { "type": "amount", "value": 200 } ], "serviceMode": "DRIVE_THRU", "storeId": "12349" }

Offer product discount

50% off only in the Whopper a la carte product

  • Discount ID = D-107

  • Combo item ID = 100-1-1 (this refers to the whopper menu item that needs to be discounted at 50% off)

    • Item 1 ID = 101-1-1

    • Item 2 ID = 102-1-1