POS - Redeem Offers

This page documents the expected user experience when RBI guests redeem offers when they place orders using the POS, part of Customer Journey Scenarios - POS. See also POS - Redeem Rewards and POS - Edge Cases.

Contents

1. While signed out

In this scenario, guests do not sign in to the RBI app and they want to use open offers. They scan two different offers in the same order.

Note: this scenario is only available if the market has made open offers available to their guests.

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

Steps

Expected results (POS)

Expected results (RBI app)

Steps

Expected results (POS)

Expected results (RBI app)

Guest opens the RBI app without signing in, and selects an offer that is not available when users are signed out (known as a “closed offer”)

  • N/A

  • Offer page is displayed:

Guest taps “Use at restaurant”

  • N/A

  • Offer is closed so guest is prompted to Sign In

 

Guest is worried about his privacy and decides not to use this offer.

Guest opens an offer that is available when users are signed out (known as an “open offer”)

Note: markets that don’t use scanners do not show a QR code in the RBI app, only the alphanumerical code

  • No action

  • Guest sees QR code and Offer Static code

Cashier is prompted to add a loyalty code

  • Cashier asked if guest is a loyalty member:

  • Cashier select “Cancel”, since the guest is not signed in

  • No action

Guest either scans the (static) offer code, or tells the alphanumerical code to the cashier

  • If guest does not scan the QR code, cashier can enter the static alphanumerical code

  • Offer is added to the POS basket

  • This offer is incrementally added to the cart and does not replace any of the existing cart items

 

  • No action

 

Guest opens a second offer that is available when users are signed out (known as an “open offer”)

  • No action

  • Guest sees QR code and Offer Static code

Guest either scans the (static) offer code, or tells the alphanumerical code to the cashier

  • If guest does not scan the QR code, cashier can enter the static alphanumerical code

  • Offer is added to the POS basket

  • This offer is incrementally added to the cart and does not replace any of the existing cart items

  • No action

 

Cashier finalizes the order and guest pays at POS

  • POS prints receipt with order information

  • N/A

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 POS. The guest in this scenario does a second scan to add an offer after the initial identification.

Steps

Expected results (POS)

Expected results (RBI app)

Loyalty API usage

Steps

Expected results (POS)

Expected results (RBI app)

Loyalty API usage

Guest opens the Loyalty code page on the RBI app

  • N/A

  • Loyalty code page is displayed:

  • No action

Cashier is prompted to add a loyalty code

  • Cashier asked if guest is a loyalty member:

  • No action

  • No action

Guest either scans the loyalty code, or tells the 6 digit code to the cashier

  • If guest does not scan the QR code, cashier can enter the 6 digit Loyalty code:

  • Either by scanning or entering the code, POS confirms successful identification:

 

  • 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 requests cashier to add a an offer from POS

  • Cashier selects the offer and adds to order at POS

  • No action

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

  • Note that the call above may return errors. Please refer to Loyalty API v1 - Error Responses for details.

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 tells the 6 digit code to the cashier

  • Either by scanning or entering the code, POS confirms successful identification:

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

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

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

  • Update the basket with the offers returned

The cashier navigates to the offers page in the POS

  • Cashier sees all offers available for that user

  • No action

Cashier adds offer to basket

  • Added incrementally

  • No action

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

  • Note that the call above may return errors. Please refer to Loyalty API v1 - Error Responses for details.

Cashier finalizes the order and guest pays at POS

  • POS prints receipt with points earned & points balance

  • Guest sees updated points balance

 

  • After collecting the payment, 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 POS 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 (POS)

Expected results (RBI app)

Loyalty API usage (POS)

Steps

Expected results (POS)

Expected results (RBI app)

Loyalty API usage (POS)

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

Cashier is prompted whether the Guest has loyalty, and confirms

  • Cashier asked if guest is a loyalty member and clicks on “Ok”

  • No action

  • No action

Guest either scans the offer code, or tells the 6 digit code to the cashier

  • Either by scanning or entering the code, POS confirms successful identification (since the offer code also identifies the Loyalty user):

  • Offer is added to POS cart

  • Guest receives a successful confirmation modal

  •  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

Cashier adds offer to basket

  • Added incrementally

  • No action

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

  • Note that the call above may return errors. Please refer to Loyalty API v1 - Error Responses for details.

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 tells the 6 digit code to the cashier

  • Either by scanning or entering the code, POS confirms successful identification:

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

  • 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

Cashier adds offer to basket

  • Added incrementally

  • No action

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

  • Note that the call above may return errors. Please refer to Loyalty API v1 - Error Responses for details.

Cashier finalizes the order and guest pays at POS

  • POS prints receipt with points earned & points balance

  • Guest sees updated points balance

 

  • After collecting payment, 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 (POS)

Expected results (RBI app)

Loyalty API usage (POS)

Steps

Expected results (POS)

Expected results (RBI app)

Loyalty API usage (POS)

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

Cashier is prompted whether the Guest has loyalty, and confirms

  • Cashier asked if guest is a loyalty member and clicks on “Ok”

  • No action

  • No action

Guest either scans the offer code, or tells the 6 digit code to the cashier

  • Either by scanning or entering the code, POS confirms successful identification (since the offer code also identifies the Loyalty user):

  • Offer is added to POS cart

  • Guest receives a successful confirmation modal

  •  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

Cashier adds offer to basket

  • Added incrementally

  • No action

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

  • Note that the call above may return errors. Please refer to Loyalty API v1 - Error Responses for details.

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, use can only add 1 offer per order and prompting user to replace

  • 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 tells the 6 digit code to the cashier

  • New offer replaces the previous selected offer in the POS basket

  • Other items in the POS basket are not removed or replaced

  • Modal is shown to guest confirming that the offer has been added to the POS 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 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 POS basket with the new offer

Cashier adds offer to basket

  • Added incrementally

  • No action

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

  • Note that the call above may return errors. Please refer to Loyalty API v1 - Error Responses for details.

Cashier finalizes the order and guest pays at POS

  • POS prints receipt with points earned & points balance

  • Guest sees updated points balance

  • After collecting the payment, 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