Shoppers pick their delivery day and time slot in the cart, before checkout. Their pick is held for 30 minutes and checked again in checkout, so a full slot can’t be booked twice. After the order, they can see the time on the Thank you page and change it within limits you set.
Add the picker to your theme #
In Shopify, open Online Store › Themes and click Customize.
- On the cart page: open the cart template and add the app block Delivery day to the cart section. Its settings are Heading (“Delivery day” by default) and Delivery days shown (3 to 14, 10 by default).
- In the cart drawer: open App embeds and turn on Delivery day (drawer). It also shows the picker on a cart page that has no Delivery day block.
- On product pages (optional): add the app block Delivery promise. It shows one line such as “Get it Tuesday · Order by 2 PM for tomorrow”, from the same days the cart offers. It is hidden for products that aren’t delivered.
- Click Save.
The embed’s settings:
| Setting | What it does |
|---|---|
| Show in the cart drawer | Puts the picker in your theme’s cart drawer. |
| Show on the cart page | Only when the cart page has no Delivery day block. |
| Position | Above the checkout button or Below the checkout button. |
| Heading | The picker’s heading. |
| Cart drawer selector | Optional. A CSS selector for your theme’s cart drawer, if it isn’t found on its own. |
| Place next to | Optional. A CSS selector inside the drawer; the picker goes above or below it instead of the checkout button. |
What shoppers see #
The picker shows when the cart has something to deliver. It stays hidden for carts with no items that need shipping, and when no delivery day is open.
- With delivery areas, it asks for the Postcode for delivery first (“Enter your postcode to see the delivery days.”) with Show days. Then it says “Delivering to 62701.” with Change. A postcode outside your areas gets “We don’t deliver to 62999 yet.” The postcode is remembered on that browser.
- Delivery day: the open days. A full day says Full.
- Delivery time: the slots of that day. Each shows Full, how many are left (“2 left”), or its extra charge when you charge one.
- Once they pick: “Delivery set for …”. The pick is held for 30 minutes and renewed while they keep shopping. If the place has gone in the meantime, they see “That delivery time is no longer free. Please pick another one.”
When a delivery day is required, the picker says “Pick a delivery day before checkout.” until they pick one. When it isn’t, they can Clear the delivery day.
When you send texts (see Customer emails and texts), a box under the slots asks Text me about my delivery, with a line about delivery updates by text under it.
Checkout settings #
Open Settings and find Delivery day picker and checkout.
| Setting | Default | What it does |
|---|---|---|
| A delivery day is required for local delivery | Off | Off: an order without a day still goes through, and the customer is asked to pick one after the order. On: checkout asks them to go back to the cart and pick one. |
| Show the day and time in the checkout’s delivery option | On | Adds the pick to the local delivery option’s name, for example “Local delivery · Tue 6 Oct, 8–10 AM”. |
| Show the delivery time on the Thank you and Order status pages | On | Customers see their time there, pick one when the order has none, and can change the slot on the same day. Off: only the link in the emails. |
| Charge the slot surcharges as a “Delivery time fee” line | Off | Slots with an extra charge add a fee line to the cart (below). |
| Times | 12-hour | 12-hour (8:00 AM) or 24-hour (08:00), in the picker and at checkout. |
| Customers can change the time until (hours before) | 24 | Only to another slot on the same day. 0 means until the slot starts. |
The checkout check #
For local delivery, checkout checks the pick again before the customer can pay. Shipping and pick-up aren’t checked. When something is wrong, the customer sees one of these, and goes back to the cart to fix it:
| When | Message |
|---|---|
| No delivery day, while one is required | “Choose a delivery day for local delivery. Go back to the cart to pick one.” |
| The delivery time could not be confirmed | “We couldn’t confirm your delivery time. Go back to the cart and pick it again.” |
| The picked time has expired | “Your delivery time (…) has expired. Go back to the cart and pick it again.” |
| The picked time is full | “… is now full. Go back to the cart and pick another delivery time.” |
| The address is outside the delivery area | “We can’t deliver to … at the time you picked. Change the address, or go back to the cart and pick a time for this postcode.” |
| The delivery time fee is missing | “The delivery time fee for … is missing from your cart. Go back to the cart and pick your delivery time again.” |
| A fee without a delivery time | “Your cart has a delivery time fee without a local delivery time. Remove the fee, or go back to the cart and pick a delivery time.” |
To use your own words, fill in Checkout messages. Leave a box empty for the wording above. {when} becomes the day and time, {postcode} the postcode.
The delivery time fee #
With Charge the slot surcharges as a “Delivery time fee” line on, a slot’s Extra charge joins the cart as one Delivery time fee line when the shopper picks that slot, and leaves when they pick a slot without one. The app creates a hidden Delivery time fee product for it and puts it on your Online Store. If it can’t, Home asks you to do it: Products › Delivery time fee › Sales channels. Checkout refuses a cart that is missing the fee for its slot, and a fee line without a delivery time.
Shopify’s own local delivery rate is charged as usual on top. Don’t delete the hidden product.
After the order #
- Thank you and Order status pages: in Shopify, open Settings › Checkout › Customize and add the app’s Delivery time block to the Thank you page and to Customer accounts › Order status. It shows “Delivery: …” with Change time and “You can change the time until …”. An order without a time asks “Pick a delivery time for your order.” with Choose a time.
- The link in the emails: the Pick a delivery time and Delivery time changed emails link to a page on your store where the customer picks or changes the time and clicks Save delivery time. Past the change limit, it says “To change this time, contact the store.”
A customer can only move to another slot on the same day, until the hours you set. Another day, or a delivery already with a driver, stays with you: change it on the order or the Schedule. With the delivery time fee on, they can only move to slots with the fee they paid.
Shopify Plus: under the delivery option #
On Shopify Plus, you can also add the Delivery time (Plus) block to checkout’s shipping step. It shows under the selected local delivery option, with the chosen time (“Delivery: …”, or “No delivery time chosen yet.”) and Change delivery time. Add it in Settings › Checkout › Customize.
Good to know #
- The picker doesn’t add anything to your theme’s cart form, so it doesn’t change how your cart works.
- Buy it now and express checkout buttons skip the cart. With a day required, checkout asks the customer to pick one in the cart; without, the order arrives as Needs a day and the customer is asked to pick a time.
- Days come from your settings: cut-off, notice, delivery days, no-delivery dates, areas and capacity. See Delivery days, time slots and areas.
