Kiosk - Redeem Offers

This page documents the expected user experience when RBI guests redeem offers when they place orders using the Kiosk, part of https://rbictg.atlassian.net/wiki/spaces/RDP/pages/4281303075. See also https://rbictg.atlassian.net/wiki/spaces/RDP/pages/4296573103 and https://rbictg.atlassian.net/wiki/spaces/RDP/pages/4297097314.

Contents

1. While signed out

In this scenario, guests do not sign in to the RBI app or the Kiosk, and they use an open offer. This scenario includes markets that have decided to allow showing offers on the Kiosk UI and markets that have decided not to show offer on the Kiosk UI.

Note: this scenario does not require an integration with the Loyalty API.

Steps

Expected results (Kiosk)

Expected results (RBI app)

Loyalty API usage (Kiosk)

Steps

Expected results (Kiosk)

Expected results (RBI app)

Loyalty API usage (Kiosk)

Guest looks at the Kiosk screen

  • A page shows up inviting the guest to start an order

  • N/A

  • No action

Guest touches the screen to start a new order

  • Guest is prompted to sign in

  • No action

  • No action

Guest decides to continue without signing in

  • Kiosk order screen show up. This screen does not show either offers or rewards tabs

  • Guest can sign in at any time by using the scanner or touching a sign in button

  • No action

  • No action

Guest taps on the Offers tab

Note: this step is only possible if the market has decided to allow showing offers on the Kiosk UI for Signed Out users.

  • 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.

 

  • No action

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”)

Note: this is only available in markets that allow open offers.

  • No action

  • Offer page is displayed:

  • No action

Guest scans offer (static) alphanumerical code

  • Offer is added to the basket

  • 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

  • No action

Guest checks out and pays

  • Order number shows up on the screen

  • Receipt is printed

  • Ideally, guests would be shown the number of points they could have earned, and they are prompted to sign up

  • No action 

  • No action

2. Authenticating with the Loyalty Code

In this scenario, guests do not pre-select any offers and instead start their journey by scanning their Loyalty code at the Kiosk. The guest in this scenario does a second scan to add an offer after the initial identification.

Steps

Expected results (Kiosk)

Expected results (RBI app)

Loyalty API usage (Kiosk)

Steps

Expected results (Kiosk)

Expected results (RBI app)

Loyalty API usage (Kiosk)

Guest opens the Loyalty code page on the RBI app

  • N/A

  • Loyalty code page is displayed:

  • Not applicable

Guest taps on the Kiosk screen to start a new order

  • Loyalty sign in page shows up on the Kiosk and scanner becomes active

  • N/A

  • Not applicable

Guest scans the loyalty code or inputs 6 digit code in Kiosk

  • Kiosk authenticates the guest and shows the home page

  • Scanner remains active

  • Guest receives a successful confirmation modal

 

  • Call the Identify endpoint, which will return the Loyalty User ID, loyalty points balance and a transaction ID

Guest opens an offer on the RBI app, chooses to redeem in restaurant

  • No action

  • Offer is added to the guest’s pre-selection

  • A unique offer code is generated

  • No action

Guest either scans the offer’s QR code or inputs 6 digit code into Kiosk

  • Offer(s) are shown on the Kiosk and guest has an option to customize

  • Modal is shown to guest confirming that the offer has been added to the basket

  • 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 (keeping basket information)

  • Call the Identify endpoint again, which will create a new transaction ID and selected offers

  • Update the basket with the offers returned

Guest customizes offer(s) at will and adds to basket

  • These offer(s) are incrementally added to the cart and do not replace any of the existing cart items

  • No action

  • Call the Transaction Validate endpoint to verify that the current basket selection is valid

  • If Transaction Validate was called above when rewards were added to the basket, there is less probability of errors but they could still happen due to issues with regular menu items.

  • Note that the call above may return errors. Please refer to https://rbictg.atlassian.net/wiki/spaces/RDP/pages/4231725617 for details.

On the Kiosk UI, guest navigates to the offers page

Offers are displayed:

  • No action

Guest selects an offer

  • Details displayed

  • No action

  • No action

Guest adds offer to basket

  • Added incrementally

  • No action

Guest checks out and pays

  • Order number shows up on the screen

  • Receipt is printed (ideally the receipt would include the points earned and/or burned + the updated loyalty points balance)

  • Guest sees updated points balance

 

  • Call the Transaction Update endpoint with a status of CLAIMED to complete the order

  • After this call it is not possible to modify the loyalty transaction anymore

