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

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.

Future & Regular Order Flow difference

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

Order Status flow

Regular Order Confirmation Flow

The diagram below explains how the regular (ASAP) order confirmation flow involves the 3rd-party & POS.

  1. 3rd-party creates a new order with the "READY_FOR_CONFIRMATION" order status.
  2. Server defines waitTimeInMinutes and sends a request to confirm an Order. 3rd-party accepts the notification by responding 200 as status code, otherwise the Order status wouldn't be changed in POS.
  3. 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.

Regular Order Confirmation Flow

Future Order Confirmation Flow

The diagram below explains how the future order confirmation flow involves the 3rd-party & POS.

  1. 3rd-party creates a new order with the "ANTICIPATED" order status.
  2. 3rd-party waits until the order can be started to be prepared and sends an Order update with the order status "READY_FOR_CONFIRMATION".
  3. Server defines waitTimeInMinutes and sends a request to confirm an Order. 3rd-party accepts the notification by responding 200 as status code, otherwise the Order status wouldn't be changed in POS.
  4. 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 Confirmation Flow

Future Order Rejection Flow

The diagram below explains how the future order rejection flow involves the 3rd-party & POS.

  1. 3rd-party creates a new order with the "ANTICIPATED" order status.
  2. 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".
  3. Server defines reason and sends a request to reject an Order. 3rd-party accepts the notification by responding 200 as status code, otherwise the Order status wouldn't be changed in POS.

Order Rejection Flow

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.

  1. 3rd-party creates a new order with the "ANTICIPATED" order status.
  2. 3rd-party sends an Order update with the order status "CANCELLED".

Order Cancellation Flow

results matching ""

    No results matching ""