Show the date in your confirmation email
How it works
When a customer picks a date, Blackout Dates saves it on the order as an attribute: Collection Date, Delivery Date, or Dispatch Date, depending on how they're getting the order. Shopify's order confirmation email can show that attribute once you paste in a short snippet.
You'll do this in Shopify Admin → Settings → Notifications. No coding needed, and you only do it once.
Order confirmation email
Go to Settings → Notifications → Customer notifications → Order confirmation and click Edit code. Paste the snippet below into the email body. Just above the order summary works well:
{%- comment -%}
Order Confirmation Snippet. Added by the Blackout Dates app.
Renders the customer's chosen pickup / delivery / dispatch date.
{%- endcomment -%}
{%- assign bd_keys = "Collection Date|Delivery Date|Dispatch Date" | split: "|" -%}
{%- assign bd_verbs = "pickup|delivery|dispatch" | split: "|" -%}
{%- assign bd_subscription = false -%}
{%- for line in line_items -%}
{%- if line.selling_plan_allocation != blank -%}{%- assign bd_subscription = true -%}{%- endif -%}
{%- endfor -%}
{%- assign bd_created = created_at | date: "%Y-%m-%d" -%}
{%- capture bd_lines -%}
{%- for bd_key in bd_keys -%}
{%- assign bd_date = attributes[bd_key] -%}
{%- if bd_date != blank -%}
{%- assign bd_verb = bd_verbs[forloop.index0] -%}
{%- assign bd_where = "" -%}
{%- if bd_verb == "pickup" and attributes["Location"] != blank and attributes["_Location ID"] != blank -%}
{%- capture bd_where %} at {{ attributes["Location"] | escape }}{% endcapture -%}
{%- endif -%}
{%- assign bd_stale = false -%}
{%- if bd_subscription and bd_created != blank -%}
{%- assign bd_iso_key = "_" | append: bd_key | append: " ISO" -%}
{%- assign bd_iso = attributes[bd_iso_key] | split: "," | first -%}
{%- if bd_iso != blank and bd_iso < bd_created -%}{%- assign bd_stale = true -%}{%- endif -%}
{%- endif -%}
{%- if bd_stale -%}
<br>Your {{ bd_verb }} date{{ bd_where }} will be on your <a href="{{ order_status_url }}">order status page</a>.
{%- elsif bd_date contains "see order details" -%}
{%- assign bd_prop = "_" | append: bd_key -%}
{%- capture bd_items -%}
{%- for line in line_items -%}
{%- for bd_p in line.properties -%}
{%- if bd_p.first == bd_prop and bd_p.last != blank -%}<br>{{ line.quantity }} × {{ line.title | escape }}: {{ bd_p.last | escape }}{%- endif -%}
{%- endfor -%}
{%- endfor -%}
{%- endcapture -%}
{%- if bd_items != blank -%}
<br>Your {{ bd_verb }} dates{{ bd_where }}:{{ bd_items }}
{%- else -%}
<br>Your {{ bd_verb }} dates{{ bd_where }} are in your order details.
{%- endif -%}
{%- else -%}
<br>You picked {{ bd_date | escape }} for {{ bd_verb }}{{ bd_where }}.
{%- endif -%}
{%- endif -%}
{%- endfor -%}
{%- endcapture -%}
{%- if bd_lines != blank -%}
<p style="margin: 16px 0; padding: 12px 16px; background: #f4f6f8; border-radius: 6px; font-size: 14px; line-height: 1.5; color: #1a1a1a;">
{{ bd_lines | remove_first: "<br>" }}
</p>
{%- endif -%}Hit Save, then use Preview to check it before it goes to customers. The snippet hides itself on orders without a date, so anything undated looks exactly as it does today. It's the same snippet you'll find on the app's Order Confirmation Snippet page, so copy it from either place.
Let customers change their own date (optional)
On the Pro plan, once you've turned on customer rescheduling in the app (Settings → Timing & hours → Customer rescheduling), every dated order gets a secure link the customer can use to pick a new date themselves, without emailing you. Add this second snippet just below the date line to show a “Change your date” button in the same email:
{%- comment -%}
Reschedule link. Added by the Blackout Dates app.
Shows a "Change your date" button on dated orders. Remove it if you
turn customer rescheduling off or leave the Pro plan.
{%- endcomment -%}
{%- assign bd_movable = false -%}
{%- assign bd_keys = "Collection Date|Delivery Date|Dispatch Date" | split: "|" -%}
{%- for bd_key in bd_keys -%}
{%- assign bd_date = attributes[bd_key] -%}
{%- unless bd_date == blank or bd_date contains "see order details" -%}{%- assign bd_movable = true -%}{%- endunless -%}
{%- endfor -%}
{%- assign bd_reschedule = attributes["Reschedule link"] -%}
{%- if bd_reschedule == blank and bd_movable -%}
{%- capture bd_reschedule -%}{{ shop.url }}/apps/blackout-dates/reschedule?order={{ id }}&status={{ order_status_url | url_encode }}{%- endcapture -%}
{%- endif -%}
{%- if bd_reschedule != blank and bd_movable -%}
<table role="presentation" align="center" border="0" cellpadding="0" cellspacing="0" style="margin: 16px auto; border-collapse: separate;">
<tr>
<td align="center" bgcolor="#1a1a1a" style="border-radius: 8px;">
<a href="{{ bd_reschedule }}" target="_blank" style="display: inline-block; padding: 12px 22px; color: #ffffff; text-decoration: none; border-radius: 8px; font-size: 14px; font-weight: 600;">Change your date</a>
</td>
</tr>
</table>
{%- endif -%}Note: every dated order gets the link, but customers only see it once you paste this snippet. The button hides itself on orders without a date; if you turn customer rescheduling off or leave the Pro plan, take the snippet out too.
Thank-you and order status pages
Customers can also see the date they chose on the thank-you page right after paying, and again on their order status page. With customer rescheduling on, a “Change your date” button sits under it. Shopify doesn't show it until you add the block to each page:
- In Shopify admin, open Settings → Checkout and click Customize to open the checkout and accounts editor.
- From the page menu at the top, choose Thank you. Add the Blackout Dates. Order Date app block where you'd like it, then Save.
- Choose Order status from the same menu and add the block there too.
Works on every plan; only the button needs Pro. Orders without a date show nothing. Subscription renewal emails send customers to their order status page for the renewal's date, so add the block there if you sell subscriptions. The app's Order Confirmation Snippet page has a button that opens the editor for you.
On the order's page in Shopify
Each order's page in Shopify admin shows the date the customer chose in a Blackout Dates. Order Date block. On Pro, its Change date button moves the order under your closed days, cut-offs and limits, without telling the customer. If you don't see it, open any order and add it from the apps section.
Checkout delivery filtering
Plus / ProBlackout Dates installs a Shopify delivery customisation that shows only the delivery options matching what the customer chose with their date: pickup, local delivery, or postal. It's installed automatically the first time you open the app's Delivery page; nothing to set up in Shopify admin. If it ever drifts out of sync (say, after an app upgrade), re-opening the Delivery page clears the old one and puts a working one back.
Works on every Shopify plan. You don't need Shopify Plus for checkout filtering or date surcharges.
Customers who land on the wrong checkout tab can also see a banner pointing them to the right one, with a link back to change their choice. Edit its wording on the app's Delivery page: open What customers see at checkout and find The banner's wording. The banner needs Shopify Plus and Shopify's current checkout; the Delivery page tells you if your store is still on the old one.
How options are matched
The filter identifies each checkout option by its Shopify delivery type. It does not guess from keywords in the title:
| Checkout option | Shown when the customer picked |
|---|---|
| Shopify pickup options | Pickup |
| Shopify Local delivery | Local delivery |
| App-recognised postal rates (by exact title) | Postal |
| Any other shipping rate | Hidden by default |
Pickup and local delivery are recognised automatically from Shopify's own delivery types, so you don't have to name them a particular way. Postal rates are matched on their exact title: out of the box the app recognises Standard Postage, Reduced Postage, Free Postage and Next-day Dispatch, plus any surcharge rates the app creates for you (see below).
A shipping rate the app doesn't recognise by name (a custom courier, say) is hidden from customers who chose pickup or local delivery. Customers who chose Postal see it if you installed the app from 23 October 2026 or your store uses Shopify's market-based shipping, and don't on other shops, unless you chose otherwise. To place a rate yourself, open the app's Delivery page and, under Your shipping rates, choose Postage, Pickup or Local delivery next to that rate, or Never show at checkout. In the same section you choose whether Postal customers see unrecognised rates.
Matching is on the exact rate title, so rename a rate in Shopify and it counts as unrecognised until you choose its method again under Your shipping rates.
Free or reduced postage above a spend threshold
Base postage, and any free- or reduced-postage-over-a-spend rule, stay in Shopify's own shipping settings, using rate price conditions. Shopify shows the right rate for the cart total, and the app's filter puts whichever rate is showing under Postal.
Example in Shopify Admin → Settings → Shipping and delivery:
| Rate title | Price | Minimum order |
|---|---|---|
| Standard Postage | £4.99 | None |
| Reduced Postage | £1.99 | £30.00 |
| Free Postage | £0.00 | £60.00 |
These titles are ones the app recognises as postage. For any other postage rate, check Your shipping rates on the Delivery page: if unrecognised rates are hidden there, choose Postage for it.
Date-driven surcharges
To charge extra for the dates that cost you more to fulfil, which is the one thing Shopify can't do on its own, use the surcharges in the app's Delivery settings. There are two kinds:
- A rush / next-day surcharge that kicks in automatically when the customer picks a date within a few days of today.
- Peak-date surcharges for fixed windows, like the week before Christmas or Valentine's.
You give each surcharge a rate name and a price; the app creates the matching shipping rate in Shopify for you when you save, so there's no two-rate setup to wire up by hand. When the customer picks a date that falls in a surcharge window, Blackout Dates shows that surcharge rate and hides base postage, so the surcharge applies for that date with no double-charging. On any other date the surcharge rate stays hidden.
Surcharges apply to postal orders, so switch Postal on first. Carts containing a subscription always pay normal postage. Before uninstalling the app, switch surcharges off and save, or delete the surcharge rates afterwards in Settings → Shipping and delivery.
Pickup and local delivery at checkout
For Shopify's native pickup and local delivery options to appear at checkout, your cart items must be marked as physical products and either have stock at the pickup or local-delivery location or have inventory tracking turned off. If not, Shopify won't offer the option regardless of what the customer chose, and the filter has nothing to show.
The app's Delivery page explains this and tells you whether pickup is switched on for your locations in Shopify.
Troubleshooting
If checkout shows the wrong delivery options, open the app's Delivery page. The filter reinstalls when the page loads, which usually fixes it. If a red banner appears, it names the cause (a missing permission or Shopify not accepting the change) and what to do.
Need a hand?
We reply within one business day, Monday to Friday.