...
Steps | Expected results (Kiosk) | Expected results (RBI app) | |
---|
Guest looks at the Kiosk screen | | | |
Guest touches the screen to start a new order | | | |
Guest decides to continue without signing in | | | |
Guest taps on the Offers tab Info |
---|
Note: this step is only possible if the market has decided to allow showing offers on the UI. |
| Guest sees a list of offers. If offers are closed, they show up as locked and there is a clear way for guests to sign up to use them. If offers are open and the market has decided to show open offers, then it should be possible for guests to add them to their basket.
| | |
Guest opens the RBI app without signing in, and selects an offer that is available when users are signed out (known as a “open offer”) Info |
---|
Note: this is only available in markets that allow open offers. |
Info |
---|
Note: markets that don’t use scanners do not show a QR code in the RBI app, only the alphanumerical code. In this case, the Kiosk must provide a way for guests to enter the code manually. |
| | Offer page is displayed:
| |
Guest scans offer (static) alphanumerical code | | If the offer was configured for single redemption use, it will disappear from teh app after 15 minutes For static codes, we don’t show a confirmation in the RBI app
| |
Guest checks out and pays | | | |
1.2. Authenticating with Loyalty Code
...
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 Info |
---|
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 |
| | Loyalty points balance is not updated, since the guest is scanning an offer Offer pre-selection is cleared
| Call the Identify endpoint, which will return the Loyalty User ID, a list of offer(s) pre-selected, loyalty points balance and a transaction ID
|
Guest customizes offers at will and touches confirm | | | |
Guest opens a second offer on the RBI app, chooses to redeem in restaurant Info |
---|
Note: the flow is exactly the same if the guest pre-selects multiple offers. |
| | | |
Guest either scans the offer’s QR code or inputs 6 digit code into Kiosk Info |
---|
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 |
| | Loyalty points balance is not updated, since the guest is scanning an offer Offer pre-selection is cleared
| Keep track of the current basket contents including offers Void the previous transaction Call the Identify endpoint again, which will create a new transaction ID and selected offers Update the basket with the offers returned
|
Guest customizes offers at will and touches confirm | | | |
On the Kiosk UI, navigates to the offers page Info |
---|
Note: this step is only available in markets that have decided to show offers on the Kiosk UI. |
| Offers are displayed: | | |
Guest selects an offer | | | |
Guest adds offer to basket | | | |
Guest checks out and pays | | |
...
1.4. Limit one offer per purchase
Info |
---|
This scenario only happens if the market has decided to limit redemption of one offer per purchase. This is currently the case in BK UK for example. |
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 scans the loyalty code or inputs 6 digit code in Kiosk Info |
---|
Note: the pre-selected offer will show in the Kiosk screen after scanning with an option for the user to customize it |
| | Loyalty points balance is not updated, since the guest is scanning an offer Offer pre-selection is cleared
| Guest opens a second offer on the RBI app, chooses to redeem in restaurant | | User will Call the Identify endpoint, which will return the Loyalty User ID, a list of offer pre-selected, loyalty points balance and a transaction ID
|
Guest opens a second offer on the RBI app, chooses to redeem in restaurant | | | |
Guest taps Replace | | | |
Guest either scans the Offer’s QR code or inputs 6 digit code into Kiosk Info |
---|
Note: the pre-selected offer will show in the Kiosk screen after scanning with an option for the user to customize it |
| New offer replaces the previous selected offer in the Kiosk basket Other items in the Kiosk basket are not removed or replaced New offer is added to basket and guest has the option to personalize the offer
| Loyalty points balance is not updated, since the guest is scanning an offer Offer pre-selection is cleared
On the Kiosk UI, navigates to the offers page Info | Note: this step is only | Keep track of the current basket contents including offers Void the previous transaction Call the Identify endpoint again, which will create a new transaction ID and selected offers Replace the previous offer in the basket with the offer returned
|
On the Kiosk UI, navigates to the offers page Info |
---|
Note: this step is only available in markets that have decided to show offers on the Kiosk UI. |
| Offers are displayed: | | |
Guest selects an offer | | | |
Guest adds offer to basket | | | |
Guest checks out and pays | | | |
2. Redeem rewards
2.1. While signed out
...
Steps | Expected results (Kiosk) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|
Guest looks at the Kiosk screen | | | |
Guest touches the screen to start a new order | | | |
Guest decides to continue without signing in | | | |
Guest taps on the rewards tab Info |
---|
Note: this step is only possible if the market has decided to allow showing rewards on the UI. |
| | | |
Guest chooses to menu items instead, checks out and pays | | | |
2.2. Authenticating with the Loyalty Code
...
Steps | Expected results (Kiosk) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|
Guest opens the Loyalty code page on the RBI app | | | |
Guest taps on the Kiosk screen to start a new order | | | |
Guest scans the loyalty code or inputs 6 digit code in Kiosk | | Guest opens an reward on the RBI app, | |
Guest opens an reward on the RBI app, chooses to redeem in restaurant | | | |
Guest either scans the reward’s QR code or inputs 6 digit code into Kiosk | | | Keep track of the current basket contents including rewards Call the Identify endpoint again, which will create a new transaction ID and selected offers Void the previous transaction Wait for Void Confirmation Call the Update endpoint with all of the Kiosk basket contents and a status of PENDING
|
Guest customizes rewards at will and touches confirm | | | |
On the Kiosk UI, navigates to the rewards page Info |
---|
Note: this step is only possible if the market has decided to allow showing rewards on the UI. |
| | | |
Guest adds a reward to basket | | | |
Guest remove a reward from basket and goes to checkout | | | |
Guest checks out and pays | | | |
...
Steps | Expected results (Kiosk) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|
Guest opens a reward on the RBI app | | | |
Guest taps “Redeem in Restaurant” | | | |
Guest taps on the Kiosk screen to start a new order | | | |
Guest either scans the reward’s QR code or inputs 6 digit code into Kiosk | | | Call the Identify endpoint, which will return the Loyalty User ID, a list of reward(s) pre-selected, loyalty points balance and a transaction ID
|
Guest customizes rewards at will and touches confirm | | | |
Guest opens a second reward on the RBI app, chooses to redeem in restaurant Info |
---|
Note: the flow is exactly the same if the guest pre-selects multiple rewards. |
| | | |
Guest either scans the second reward’s QR code or inputs 6 digit code into Kiosk | | | Keep track of the current basket contents including rewards Call the Identify endpoint again, which will create a new transaction ID and selected offers Void the previous transaction Wait for Void Confirmation Call the Update endpoint with full all of the Kiosk basket contents and a status of PENDING
|
Guest customizes rewards at will and touches confirm | | | |
On the Kiosk UI, navigates to the rewards page Info |
---|
Note: this step is only possible if the market has decided to allow showing rewards on the UI. |
| | | |
Guest adds a reward to basket | | | |
Guest removes first reward from order and goes to checkout | | | |
Guest checks out and pays | | | |
...
Steps | Expected results (Kiosk) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|
Guest opens a reward on the RBI app | | | |
Guest taps “Redeem in Restaurant” | | | |
Guest taps on the Kiosk screen to start a new order | | | |
Guest either scans the reward’s QR code or inputs 6 digit code into Kiosk Info |
---|
Note: the pre-selected reward(s) will show in the Kiosk screen after scanning with an option for the user to customize it |
| | | Call the Identify endpoint, which will return the Loyalty User ID, a list of reward(s) pre-selected, loyalty points balance and a transaction ID
|
Guest customizes rewards at will and touches confirm | | | |
Guest opens a second Reward on the RBI app, chooses to redeem in restaurant | | | |
Guest taps Replace | | | |
Guest either scans the reward’s QR code, or tells the 6 digit code to the cashier | | The replaced reward’s loyalty points are returned to user balance The new reward’s loyalty points cost is temporarily subtracted from the guest’s loyalty points balance Loyalty points that will be accrued after the order will not be added to the guest’s loyalty points balance at this stage Reward pre-selection is clearedis cleared
| Keep track of the current basket contents including rewards Call the Identify endpoint again, which will create a new transaction ID and selected offers Void the previous transaction Wait for Void Confirmation Replace the previous reward in the basket with the reward returned Call the Update endpoint with all of the Kiosk basket contents and a status of PENDING
|
Guest finalizes the order and pays at Kiosk | | | |
5. Edge cases
5.1. Switch users
Guest signs in, then scans a code from a different user
Steps | Expected results (POS) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|
Guest opens the Loyalty code page on the RBI app |
N/A | | |
Guest taps on the Kiosk screen to start a new order | Image Modified |
N/A | |
Guest scans the loyalty code or inputs 6 digit code in Kiosk | Image Modified | Image Modified | |
Guest opens an reward on the RBI app in a different device, using a different user, and chooses to redeem in restaurant | | |
generated | |
Guest (on their second device) either scans the reward’s QR code, or inputs the 6 digit code in the Kiosk | Modal shows in the Kiosk, letting the user know that the last scan was made using a different user account Contents of the second scan are not added to the guest’s basket (so the current basket remains unchanged) The second scan is cancelled/voided Initial order can continue normally
| Image ModifiedThe reward’s loyalty points cost is temporarily subtracted from the guest’s loyalty points balance Loyalty points that will be accrued after the order will not be added to the guest’s loyalty points balance at this stage Reward pre-selection
|
is clearedA few seconds later, the loyalty points are returned to the second user | Keep track of the current basket contents including rewards Call the Identify endpoint again, which will create a new transaction ID and selected offers Detect Loyalty ID of this transaction does not match Loyalty ID of user of previous transaction Void this transaction Wait for Void Confirmation Keep the current basket open with previous transaction Call the Update endpoint with all of the Kiosk basket contents and a status of PENDING
|
5.2. Users Order in Kiosk and Pay @ Counter
Guest begins an order in the kiosk and chooses option to pay at cash at counter. The POS will need to close this order.
Steps | Expected results (Kiosk) | Expected results (RBI app) | Loyalty API usage (Kiosk) |
---|
Guest opens the Loyalty code page on the RBI app |
N/A | | |
Guest taps on the Kiosk screen to start a new order | Image Modified |
N/A | |
Guest scans the loyalty code or inputs 6 digit code in Kiosk | Image Modified |
Image Removed | | Image Added | |
Guest opens an reward on the RBI app, chooses to redeem in restaurant | | | |
Guest either scans the reward’s QR code or inputs 6 digit code into Kiosk Info |
---|
Note: the pre-selected reward(s) will show in the Kiosk screen after scanning with an option for the user to customize it |
| Image Modified | Image Modified |
the guest’s loyalty points balance at this momentReward pre-selection is cleared
| Keep track of the current basket contents including rewards Call the Identify endpoint again, which will create a new transaction ID and selected offers Void the previous transaction Wait for Void Confirmation Call the Update endpoint with all of the Kiosk basket contents and a status of PENDING
|
Guest customizes rewards at will and touches confirm | Image Modified | | |
On the Kiosk UI, navigates to the rewards page Info |
---|
Note: this step is only possible if the market has decided to allow showing rewards on the UI. |
| Image Modified | | |
Guest adds a reward to basket | Image Modified | | |
Guest remove a reward from basket | | | |
Guest chooses to pay at the counter using cash | | | Call the Transaction Validate endpoint to verify that the current basket selection is valid Call the Update endpoint with all of the Kiosk basket contents and a status of PENDING Kiosk sends this transaction request with the order details to POS vendor
|
Guest arrives at the counter to pay and decides to add 1 more menu item to order | Cashier finds the order of guest Cashier adds 1 more menu item to open order Cashier finalizes the order at POS after receiving cash payment
Info |
---|
Note: assumption that the open order is associated with the guest’s Loyalty identifier. |
| Image Modified | |
Info |
---|
Note: In the case guest never goes to cashier to complete payment |
| | | |