Contents
Address Availability
Action | Tests | Expected Vendor Behavior | Expected Result |
---|---|---|---|
Restaurant Selection
| Authenticated user inputs address on restaurant search in Whitelabel App | Vendor answers successfully to | Desired restaurant is selected for delivery. |
Restaurant Selection
|
Order Confirmation
Action | Tests | Expected Vendor Behavior | Expected Result |
---|---|---|---|
Delivery Fee
| Authenticated user navigates to checkout page | Vendor answers successfully to | The delivery fee amount is displayed on order description at the checkout page. |
Delivery Fee
| |||
Estimated Time of Arrival (ETA) | |||
ERROR No Drivers Available |
Order Creation
Action | Tests | Expected Vendor Behavior | Expected Result |
---|---|---|---|
Eligible restaurant selection | Authenticated user inputs address on restaurant search in Whitelabel App | Vendor answers successfully to | Desired restaurant is selected for delivery. |
Order confirmation | Authenticated user navigates to checkout page The store must remain eligible | Vendor answers successfully to | The delivery fee amount is displayed on order description at the checkout page. |
Order Delivery
Action | Tests | Expected Vendor Behavior | Expected Result |
---|---|---|---|
Eligible restaurant selection | Authenticated user inputs address on restaurant search in Whitelabel App | Vendor answers successfully to | Desired restaurant is selected for delivery. |
Order confirmation | Authenticated user navigates to checkout page The store must remain eligible | Vendor answers successfully to | The delivery fee amount is displayed on order description at the checkout page. |
Action | Tests | Expected Vendor Behavior | Expected Result |
---|---|---|---|
Eligible restaurant selection | Authenticated user inputs address on restaurant search in Whitelabel App | Vendor answers successfully to | Desired restaurant is selected for delivery. |
Order confirmation | Authenticated user navigates to checkout page The store must remain eligible | Vendor answers successfully to | The delivery fee amount is displayed on order description at the checkout page. |
Order creation | Authenticated user clicks on “Continue” on the checkout page, and confirms selecting any payment method by clicking “Place Secure Order”. | Vendor answers successfully to |
|
Order is sent to kitchen | Delivery vendor request to move the order to kitchen | Vendor triggers a | Order is sent to kitchen, for preparation. It can be validated by the GET request API |
Order is picked up by driver | User remains in the order confirmation page, meanwhile the driver picks the order up at the restaurant. | Vendor sends a request to the delivery event endpoint (docs), updating the delivery to | “Driver Enroute” state is displayed in the order confirmation page. |
Order is delivered to customer address | User remains in the order confirmation page, driver drops order at customer address. | Vendor sends a request to the delivery event endpoint (docs), updating the delivery to | “Delivered” state is displayed in the order confirmation page. |
Alternative flows | |||
Pre-order scheduling | User places a order with “Delivery Time“ | Vendor should receive the | Order must be send to the kicketn only in the right delivery time indicated in the |
Restaurant not eligible for selection | Inputs address on restaurant search in Whitelabel App. The store tested must not be eligible | Vendor should not receive request for | Another restaurant is selected for delivery or “no-delivery-stores” modal should be displayed if any restaurant is eligible. |
Quote failed by unavailability reason | Inputs address on restaurant search in Whitelabel App. | Vendor should receive the quote request
| Another restaurant is selected for delivery or “no-delivery-stores” modal should be displayed if any restaurant is eligible. |
Order confirmation when the restaurant is no longer eligible | An authenticated user, select a restaurant, add some item to the cart and navigate to the checkout page. The store should no longer be eligible | Vendor should not receive request for | A modal should be displayed to inform that the restaurant is unavailable. |
Order is cancelled by delivery vendor | Order is cancelled during the delivery process. | Vendor sends a request to the delivery event endpoint (docs), updating the delivery to | |
Order is cancelled by another party (POS, RBI, etc.) | Order is cancelled by POS, RBI, or a different party than the delivery vendor. We can simulate it by “Order Event” endpoint (docs) | Vendor reacts to delivery or order status changes from Vendor must cancel the order and send delivery event (docs) to indicate that the delivery order has been canceled in full. |
|
Driver cancels the trip before collecting the order | After the driver has been assigned to deliver the order, he cancels the trip | Vendor should send the | No order status change It can be validated by the GET request API |
Driver cancels the trip after collecting the order | After the driver has been picked up the order, he cancels the trip | Vendor should send the | |
Optional flows | |||
Set restaurant to available/unavailable | When the delivery provider changes store availability It is used when the store stops receiving new delivery orders for a period of time (ie: Pause mode). | Send a event to the RBI to notify the change (docs) | Receive the event from the vendor |
Refund order | The order paid with online payment is canceled by the vendor and the customer receives a refund | Vendor should send a request to refund the order (docs) | The refund must be made successfully |
Create a loyalty vouncher | The order is delivered with problem (ie: missing fry), manager send a voucher to the customer by loyalty offer. | Vendor should send a request to create a voucher to the customer loyalty account (docs) | A voucher must be create in the customer loyalty account. |
We consider the store ineligible for delivery if any criteria is true:
No mobile ordering (Sanity)
Restaurant closed (Delivery hours)
Restaurant heartbeat offline
Restaurant not enabled for delivery (Sanity)