...
Info |
---|
Terminology & overview: Oracle Config POS - OverviewStandards GET Menus: check for PLU + DefSeq + PriceSeq to verify if item is active or not in the restaurant. Items that are not active are unavailable. However, this endpoint doesn’t take restaurant-level availability into account fully. To retrieve unavailable items per store, we need to make another call to the GET 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. Unavailable items from GET Unavailable must be removed from the active list retrieved from GET Menus. Call GET Menu - using v1/menus (Khumbu already does) Call GET Unavailable endpoint --- using (menus/items/unavailable) (Khumbu already does) Actively listen to Configuration Notifications webhook for changes to availability (notifications API) (Khumbu doesn't do this currently.) If an item is unavailable in this endpoint, is means it is unavailable in all service modes. Note that the Configuration Notification will only indicate there’s been a change in availability but will not specify what items are impacted by the change (additional details on the webhooks section).
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 (pick-up and delivery). Assumption: In general, menu item availability is not managed differently per service mode on a store-level, meaning availability for pick-up and delivery is generally the same. For specific items whose availability is different for pickup and delivery within the same store, the following will be the suggestion to the operator: |
...
Info |
---|
Khumbu will concatenate 3 IDs for items, combos, modifiers: PLU-DefSeq-PriceSeq. Configuration of Definition Sequence and Price SequenceOperators should only input PLU priceSeq and defSeq should be configured elsewhere for the whole market, not inputted by operators.
The priceSequence or definitionSequence should only be configured once for a given menu item type (item, combo, modifier) in a given brand/market. E.g. priceSequence & defSequence always same for all items (no difference between individual item documents). Example configuration matrix - for each Consider the following matrix as an example for a brand/market-level configuration:
|
Note |
---|
Note that some existing markets use definitionSequence and priceSequence differently. For example, priceSequence used for indicating different sizes for combos. Even though we would be able to support some of these configurations, these markets would be suggested to change their configuration based on the standard guidelines defined by RBI / Oracle with a one-off configuration migration which Oracle can support via an Excel upload. |
Info |
---|
2 dimensions - service mode and quantities (multipliers). We can distinguish between service modes and multipliers We can distinguish between service modes and multipliers using a combination of the 3 IDs. Only 2 levels of modifiers will be supported for mobile ordering: ADD and NO. Additional modifier multipliers (more granular levels of customization such as ‘heavy ketchup’, ‘light ketchup’) won’t be supported for mobile ordering in the initial scope. priceSequences will be used for determining the ADD and NO modifiers, as well as pricing across service modes: priceSeq 2 = In Restaurant Add priceSeq 3 = In Restaurant No priceSeq 6 = Delivery Add priceSeq 7 = Delivery No
A single Sanity document will be used for each modifier, with a single PLU used for both in-restaurant and delivery service modes.
|
Info |
---|
Later on, additional toggles (or any other UI mechanism) can be added to allow for multiples of Add (light, heavy, 2x, 3x.). For Add and No, a toggle UI option will be added to the Sanity document under item → Options. Option 1 (tentative): A single modifier document called Ketchup in Sanity. If a given item needs to have Ketchup, it is added under Item --> Options as it is currently done (example here). Image RemovedUpon clicking on Ketchup under Options, today we see additional Options (Item --> Options --> Options) for ketchup (its modifier multipliers): Image Removed Instead of defining Add and No modifier multipliers and adding via Item --> Options --> Options, we will have a selection option for Add and No under Item --> Options, available by default for all modifiers added.
|
...
Scenario
...
UI Configuration
...
If a guest can remove a modifier from an item and can also add more.
...
Both the Add and No UI selections will be selected/turned on.
...
If a guest cannot remove a modifier from an item but can still add more of it.
...
The Add UI selection will be selected/turned on.
...
If a guest can remove a modifier from an item but cannot add more.
...
The No UI selection will be selected/turned on.
...
If a guest cannot do anything about a modifier from an item.
...
No need to add that modifier under Item --> Options.
Info |
---|
TBD: The new modifier UI might be specific to Oracle POS in order to not introduce breaking changes for existing markets. For example, BK UK having both NCR that uses Modifier Multiplier, and Oracle that will use the togglesnew UI. For NCR, the PLUs will be sent from the modifier multiplier document as it is done today and new toggle values UI won’t be sent. For Oracle, the modifiers will be managed via toggle values.To understand if a modifier document in Sanity is ‘'Add’' and ‘'No’' to be able to assign the correct priceSequence, the UI selections for these options in Sanity should be exposed to Khumbuused. Having only 1 PLU per modifier in Sanity, and control whether it’s NO, +1, +2, etc. using the quantity attribute. Khumbu would need to do additional mapping to translate the quantity to the applicable priceSequence. No PLU defined for modifier multiplier. Similarly, for management We won’t make use of modifier multipliers beyond the ADD and NO values for modifiers (light, heavy), other pricing sequences or definitionSequence can be used later(meaning, also no additional PLU for modifier multipliers). Different quantities of modifiers (e.g. 2 bacons) will be managed with the Quantity field. Khumbu will manage the mapping for PLU+definitionSeq+PriceSeq as shown in phase 2 on the slide deck.
Open questions to answer in the implementation: Whitelabel changes to consume prices of modifiers since we won't manage it the way we do now - assigning separate PLU per modifier multiplier how are we going to handle the mapping between Sanity toggles and price sequences for modifier multipliers (Add/No + service modes)
Alternative to using PricingSequence or DefinitionSequence for Multipliers - the Quantity Field: This will be enabled by RBI Tech platform by utilizing the multiconstant PLU solution. Having the multiconstant PLU solution work will require additional engineering effort (e.g. there are gaps in partnersAPI, and potentially Menu Service in general). 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. Image Removed Image RemovedLater on, additional toggles (or any other UI mechanism) can be added to allow for multiples of Add (light, heavy, 2x, 3x.). Similarly, for management of modifier multipliers beyond the ADD and NO values for modifiers (light, heavy), other pricing sequences or definitionSequence can be used later.
|
Info |
---|
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. 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. In general, anything premium (item or modifier) adds up to the total combo price.
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. 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. Most of the logic here should be handled by Khumbu. Additional context under phase 3 in slide deck. |
...