Skip to main content

Scheduled Orders

Scheduled orders allow customers to place orders ahead of time for future fulfillment. Our system supports three different approaches to handling scheduled orders, depending on how your platform manages order timing and preparation.

Order Fields for Scheduled Orders

When working with scheduled orders, these fields in the NewOrder object are particularly important:

  • is_future_order - Set to true when the order is a scheduled order
  • estimated_ready_at_ms - The estimated time when the order should be ready for pickup/delivery, in epoch milliseconds

3 Approaches to Scheduled Orders

1. DSP Managed Timing

In this approach, your platform handles all the timing logic internally and only sends us the order when it should begin preparation.

How it works:

  1. Customer places a scheduled order on your platform.
  2. Your platform calculates prep time and holds the order internally.
  3. When it's time to start preparation, your platform sends the order via webhook.
    note

    When sending the order webhook, is_future_order would be false.

  4. We immediately confirm the order and begin preparation.

2. Stream-Managed Timing

In this approach, you send us the complete scheduled order information, and we handle the timing delay internally.

How it works:

  1. Customer places a scheduled order on your platform.
  2. Your platform sends us the complete order with is_future_order: true and estimated_ready_at_ms.
  3. We internally manage the delay until the appropriate preparation time.
  4. When it's time to prepare, we automatically confirm the order and begin preparation.