Add estimated delivery date to order confirmation email

Greetings,

I am using the Estimated Delivery Date - Plus app and was wondering if there is a way to include the estimated delivery date from the widget in my order confirmation email? Seems like a simple fix but having trouble finding a solution. If there are any other suggestions out there, would appreciate it.

Hi @Hippada ,

To add the Estimated Delivery Date - Plus app’s date to your order confirmation email:

  1. Check if the app stores it in order attributes (Orders > Additional Details).

    • If yes, use this in your email template
{% for attribute in order.attributes %}
  {% if attribute.first == 'Estimated Delivery' %}
    

Estimated Delivery Date: {{ attribute.last }}

  {% endif %}
{% endfor %}

2. Check app settings for email integration or ask their support for a Liquid variable.

3. Manually estimate delivery date if the app doesn’t save it:


Estimated Delivery Date: {{ order.created_at | date: "%B %d, %Y" | plus: 5 | date: "%B %d, %Y" }}

Thank you for your suggestions and if my understanding is correct, the app doesn’t store in the order attributes. Additionally, if I manually input the estimated delivery date then I will no longer be able to use the Shopify automation email resource. I appreciate your suggestions but it appears I will need to continue searching for a solution or workaround.

With Delivery Timer, you attach the estimated delivery date as a cart line item.

This means its attached to the order and can be used in flows or other automations where required.

You can also “flatten” the dates so the cart will work out the longest Delivery Date for the combined cart and apply this to all.

The app has been around since 2019 (featured as a Shopify Staff Pick) and has since grown to a mature user base. We have added many features to handle most edge cases which merchants require to accurately display estimated delivery dates on their stores to their customers.

Still open, so here’s the actual mechanism. An order email can only render data that’s saved on the order itself. Your app’s date lives in a front-end widget, so there’s nothing on the order for the email to read — that’s why it’s not showing, and why typing it in by hand breaks the automated send like you found.

The native fix is to write the date to a cart attribute, which does save on the order and is available in notification templates. Two steps:

1. Capture it near the add-to-cart / cart form (theme code):

<input type="hidden" name="attributes[Estimated Delivery]"
       value="{{ 'now' | date: '%s' | plus: 432000 | date: '%B %d, %Y' }}">

432000 is 5 days in seconds — swap in your lead time. (Note: plus only adds numbers, so you convert to a timestamp with %s first, add seconds, then reformat. The | plus: 5 version that gets posted around doesn’t render, because after date: you’re adding to a string.)

2. Print it in Settings → Notifications → Order confirmation:

{% for attribute in attributes %}
  {% if attribute.first == 'Estimated Delivery' %}
    <p>Estimated delivery: {{ attribute.last }}</p>
  {% endif %}
{% endfor %}

Note there’s no order. prefix inside email templates — it’s just attributes.

That gives every order a stored date, shown consistently on the order page and the email, with zero manual entry. The catch is it’s a flat lead time; if you need real per-product/destination logic, holidays or weekend skips, you’re maintaining a lot more Liquid.

(Full disclosure, I build one of the apps in this space — Estimated Delivery Date ‑ ETA — which does the calculation + email piece if you’d rather not maintain the code. But the two snippets above solve it natively and cost nothing, so start there.

If the app stores the estimated delivery date as an order attribute, line item property, metafield, or order metafield, you can display it in the order confirmation email by editing the email template liquid.

If it’s only shown on the storefront and isn’t saved with the order, Shopify’s email templates won’t be able to access it. In that case, I’d check with the app developer to see if they expose the delivery date in a way that email notifications can use.