Skip to content

Delivery times for Craft Commerce

Customers choose when their order arrives, or when to collect it. You set the windows, how many orders each takes, and when ordering closes. Try it below as a customer.

Get startedSee the examples →

Choose a delivery timeOrder by 8pm for next-day delivery

Order summary

  1. Seasonal veg box$42.00
  2. Sourdough loaf$9.50
  3. Delivery$5.00
  4. Total$56.50
Held for you for 15 minutesTuesday 17 November, 10am – 12pm · Inner east
{{ cart.deliverySlot.label }}
→ Tuesday 17 November, 10am – 12pm

Set the rules,

{# Local delivery's schedule #}
cutoff: 
leadHours: 
sameDay: 

Today, Monday 1 of 6 open

  • 8 – 10amToo late
  • 10am – 12pmToo late
  • 12 – 2pmToo late
  • 2 – 4pmToo late
  • 4 – 6pmToo late
  • 6 – 8pmOpen

Tomorrow, Tuesday 6 of 6 open

  • 8 – 10amOpen
  • 10am – 12pmOpen
  • 12 – 2pmOpen
  • 2 – 4pmOpen
  • 4 – 6pmOpen
  • 6 – 8pmOpen

Everything after the checkout, too

A run sheet for drivers

Each day’s orders by slot, zone and suburb, with phone numbers. Print a page per slot, and mark orders delivered.

The run sheet: six slots with how full each is, and eight orders grouped by time

What to pack

How many of each item for the day, by slot. Six veg boxes, five loaves, two bunches of flowers.

The packing list: four items with their quantity in each slot and a total

Move an order

A customer rings to change their time. Pick the new one from the order page, even if it’s full, and they’re emailed it.

Changing an order’s delivery time: each window with how many orders it has and a Move here button

Today at a glance

A dashboard widget for today and tomorrow, and a delivery date filter on Commerce’s orders.

The Delivery Slots widget showing today’s windows and how many are booked

Exports for any week

Orders or the packing list as CSV, from the control panel or php craft delivery-slots/export.

The Export page: dates, a shipping method, and Orders or Packing list

Headless checkouts

The slot comes back in Commerce’s cart JSON, and two actions list and hold slots.

"deliverySlot": {
  "value": "2026-11-17@10:00",
  "label": "Tuesday 17 November,
            10am – 12pm",
  "fee": 0,
  "isBooked": false
}
Slots for 15 Main St, Hahndorf: Thursday chosen, other weekdays say Not in your area, every slot +$4.00

Different days for different suburbs

Draw your delivery areas with Geo Maps and give each its own days, order limit and fee. The van goes up to the Hills on Thursdays and Saturdays; the city gets every weekday.

  • Days per zone. Other days say “Not in your area”.
  • A limit per zone. At most four Hills orders share a slot.
  • A fee per zone. Added to the shipping, before tax.
  • Outside every zone? Delivery isn’t offered, so nobody orders a trip you don’t make.

Delivery zones →

A seventeenth-century painting of bakers with their bread cart in a city street, loaves stacked on the cart
The Baker’s Cart, Jean Michelin, 1656. The Metropolitan Museum of Art.

The baker always came at seven

For three hundred years the bread arrived at the same time each morning, and everyone on the street knew when to open the door. Online orders lost that. Delivery Slots gives it back: a time chosen at checkout, and a shop that knows exactly how many orders it can carry.

Fred Bailey in J. E. Sedunary’s horse-drawn baker’s cart at Victor Harbor, South Australia, 1920
Fred Bailey on the baker’s round at Victor Harbor, South Australia, 1920.
Adelaide from above in 1916, looking south-west across Victoria Square
Adelaide in 1916, where the docs’ sample store delivers today.

Three steps to delivery times

First, install it.

composer require suprim/delivery-slots
php craft plugin/install delivery-slots

Then set the times.

Delivery Slots → Schedules, choose a shipping method, and add its windows, limits and cut-off.

Then add the picker.

{% for day in cart.deliverySlotDays %}
  {% for slot in day.slots %}
    <input type="radio" name="deliverySlot"
      value="{{ slot.value }}">
  {% endfor %}
{% endfor %}

Give every order a time.

composer require suprim/delivery-slots
Installation guide →

A Craft Commerce plugin by suprim.

Pictures: “The Baker’s Cart” by Jean Michelin, 1656, CC0, The Metropolitan Museum of Art via Wikimedia Commons. “Horse drawn baker’s cart Victor Harbor 1920”, State Library of South Australia, CC BY 2.0 via Wikimedia Commons. “Adelaide City View, looking south-west across Victoria Square, circa 1916” by the South Australian government photographer, CC0 via Wikimedia Commons.

Green Grocer’s orders for tomorrow close in

—

Questions and support

support@suprim.com.au
Delivery Slots
Read the docs