Loyalty API v1 - In-Restaurant Testing

Contents

1. Overview

This page lists test cases that we recommend operators and POS/Kiosk vendors to follow when developing an In-Restaurant integration to RBI Loyalty. All Loyalty data events, attributes and descriptions are outlined here: Event Tracking.

2. Instructions for Integration Partners (Kiosk and POS)

2.1. Staging environment

For the purposes of testing, you will need access to a Staging environment. Please contact RBI to get:

  • A URL for the Loyalty (Staging) environment. This will be used to make calls to the Loyalty Middleware endpoints. and credentials to the correct environment. URL’s should have the following format, for example for the identify endpoint: https://euc1-staging-{brand}-loyalty-middleware.rbictg.com/loyalty/identify

  • Credentials to use the environment above

  • A URL for the RBI app (Staging). This will be used to simulate guest actions such as generating OTP codes or redeeming rewards and offers.

  • A password to access the environment above

More information about the Loyalty Middleware can be found here: Loyalty API

2.2. Generating OTP codes 

To generate 6-digit codes for testing and identifying user, you will need to go to the RBI app on the Staging environment and:

  • Create a new account with your choice of email address

  • Toggle the mobile view on your browser by using responsive mode

  • Click “My Code”. The My Code page with the OTP will look something like this (BK shown in the example below):

3. Test Cases

3.1. POS and Kiosk

Please follow all test cases for all different POS and Kiosk vendors in the market:

2.1. Scanning loyalty code

Steps

Expected Results

Data Events

Steps

Expected Results

Data Events

User inputs 6 digit Loyalty code or scans Loyalty QR code

  • User sees success modal in the app

The event Loyalty Transaction Created is triggered at this time

User pre-selects a reward and inputs 6 digit Loyalty code or scans Loyalty QR code

  • User sees success modal in the app

  • User sees rewards cost temporarily removed from user balance

The event Loyalty Transaction Created is triggered at this time

User pre-selects an offer and inputs 6 digit Loyalty code or scans Loyalty QR code

  • User sees success modal in the app

  • User loyalty point balance does not change

The event Loyalty Transaction Created is triggered at this time

2.2. Validation

Steps

Expected Results

Data Events

Steps

Expected Results

Data Events

User inputs 6 digit Loyalty code or scans Loyalty QR code

User sees success modal in the app

The event Loyalty Transaction Created is triggered at this time

User that has no other items in the basket attempts to add an Offer that has a minimum spend of $5 required. Loyalty API will return error and error message will show in the Kiosk showing that at least $5 needs to be added to check for offer to be redeemed in Kiosk.

  • Loyalty API will return error and error message will show in the Kiosk showing that at least $5 needs to be added to check for offer to be redeemed in Kiosk.

  • Full list of rules to be tested here: Loyalty API v1 - Error Responses

N / A

2.3. Earning loyalty points

Steps

Expected Results

Data Events

Steps

Expected Results

Data Events

Pre-select offer in the app, scan loyalty code at Kiosk/POS and complete the order with this offer.

  • Correct amount of loyalty points are added to user’s balance.

  • Confirm the offer used disappears from your app’s offer list

Note: Unless the user can redeem the offer more than once, specified with offer Limit ruleset in Sanity

  • Loyalty Receipt match content added in Sanity:https://rbictg.atlassian.net/wiki/spaces/HELP/pages/5019500623

these events are fired:

  • Loyalty Transaction Claimed when channel = RESTAURANT

  • Loyalty Transaction Claimed In-store

  • Offer Redeemed In-store if offers are included in the order

Input 6 digit Loyalty code or scan QR code, then select offer and/or menu item in the Kiosk/POS

  • Correct amount of loyalty points are added to user’s balance.

  • Confirm the offer used disappears from your app’s offer list

Note: Unless the user can redeem the offer more than once, specified with offer Limit ruleset in Sanity

these events are fired:

  • Loyalty Transaction Claimed when channel = RESTAURANT

  • Loyalty Transaction Claimed In-store

  • Offer Redeemed In-store if offers are included in the order

Pre-select offer in the app and input 6 digit Loyalty code at Kiosk/POS. Then select a second offer in the Kiosk/POS.

  • Correct amount of loyalty points are added to user’s balance with 2 offers added to order.

  • Confirm both offers used disappear from your app’s offer list

these events are fired:

  • Loyalty Transaction Claimed when channel = RESTAURANT

  • Loyalty Transaction Claimed In-store

  • Offer Redeemed In-store is triggered twice.

2.4. Burning loyalty points

Steps

Expected Results

Data Events

Steps

Expected Results

Data Events

Pre-select reward in the app, scan loyalty code at Kiosk/POS and complete transaction with Offer

these events are fired:

  • Loyalty Transaction Claimed when channel = RESTAURANT

  • Loyalty Transaction Claimed In-store

  • Reward Redeemed In-store