3. Using offer pre-selection

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)

Steps

Expected results (Kiosk)

Expected results (RBI app)

Loyalty API usage (Kiosk)

Guest opens an offer on the RBI app

  • N/A

  • Offer page is displayed:

  • No action

Guest taps “Use at restaurant”

  • N/A

  • Offer is added to the guest’s pre-selection

  • A unique offer code is generated

  • No action

Guest taps on the Kiosk screen to start a new order

  • Loyalty sign in page shows up on the Kiosk and scanner becomes active

  • N/A

  • No action

Guest either scans the offer’s QR code or inputs 6 digit code into Kiosk

  • Offer(s) are shown on the Kiosk and guest has an option to customize

  • Modal is shown to guest confirming that the offer has been added to cart

  • 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 offer(s) at will and adds to basket

  • These offer(s) are incrementally added to the cart and do not replace any of the existing cart items

  • No action

Guest opens a second offer on the RBI app, chooses to redeem in restaurant

  • No action

  • Only the second offer is added to the guest’s pre-selection

  • A unique offer code is generated

  • No action

Guest either scans the offer’s QR code or inputs 6 digit code into Kiosk

  • Offer(s) are shown on the Kiosk and guest has an option to customize

  • Modal is shown to guest confirming that the offer has been added to cart

  • 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 adds to basket

  • These offer(s) are incrementally added to the cart and do not replace any of the existing cart items

  • No action

On the Kiosk UI, navigates to the offers page

Offers are displayed:

  • No action

Guest selects an offer

  • Details displayed

  • No action

  • No action

Guest adds offer to basket

  • Added incrementally

  • No action

Guest checks out and pays

  • Order number shows up on the screen

  • Receipt is printed (ideally the receipt would include the points earned and/or burned + the updated loyalty points balance)

  • Guest sees updated points balance

 

  • Call the Transaction Update endpoint with a status of CLAIMED to complete the order

  • After this call it is not possible to modify the loyalty transaction anymore

4. Limit one offer per purchase

Steps

Expected results (Kiosk)

Expected results (RBI app)

Loyalty API usage (Kiosk)

Steps

Expected results (Kiosk)

Expected results (RBI app)

Loyalty API usage (Kiosk)

Guest opens an offer on the RBI app

  • No action

  • Offer page is displayed:

  • No action

Guest taps “Use at restaurant”

  • No action

  • Offer is added to the guest’s pre-selection

  • A unique offer code is generated

  • No action

Guest taps on the Kiosk screen to start a new order

  • Loyalty sign in page shows up on the Kiosk and scanner becomes active

  • No action

  • No action

Guest scans the loyalty code or inputs 6 digit code in Kiosk

  • Offer is shown on the Kiosk and guest has an option to customize

  • Modal is shown to guest confirming that the offer has been added to cart

  • 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, the offer pre-selected, the loyalty points balance and a transaction ID

Guest opens a second offer on the RBI app, chooses to redeem in restaurant

  • No action

  • User will see modal in the app letting user know that only 1 offer can be added per order and prompting user to replace current offer

  • No action

Guest taps Replace

  • No action

  • New offer is added to the guest’s pre-selection and old offer is removed from pre-selection cart

  • No action

Guest either scans the Offer’s QR code or inputs 6 digit code into Kiosk

  • 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

  • Modal is shown to guest confirming that the offer has been added to cart

  • 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 past scanned offer

  • Void the previous transaction

  • Call the Identify endpoint again, which will create a new transaction ID with the new offer

  • Replace the past scanned offer in the Kiosk basket with the new offer

On the Kiosk UI, navigates to the offers page

Offers are displayed:

  • No action

Guest selects an offer

  • Details displayed

  • No action

  • No action

Guest adds offer to basket

  • Guest sees modal in the Kiosk letting user know that only 1 offer can be added per order and prompting user to replace current offer

  • Example screen to be added here when available

  • No action

Guest checks out and pays

  • Order number shows up on the screen

  • Receipt is printed (ideally the receipt would include the points earned and/or burned + the updated loyalty points balance)

  • Guest sees updated points balance

 

  • Call the Transaction Update endpoint with a status of CLAIMED to complete the order

  • After this call it is not possible to modify the loyalty transaction anymore