Contents
Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
🏪 Restaurant Management
ActionTests | How to test | Vendor Action | Expected Result | ||||
---|---|---|---|---|---|---|---|
Update Store Statusstore status
| Authenticated user User inputs restaurant address on restaurant search in Appin the store locator in RBI’s platform. | Update Store Status to Online (docs)store status to online via Update Store Status endpoint.
| → Partners API reports store is online through Get Store Status call endpoint. → Ordering buttons become eligible for the store. Note:
→ RBI admins have access to the Store Diagnostics and can verify that | ||||
Update Store Statusstore status
| Authenticated user User inputs restaurant address on restaurant search in Appin the store locator in RBI’s platform. | Update Store Status to Offline (docs)store status to offline via Update Store Status endpoint.
| → Partners API reports store is offline through Get Store Status call endpoint. → Ordering buttons become grayed out for the store.
→ RBI admins have access to the Store Diagnostics and can verify that |
🍔 Menu Management
Store Menu Pricing & Availability
Info |
---|
For all the cases below, for further debugging you can use the Get Store Menu Diff endpoint to identify the the changes in the store’s menu. |
Note |
---|
For all the cases below, consider a cache of up to 1 minute for updates to reflect in RBI’s frontend. |
Action | Tests | Vendor Action | Expected Result | |||
---|---|---|---|---|---|---|
Make an item available for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the menu section of the item. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Item appears in App Menu section with correct price.
| |||
Make an item Make an item unavailable for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the menu section of the item. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Item disappears from App Menu section.
| |||
Make a combo available for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the menu section of the combo. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Combo appears in App Menu section with correct price. Consider a cache of up to 1 minute for updates to reflect in FE.
| |||
Make a combo unavailable for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the menu section of the combo. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Combo disappears from App Menu section.
| |||
Make a modifier multiplier available for a Make a modifier multiplier available for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the item containing the modifier multiplier. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Modifier Multiplier appears in App Menu section with correct price. Consider a cache of up to 1 minute for updates to reflect in FE. | |||
Make a modifier multiplier unavailable for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the item containing the modifier multiplier. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Modifier Multiplier disappears from App Menu section. Consider a cache of up to 1 minute for updates to reflect in FE. | |||
Make a Systemwide Offer available for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the offers page. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Offer appears in App Offers page and is available for Mobile redemption with correct price.
| |||
Make a Systemwide Offer unavailable for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the offers page. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Offer button for Mobile redemption is grayed out.
| |||
Make a premium item (within a comboslot) available as part of a combo
| Authenticated user selects ordering for the corresponding store and navigates to the combo containing the premium item.
| Make a request with price and
| → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Item appears inside the Combo with the desired premium price.
| Make a premium item (within a comboslot) unavailable as part of a combo | ||
Make a premium item (within a comboslot) unavailable as part of a combo
| Authenticated user selects ordering for the corresponding store and navigates to the combo containing the premium item.
| Make a request with price and
| → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Item disappears from the Combo. Consider a cache of up to 1 minute for updates to reflect in FE. | |||
Make a Reward available for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the rewards page. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Reward appears in App Rewards page and is available for Mobile redemption with correct price.
| |||
Make a Reward unavailable for a certain store | Authenticated user selects ordering for the corresponding store and navigates to the rewards page. | Make a request with price and | → Partners API GET Store Menu PLUs endpoint returns the PLUs with the corresponding price and availability. → Reward button for Mobile redemption is grayed out. Consider a cache of up to 1 minute for updates to reflect in FE. |
💰 Checkout
Order Creation
You can learn about the checkout actions in the Partner API here: Order API - Checkout
Action | Tests | Vendor Action | Expected Result | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Pricing Order
| Authenticated user selects ordering for the corresponding store, builds a adds items to cart and navigates to the checkout. All Cart Structures must be tested in this category:
| Partner is subscribed to the Partner must return the price and availability for each item in the order, the total price and any errors using the Price Webhook Callback endpoint. Error Handling to follow the
| → /cart page loads total price of the user cart, corresponding to the sum of all products within. → loading Loading time does not exceed 3 seconds for p99. → Tax, Subtotal, and Total are visible at checkout (as applicable according to local regulation). → [OPTIONAL] Fees, such as “Bag Fee”, are visible in the /cart page, separately from total cart amount. | ||||||||
Commit Order
| Authenticated user selects ordering for the corresponding store, builds a cart, navigates to the checkout and places (pays for) an order. All Cart Structures must be tested in this category:
| Partner is subscribed to the The POS must respond to the webhook request by using the Commit Webhook callback endpoint. Error Handling to follow the
| → Order is injected in the POS. (further details included below, as per service mode and payment method) | Cancel Order | → Check whether the status has been changed to cancel → Check whether the
| ||||||
Cancel Order | → Check whether the status has been changed to cancel → Check whether the automatic refund has been processed (if applicable) → Check whether the cancellation email was triggered → Check whether delivery has been cancelled (if applicable) → When the order is canceled in the POS the payment should be refunded. |
...
Order firing for in-Restaurant Service Modes
Info |
---|
When we reference the Order Number from RBI, the following is expected:
|
Action | Tests | Vendor Action | Expected Result | Place a Dine In / Pickup / Vendor Action | Expected Result | |
---|---|---|---|---|---|---|
Place a Dine In / Pickup
| Authenticated user selects ordering for the corresponding store, builds a cart and navigates to checkout. User selects Dine In or Pick Up and order time | Partner collects the service mode ( Partner collects the order number (
| → Order is injected in the POS. → KDS identifies the service mode. → DSS ticket printed according to the service mode. → Receipt printed with Order Number from RBI. → ORB displays Order Number from RBI.
| |||
Place a Drive-Thru order
| Authenticated user selects ordering for the corresponding store, builds a cart and navigates to checkout. User selects service mode and order time | Partner collects the service mode ( Partner collects the order number (
| → Order is registered in the POS but not sent to the kitchen immediately. → Order is injected in the POS.→ KDS identifies the service mode.When the guest arrives at the restaurant, a team member manually fires the order to the kitchen. At that point, → DSS ticket printed according to the service mode. → Receipt printed with Order Number from RBI. → ORB displays Order Number from RBI.
Note | . | ||
Place a Table Service order Immediate order (Now) | Authenticated user selects ordering for the corresponding store, builds a cart and navigates to checkout. User selects service mode and order time | Partner collects the service mode ( Partner collects the order number (
| → Order is injected in the POS with reference to the table number. → KDS identifies the service mode. → KDS identifies the table number. → DSS ticket printed according to the service mode. → DSS ticket printed with the table number. → Receipt printed with the table number. → Receipt printed with order number from RBI, though at a less relevant place, since table number should take precedence to the order number. RBI’s order number is expectedto substitutethe POSorder number. RBI’s order number is configurable, allowing numerical interval restriction and / or utilization of an alphanumerical prefix.
| |||
Place a Curbside order
| Authenticated user selects ordering for the corresponding store, builds a cart and navigates to checkout. User selects service mode and order time User inputs the car plate number. | Partner collects the service mode ( Partner collects the order number (
| → Order is injected in the POS with reference to the table number. → KDS identifies the service mode. → KDS identifies the table number. → DSS ticket printed according to the service mode. → DSS ticket printed with the table number. → Receipt printed with the car plate. → Receipt printed with order number from RBI, though at a less relevant place, since car plate should take precedence to the order number. RBI’s order number is expected to substitute the POSshould take precedence to the order number. RBI’s order number is configurable, allowing numerical interval restriction and / or utilization of an alphanumerical prefix.
| |||
Place a Dine In / Pickup / Drive-Thru order
| Authenticated user selects ordering for the corresponding store, builds a cart and navigates to checkout. User selects service mode Dine In or Pick Up and order time equivalent to any slot in the future. | Partner collects the service mode ( Partner collects the order number (
| → Order is injected in the POS. → Order appears in the KDS X seconds after POS order injection. → KDS identifies the service mode. → DSS ticket printed according to the service mode. → Receipt printed with Order Number from RBI. → ORB displays Order Number from RBI. RBI’s order number is expected to substitute the POS order number. from RBI.
| |||
Place a Table Service order
| Authenticated user selects ordering for the corresponding store, builds a cart and navigates to checkout. User selects table service mode and order time equivalent to any slot in the future. User inputs the desired table number. | Partner collects the service mode ( Partner collects the order number (
| → Order is injected in the POS with reference to the table number. → Order appears in the KDS X seconds after POS order injection. → KDS identifies the service mode. → KDS identifies the table number. → DSS ticket printed according to the service mode. → DSS ticket printed with the table number. → Receipt printed with the table number. → Receipt printed with order number from RBI, though at a less relevant place, since table number should take precedence to the order number.
| |||
Place a Curbside order
| Authenticated user selects ordering for the corresponding store, builds a cart and navigates to checkout. User selects service mode and order time equivalent to any slot in the future. User inputs the car plate number. | Partner collects the service mode ( Partner collects the order number (
| → Order is injected in the POS with reference to the table number. → Order appears in the KDS X seconds after POS order injection. → KDS identifies the service mode. → KDS identifies the table number. → DSS ticket printed according to the service mode. → DSS ticket printed with the table number. → Receipt printed with the car plate. → Receipt printed with order number from RBI, though at a less relevant place, since car plate should take precedence to the order number. RBI’s order number is expectedto substitutethe POS order number.RBI’sorder number is configurable, allowing numerical interval restriction and / or utilization of an alphanumerical prefix.
|
Payment Methods
Note |
---|
Applicable only to In-Restaurant orders. |
...
Action | Tests | Vendor Action | Expected Result | ||
---|---|---|---|---|---|
Place a Delivery order | Authenticated user inputs address within delivery area on restaurant search in App, builds a cart and navigates to checkout. Authenticated user clicks on “Continue” on the checkout page, and confirms selecting any payment method by clicking “Place Secure Order”. | Partner collects the service mode (
Partner collects the order number ( | → Order is injected in the POS. → Order does not appear in the KDS (not fired into the kitchen). | ||
Fire a Delivery order into the kitchen | Delivery vendor request to move the order to kitchen
| Partner is subscribed to the Partner fires the order through a POST call to the Fire Order endpoint.
| → Order appears in the KDS (is fired into the kitchen). → KDS identifies the service mode. → DSS ticket printed according to the service mode. → Receipt printed with Order Number from RBI.
| ||
Cancel a Delivery order Delivery cancelation → Delivery Order successfully sent and placed in Partner’s POS. → If a delivery cancellation is requested:
|
Info |
---|
Payment Methods do not interfere with order firing for Delivery orders. |
...