Contents
Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Store Availability
Action | Tests | Expected Vendor BehaviorAction | Expected Result |
---|---|---|---|
Update Store Status
| Authenticated user inputs restaurant address on restaurant search in App. | Update Store Status to Online (docs). | → Partners API reports store is online through Get Store Status call. → Ordering buttons become eligible for the store. Note: Store ordering availability is not only affected by the POS status, as there are other configurations required to activate stores. → RBI admins have access to the Store Diagnostics and can verify that |
Update Store Status
| Authenticated user inputs restaurant address on restaurant search in App. | Update Store Status to Offline (docs). | → Partners API reports store is offline through Get Store Status call. → Ordering buttons become grayed out for the store. Note: Store ordering availability is not only affected by the POS status, as there are other configurations required to activate stores. → RBI admins have access to the Store Diagnostics and can verify that |
...
Store Menu Pricing & Availability
Action | Tests | Expected Vendor BehaviorAction | 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 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.
| ||
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 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.
| ||
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.
| ||
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 | 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.
| ||
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.
|
...
Order Creation
Action | Tests | Expected Vendor BehaviorAction | Expected Result |
---|---|---|---|
Pricing Order
| Authenticated user selects ordering for the corresponding store, builds a cart and navigates to the checkout. All Cart Structures must be tested in this category:
| Partner is subscribed to the Partner utilizes the Price Webhook Callback to answer the Price request. Error Handling to follow the
| → /cart page loads total price of the user cart, corresponding to the sum of all products within. → 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 an order. All Cart Structures must be tested in this category:
| Partner is subscribed to the Partner utilizes the Commit Webhook Callback to answer the Commit request. 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 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. |
In-Restaurant Service Modes
Action | Tests | Expected Vendor BehaviorAction | Expected Result | ||
---|---|---|---|---|---|
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 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 Table Service 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 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. → 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 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.
| ||
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 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.
| ||
Place a Table Service 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 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.
|
...
Note |
---|
Applicable only to In-Restaurant orders. |
Action | Tests | Expected Vendor BehaviorAction | Expected Result |
---|---|---|---|
Place a Cash or any other Unpaid in-restaurant order | As per above. | Partner collects the payment method from the GET Order endpoint ( Typically, POS systems define Tender IDs for this purpose. | → Order is injected in the POS. → Order is not injected in KDS (Kitchen Display System), i.e. it is not sent to the kitchen. → Order is injected in KDS after user performs the payment. |
Place an online payment (paid) in-restaurant order | As per above. | Partner collects the payment method from the GET Order endpoint and injects in the appropriate POS field. Typically, POS systems define Tender IDs for this purpose. Any payment method besides | → Order is injected in the POS and in KDS. |
...
Delivery Service Mode
Action | Tests | Expected Vendor BehaviorAction | 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. |
Order Events
Action | Tests | Expected Vendor BehaviorAction | Expected Result | |||||
---|---|---|---|---|---|---|---|---|
| ||||||||
| ||||||||
| ||||||||
| ||||||||
| ||||||||
|
...