What is the problem?
Burger King Germany is currently experiencing resistance from the franchisee to enroll to the Loyalty program. According to KJR mandates, and to protect the guest experience, we won’t be launching Loyalty if we don’t have more than 80% of the stores with Loyalty activated. In this scenario, we have still have 20% of the system that is not connected with loyalty and therefore there will be implications with coupon redemption in-store. Below a potential solution is summarized for guests that will enter a non-loyalty store and want to redeem a coupon with the loyalty code.
The above problem already exists in the UK and we will continue seeing it in future markets as we launch the Loyalty program across the world. For this reason, we need to think about a solution that is scalable and can be used in multiple markets and by multiple vendors.
What is our proposal?
Assumptions:
In our platform, FZ's will control which stores have In-Store Loyalty enabled using the toggle
Has In Restaurant Loyalty
in RAM which is synced with the Sanity toggle in the Restaurant documentHas Loyalty
. Please view images below.
Kiosk vendors will need to differentiate the UI of the Kiosk, depending if a store has loyalty or does not have loyalty enabled.
Scenario 1: User with Loyalty enabled in their App, goes to a Non-Loyalty Store and redeems a coupon in-store
In this scenario, guests pre-select offers on the RBI app and continue their journey in the Kiosk by scanning the generated code. Then they add more offers to their basket by choosing those offers in the app and scanning them.
Steps | Expected results (Kiosk) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|---|---|---|
Guest opens an offer on the RBI app |
|
|
|
Guest taps “Use at restaurant” |
|
|
|
Guest taps on the Kiosk screen to start a new order |
|
|
|
Guest either scans the offer’s QR code or inputs 6 digit code into Kiosk Note: if a user pre-selects more offers in the app, all pre-selected offers will show in the Kiosk screen after scanning with an option for the user to customize each offer |
|
|
|
Guest customizes offers at will and adds to basket |
Note: If an offer can’t be redeemed because the offer rules are not met, the Kiosk displays a modal to the guest explaining why the offer can’t be added to cart |
|
|
Guest checks out and pays |
|
|
|
Scenario 2: User with Loyalty enabled in their App, goes to a Non-Loyalty Store and attempts to redeem a Reward in store
Steps | Expected results (Kiosk) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|---|---|---|
Guest opens an offer on the RBI app |
|
|
|
Guest taps “Redeem In restaurant” |
|
|
|
Guest taps on the Kiosk screen and scans the reward’s QR code or inputs 6 digit code into Kiosk |
If both offer and rewards are included in the Loyalty Code screen, the Loyalty API will continue returning both Rewards and Offers. The Kiosk vendor will be responsible to show the error message to users and to remove the Reward from Kiosk cart. |
|
|
Scenario 3: User with Loyalty enabled in their App, goes to a Non-Loyalty Store and scans My Code screen
Steps | Expected results (Kiosk) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|---|---|---|
Guest opens Loyalty Code on the RBI app |
|
| |
Guest taps on the Kiosk screen and scans the Loyalty QR code or inputs 6 digit code into Kiosk |
If both offer and rewards are included in the Loyalty Code screen, the Loyalty API will continue returning both Rewards and Offers. The Kiosk vendor will be responsible to show the error message to users and to remove the Reward from Kiosk cart. |
|
|
Changes Needed
Loyalty to differentiate between non-loyalty stores and loyalty stores using Sanity Restaurant Document
Loyalty API to not update loyalty points for non-loyalty stores
Loyalty API to return error if a reward is added in
Transaction Validate
orTransaction Update
Call for non-loyalty storesAll orders with coupons will be identifiable in-store
Payments of all loyalty transaction would show as 0 in Snowflake for non-loyalty stores. Is this a problem for DE?
LOE
6 weeks of Dev work + 2 weeks testing / debugging issues
8 weeks total