[UPDATED] Oracle Menu Adjustments - Khumbu Requirements
- 1 Context
- 2 Requirements
- 2.1 Items
- 2.1.1 Menu Sync
- 2.1.2 Order Pricing
- 2.2 Combos
- 2.2.1 Menu Sync
- 2.2.2 Order Pricing
- 2.3 Modifiers
- 2.3.1 Menu Sync
- 2.3.2 Order Pricing
- 2.4 Offers
- 2.4.1 Menu Sync
- 2.4.2 Order Pricing
- 2.5 Rewards
- 2.5.1 Menu Sync
- 2.5.2 Order Pricing
- 2.6 Cart Level Discounts
- 2.6.1 Menu Sync
- 2.6.2 Order Pricing
- 2.1 Items
Context
This document aims to consolidate RBI requirements to Khumbu related to the Oracle Menu Adjustments.
RBI and Oracle handle PLUs in a different manner. While RBI scopes their PLUs by service mode, Oracle uses price sequence and definition sequence.
Besides the service mode scoping, price sequence and definition sequence are used by Oracle to handle adding/removing modifiers from items. RBI does it via the quantity attribute in it’s payloads.
This document will go over how to perform the correct mapping between those two different platforms.
Requirements
The requirements are divided by the scope of product type.
For each product type, there are specific requirements related to Menu Sync and to Order Pricing.
One important thing to highlight that is global:
Price Sequence and Definition Sequence vary per market/brand and it’s respective mapping to RBI’s service modes must be configurable on Khumbu’s end.
For order pricing, Khumbu will always receive the same PLUs it provided for RBI, so it will have to perform the reverse conversions into Oracle’s definition sequence and price sequence.
Items
Menu Sync
→ In the scope of items, RBI expects Khumbu to convert Oracle’s definition sequence and price sequence into the adequate RBI service mode when syncing menu prices.
Menu Product Type | Oracle | RBI | |||
---|---|---|---|---|---|
PLU | Definition Sequence | Price Sequence | Service Mode | PLU | |
Item | 123 | 1 | 1 | pickup | 123 |
Item | 123 | 1 | 2 | delivery | 123 |
Order Pricing
For pricing items, Khumbu will receive RBI’s service modes and PLUs and must perform the reverse conversion into Oracle’s price sequence and definition sequence.
Combos
Combo’s behave slightly different when compared to items.
Oracle uses dynamic combos with single PLU for the combo, while RBI uses the concept of size based PLUs.
To map Oracle dynamic combos into RBI’s size based PLUs, the Size information on Oracle’s combo meal groups should be used. The equivalence between RBI size based plus and and Oracle’s combo meal group size information can vary per market and should be configurable. As an example, we’re considering:
Size 1 = small
Size 2 = medium
Size 3 = large
Size 4 = kids
Menu Sync
In the scope of combos, RBI expects Khumbu to:
→ perform Oracle’s definition sequence and price sequence mapping into RBI’s service modes.
→ concatenate RBI sizes to the combo PLUs according to Oracle’s combo meal group size.
→ this concatenation should be done with a dash -
.
Menu Product Type | Oracle | RBI | ||||
---|---|---|---|---|---|---|
PLU | Definition Sequence | Price Sequence | Combo Meal Group Size | Service Mode | PLU | |
Combo | 456 | 1 | 1 | 1 | pickup | 456-small |
Combo | 456 | 1 | 1 | 2 | pickup | 456-medium |
Combo | 456 | 1 | 2 | 3 | delivery | 456-large |
Combo | 456 | 1 | 2 | 4 | delivery | 456-kids |
Order Pricing
For pricing combos, Khumbu will receive RBI’s service modes and PLUs and must perform the reverse conversion into Oracle’s price sequence and definition sequence.
The combo PLU will contain the size based concatenation from RBI.
Modifiers
In the modifiers topic, Oracle uses different definition sequence and price sequence to distinguish between adding/removing modifiers.
In contrast, RBI will handle adding/removing modifiers through the quantity field when pricing an order. E.g.: modifiers with 0 quantity are supposed to be removed. This is currently a work in progress by RBI and should be available soon.
This means that RBI is not aware of the Oracle’s concept of ‘NO’ to a modifier.
Menu Sync
→ In the menu sync, RBI expects Khumbu to send the price for adding a given modifier (price sequence 3 for pickup, price sequence 6 for delivery).
→ Khumbu should properly match the price sequences to the appropriate RBI service mode.
Menu Product Type | Oracle | RBI | |||||
---|---|---|---|---|---|---|---|
PLU | Definition Sequence | Price Sequence | Action | Service Mode | PLU | Quantity(received on pricing request) | |
Modifier | 789 | 1 | 2 | ADD | pickup | 789 | 1 or greater |
Modifier | 789 | 1 | 3 | NO | pickup | 789 | 0 |
Modifier | 789 | 1 | 6 | ADD | delivery | 789 | 1 or greater |
Modifier | 789 | 1 | 7 | NO | delivery | 789 | 0 |
Order Pricing
→ When receiving a price order request, Khumbu should perform the RBI PLU and service mode conversion into Oracle’s price sequence and definition sequence
→ Additionally, if the modifier quantity is 0, Khumbu should map into Oracle’s price sequence for ‘NO’.
In the current setup, Loyalty Offers and Rewards are configured as ComboMeals in Oracle, the same as how to configure RBI Combos. However Offers and Rewards could be treated differently from the Combos, we agree that Family Groups are used to differentiate them from Combos. But the Family Groups vary between markets, they need to be configurable on Khumbu side.
Offers
There are two different Offers as following.
Offer with Combo as benefit
The Offers with different size of Combo are configured in different ComboMeal as the corresponing size in Oracle, means they have different Oracle PLUs, no size based PLU mapping is needed in the Menu Sync.
Offer with Item as benefit
The Offers are configured using ComboMeal with single PLU, but the dynamic sizes is not needed. In this case, no size based PLU mapping is needed.
Menu Sync
In the scope of offers, RBI expects Khumbu to:
Offer with Combo as benefit
→ perform Oracle’s definition sequence and price sequence mapping into RBI’s service modes.
Menu Product Type | Oracle | RBI | ||||
---|---|---|---|---|---|---|
PLU | Definition Sequence | Price Sequence | Combo Meal Group Size | Service Mode | PLU | |
Offer | 111 | 1 | 1 | 1 | pickup | 111 |
Offer | 222 | 1 | 1 | 2 | pickup | 222 |
Offer | 333 | 1 | 2 | 3 | delivery | 333 |
Offer | 444 | 1 | 2 | 4 | delivery | 444 |
Offer with Item as benefit
→ perform Oracle’s definition sequence and price sequence mapping into RBI’s service modes.
Menu Product Type | Oracle | RBI | |||
---|---|---|---|---|---|
PLU | Definition Sequence | Price Sequence | Service Mode | PLU | |
Offer | 555 | 1 | 1 | pickup | 555 |
Offer | 555 | 1 | 2 | delivery | 555 |
Order Pricing
For pricing Offers, Khumbu will receive RBI’s service modes and PLUs and must perform the reverse conversion into Oracle’s price sequence and definition sequence.
Khumbu will receive only the Oracle PLU (without the size based concatenation), for the following two types of Offers
Offer with Combo as benefit
In the structure, the size-based PLU of the benefit Combo is also sent, then the size of the Offer ComboMeal can be reversed by using the size-based PLU of the benefit Combo.
Offer with Item as benefit
The size of the Offer ComboMeal can be reversed using the default size set in Oracle.
Rewards
Rewards are configured as same as Offers in Oracle, so the behavior is the same as Offers. There are also two different Rewards, Reward with Combo as benefit and Reward with Item as benefit.
Menu Sync
In the scope of rewards, RBI expects Khumbu to:
Reward with Combo as benefit
→ perform Oracle’s definition sequence and price sequence mapping into RBI’s service modes.
Menu Product Type | Oracle | RBI | ||||
---|---|---|---|---|---|---|
PLU | Definition Sequence | Price Sequence | Combo Meal Group Size | Service Mode | PLU | |
Reward | 666 | 1 | 1 | 1 | pickup | 666 |
Reward | 777 | 1 | 1 | 2 | pickup | 777 |
Reward | 888 | 1 | 2 | 3 | delivery | 888 |
Reward | 999 | 1 | 2 | 4 | delivery | 999 |
Reward with Item as benefit
→ perform Oracle’s definition sequence and price sequence mapping into RBI’s service modes.
Menu Product Type | Oracle | RBI | |||
---|---|---|---|---|---|
PLU | Definition Sequence | Price Sequence | Service Mode | PLU | |
Reward | 000 | 1 | 1 | pickup | 000 |
Reward | 000 | 1 | 2 | delivery | 000 |
Order Pricing
For pricing Rewards, Khumbu will receive RBI’s service modes and PLUs and must perform the reverse conversion into Oracle’s price sequence and definition sequence.
Khumbu will receive only the Oracle PLU (without the size based concatenation), for the following two types of Rewards
Reward with Combo as benefit
In the structure, the size-based PLU of the benefit Combo is also sent, then the size of the Reward ComboMeal can be reversed by using the size-based PLU of the benefit Combo.
Reward with Item as benefit
The size of the Reward ComboMeal can be reversed using the default size set in Oracle.
Cart Level Discounts
Discounts are configured using discount in Oracle, where the discount has no price sequence, definition sequence, nor price. So there is no mapping in Menu Sync and Order Pricing.
Menu Sync
Discounts are not needed to be included in the menu sync.
Order Pricing
For pricing items, Khumbu will receive RBI’s service modes and PLUs, but no transformation is needed, the discount PLU sent from RBI can be used.