Online Ordering Overview
This interface allows for retrieving and managing orders placed for a given location by 3rd-party.
The section presents a high level overview of how Online Order flow work via our API
- Regular & Future Order
- Order statuses
- Regular Order Confirmation Flow
- Future Order Confirmation Flow
- Future Order Rejection Flow
- Future Order Cancellation Flow
Regular & Future Order
Shift4 Online Ordering interface supports the following types of orders:
Flow | Description |
---|---|
Regular | These orders are in ready for confirmation state, so the order confirmation request from the POS is expected. Mostly used for ASAP orders. |
Future | These orders are read-only in the POS, so no action from the POS is expected. Also those orders should be either cancelled by the diner or marked as ready for confirmation. Mostly used for Future Orders. |
Order statuses
Status | Description |
---|---|
ANTICIPATED | Denotes a future order, which may be cancelled by a diner. |
READY_FOR_CONFIRMATION | Indicates that the confirmation of the receipt by a restaurant is pending. Effectively, these are new, immediate orders. |
CONFIRMED | Indicates that the order was confirmed by a restaurant. |
REJECTED | Indicates an error. For example, if an order is unable to be pushed to the POS (due to a menu item mismatch, the restaurant being offline, etc.), the status should be updated to REJECTED. |
READY_FOR_PICKUP | Indicates that the food is prepared and ready for the pickup by the diner or a delivery courier. |
OUT_FOR_DELIVERY | Indicates that the food is on the way to the diner. |
CANCELLED | Indicates that the diner cancel an order in 3rd-party. |
FULFILLED | Indicates that the food has been delivered to or picked up by the diner. |
Relation of Order Statuses
Regular Order Confirmation Flow
The diagram below explains how the regular (ASAP) order confirmation flow involves the 3rd-party & POS.
- 3rd-party creates a new order with the "READY_FOR_CONFIRMATION" order status.
- Server defines
waitTimeInMinutes
and sends a request to confirm an Order. 3rd-party accepts the notification by responding200
as status code, otherwise the Order status wouldn't be changed in POS. - Server sends a notification that the Order is ready for pickup, out for delivery or fulfilled. 3rd-party accepts the notification by responding
200
as status code, otherwise the Order status wouldn't be changed in POS.
Future Order Confirmation Flow
The diagram below explains how the future order confirmation flow involves the 3rd-party & POS.
- 3rd-party creates a new order with the "ANTICIPATED" order status.
- 3rd-party waits until the order can be started to be prepared and sends an Order update with the order status "READY_FOR_CONFIRMATION".
- Server defines
waitTimeInMinutes
and sends a request to confirm an Order. 3rd-party accepts the notification by responding200
as status code, otherwise the Order status wouldn't be changed in POS. - Server sends a notification that the Order is either ready for pickup, out for delivery or fulfilled. The 3rd-party accepts the notification by responding
200
as status code, otherwise the Order status wouldn't be changed in POS.
Future Order Rejection Flow
The diagram below explains how the future order rejection flow involves the 3rd-party & POS.
- 3rd-party creates a new order with the "ANTICIPATED" order status.
- 3rd-party waits until the order can be started to be prepared and sends a the Order update with the order status "READY_FOR_CONFIRMATION".
- Server defines
reason
and sends a request to reject an Order. 3rd-party accepts the notification by responding200
as status code, otherwise the Order status wouldn't be changed in POS.
Future Order Cancellation Flow
The diagram below explains how the future order cancellation flow involves the 3rd-party & POS. Note that orders with "ANTICIPATED" or "READY_FOR_CONFIRMATION" statuses might be cancelled.
- 3rd-party creates a new order with the "ANTICIPATED" order status.
- 3rd-party sends an Order update with the order status "CANCELLED".