Input 6 digit Loyalty code or scan QR code, then select a reward in the Kiosk/POS

these events are fired:

  • Loyalty Transaction Claimed when channel = RESTAURANT

  • Loyalty Transaction Claimed In-store

  • Reward Redeemed In-store if rewards are included in the order

Pre-select reward in the app and input 6 digit Loyalty code at Kiosk/POS. Then select a second reward in the Kiosk/POS.

these events are fired:

  • Loyalty Transaction Claimed when channel = RESTAURANT

  • Loyalty Transaction Claimed In-store

  • Reward Redeemed In-store is triggered twice.

2.5. Earning and burning loyalty points

Steps

Expected Results

Data Events

Steps

Expected Results

Data Events

Pre-select reward and an offer in the app, and scan loyalty code at Kiosk/POS. Complete order with offer and reward.

  • Correct amount of loyalty points are added and removed from user’s loyalty point balance.

  • Confirm the offer used disappears from your app’s offer list

these events are fired:

  • Loyalty Transaction Claimed when channel = RESTAURANT

  • Loyalty Transaction Claimed In-store

  • Reward Redeemed In-store

  • Offer Redeemed In-store

Pre-select reward in the app and input 6 digit Loyalty code or scan QR code. Then, add a menu item in the Kiosk/POS, and complete the transaction.

these events are fired:

  • Loyalty Transaction Claimed when channel = RESTAURANT

  • Loyalty Transaction Claimed In-store

  • Reward Redeemed In-store

  • Offer Redeemed In-store

Input 6 digit loyalty code or scan QR code. Then, add a menu item, an offer, and a reward in the Kiosk/POS, and complete the transaction.

 

  • Correct amount of loyalty points are added and removed from user’s loyalty point balance.

  • Confirm the offer used disappears from your app’s offer list

these events are fired:

  • Loyalty Transaction Claimed when channel = RESTAURANT

  • Loyalty Transaction Claimed In-store

  • Reward Redeemed In-store

  • Offer Redeemed In-store

Input 6 digit loyalty code or scan QR code. Then, add a menu item, 2 (or more) offers, and 2 (or more) rewards in the Kiosk/POS, and complete the transaction.

  • Correct amount of loyalty points are added and removed from user’s loyalty point balance.

  • Confirm both offers used disappear from your app’s offer list

these events are fired:

  • Loyalty Transaction Claimed when channel = RESTAURANT

  • Loyalty Transaction Claimed In-store

  • Reward Redeemed In-store is triggered twice assuming there are 2 rewards in the order.

  • Offer Redeemed In-store is triggered twice assuming there are 2 offers in the order.

2.6. Cancelling Transaction

Steps

Expected Results

Data Events

Steps

Expected Results

Data Events

Pre-select offer and/or reward in the app, and scan loyalty code at Kiosk/POS. User decides not to finish order in the Kiosk.

  • Kiosk sessions times out and session closes.

  • Loyalty points balance of user returns to what it was before the user began the order.

this event is fired:

  • Loyalty Transaction Voided

Pre-select offer and/or reward in the app, and scan loyalty code at Kiosk/POS. Payment fails at checkout and/or order fails to inject in the POS.

  • Error is shown to guest or operator

  • Loyalty points balance of user returns to what it was before the user began the order.

this event is fired:

  • Loyalty Transaction Voided

Pre-select offer and/or reward in the app, and scan loyalty code at Kiosk/POS but the reward or offer fails to be added to the kiosk and guest decides to scan a new loyalty code.

 

  • Loyalty points balance of user returns to what it was before the user began the order.

  • New scan triggers success confirmation modal in the app

these events are fired:

  • Loyalty Transaction Voided

  • Loyalty Transaction Created

3.2. Pay at counter

Steps

Expected Results

Data Events

Steps

Expected Results

Data Events

User scans loyalty code at the Kiosk, creates a basket, selects Pay at Counter option and completes order.

  • points balance of the guest are temporarily deducted with rewards points cost.

  • guest does not earn any loyalty points at this moment

this event is fired:

  • Loyalty Transaction Created

User then approaches cashier and pays with cash the order he placed at the kiosk.

  • user earns points from the order and points balance are updated permanently.

these events are fired:

  • Loyalty Transaction Claimed when channel = RESTAURANT

  • Loyalty Transaction Claimed In-store

Another user logs into the kiosk, scans loyalty code, creates a basket, selects Pay at Counter option BUT never goes to pay order at the counter.

 

  • points balance of the guest are temporarily deducted with rewards points cost.

  • After X minutes of time where this transaction was not closed at the counter/POS, transaction is cancelled (VOIDED) and points balance return to what it was before order was initiated

these events are fired:

  • Loyalty Transaction Voided

  • Loyalty Transaction Deleted