Perfecting Your Shopify Local Pickup Emails: Location & No Delivery Estimates

Hey there, fellow store owners!

Let's talk about something that often trips up even the most seasoned Shopify merchants: perfecting those order confirmation emails, especially when it comes to local pickup. You'd think it would be straightforward, right? But as a recent discussion in the Shopify community highlighted, it's a classic head-scratcher.

The Local Pickup Email Conundrum: Missing Info & Misleading Dates

The problem, brilliantly articulated by SaphtaBakery in the community thread, goes like this: when a customer chooses local pickup, the order confirmation email often falls short in two key areas:

  1. It doesn't show the store's pickup location.
  2. It incorrectly displays an "Estimated delivery date."

Imagine your customer reading: "You'll receive an email when your order is ready for pickup. Estimated delivery Sunday, Jul 19–Tuesday, Jul 21." It's confusing, right? They just opted for pickup, not delivery!

Why Shopify Does That (and How We Fix It)

As our friend Lumine pointed out in the discussion, Shopify's default behavior is actually by design for the pickup address. The system usually puts the store address in the separate "Ready for pickup" email, which goes out when you mark the order as ready. The confirmation email just tells them to expect that next email.

However, for a better customer experience, many of us want that pickup location right there in the initial confirmation. It reduces anxiety, saves customers from digging through emails, and generally makes things smoother.

The "Estimated delivery" line, though, is definitely an annoyance. It’s a bit of a template oversight where shipping-related info bleeds into pickup orders.

The Community Steps In: Solutions From Our Fellow Merchants

The beauty of the Shopify community is how everyone pitches in. Before diving into code, several members like rshrivastava63 and devcoders rightly suggested some foundational checks:

  • Double-check your local pickup configuration: Make sure "Local Pickup" is correctly set up under Settings > Shipping and delivery, and that the order is indeed being processed as a local pickup, not local delivery or shipping.
  • Review your notification templates: This is where the magic happens (or where things go awry!). Most of these issues stem from the code within your Order confirmation email template.

And then, a big shout-out to ajaycodewiz, who dove deep into the code and provided detailed, actionable fixes that SaphtaBakery confirmed worked! Let's break down how to implement these improvements.

Step-by-Step Guide: Customizing Your Order Confirmation Email

Alright, let's roll up our sleeves and get this done. You'll be editing your Shopify notification templates, which uses Liquid code. Don't worry, it's not as scary as it sounds, and there's always a "Revert to default" button if you make a mess!

1. Access Your Order Confirmation Email Template

Navigate to: Settings > Notifications > Order confirmation > Edit code.

Screenshot showing how to access Shopify Order Confirmation email code

2. Remove the "Estimated Delivery" Line for Pickup Orders

This is crucial for avoiding confusion. We want that line to disappear entirely for local pickup orders.

Look for this block of code:

{% unless delivery_method_types.size > 1 %}

Change it to:

{% unless delivery_method_types.size > 1 or delivery_method == 'pick-up' %}

This modification tells Shopify: "Don't show this estimated delivery date if there's more than one delivery method, OR if the delivery method is 'pick-up'."

ajaycodewiz also mentioned that if you're seeing pickup and shipping estimates getting mixed up within line item groups, you might need to find and delete an inner {% if %}...{% endif %} block related to estimated_delivery_date specifically for pickup orders. It looks something like this (you'd delete the inner {% if %} and its contents):

{% if delivery_agreement.delivery_method_type == 'pick-up' %}
  {% if delivery_agreement.estimated_delivery_date %}
    

Estimated delivery · {{ delivery_agreement.estimated_delivery_date }}

{% endif %}
Screenshot showing the code change to remove estimated delivery

3. Add Your Store's Pickup Location

This fix involves adding your store's static address directly into the pickup section of the email. You'll need to find this block (there might be two copies, one under split_cart_delivery_method and one under delivery_method – make sure to do both!):

{% when 'pick-up' %}
  You'll receive an email when your order is ready for pickup.

Immediately underneath that line, add your pickup details. Replace the example with your actual store information:

{% when 'pick-up' %}
  You'll receive an email when your order is ready for pickup.
  

Pickup location
Saphta Bakery
12 Example Street
Tel Aviv 6100000
Usually ready in 2 hours.

Remember to replace "Saphta Bakery," "12 Example Street," "Tel Aviv 6100000," and "Usually ready in 2 hours" with your own business name, address, and typical pickup readiness time. The
tags create line breaks, and makes the "Pickup location" bold.

Screenshot of original email without pickup address Screenshot of fixed email with pickup address

What if you have multiple pickup locations? ajaycodewiz brought this up too. If you have several branches, you'd need more advanced Liquid logic, potentially wrapping the address block in a {% case delivery_agreement.delivery_method_name %} statement to show the correct address based on the chosen pickup location. This gets a bit more complex, but it's definitely doable if you need it!

Once you've made these changes, hit "Save" and test out a local pickup order to ensure everything looks perfect. The goal is a seamless, clear experience for your customers, and with these tweaks, your local pickup confirmations will be much more informative and professional. It's these small but significant details that really elevate the customer journey and show you care!

Share:

Use cases

Explore use cases

Agencies, store owners, enterprise — find the migration path that fits.

Explore use cases