Tackling Partial Pickup Confusion: Real Solutions for Your Shopify Order Status Page

Hey fellow store owners! Let's talk about something that came up recently in the Shopify community that I know many of you have probably wrestled with: the dreaded "partial pickup confusion." This isn't just a minor glitch; it's a real customer service headache that can lead to frustration, wasted trips, and even erode trust.

The issue was brought to light by PoshBabyPDX, a premium baby gear boutique, and it's a classic scenario: a customer orders multiple items, but only some are ready for local pickup. Shopify's "Ready for pickup" email correctly lists only the items that are actually available. Great! But then, the customer clicks through to their order status page, and BAM! It looks like all items are ready for pickup, with no clear distinction. Imagine a customer driving three hours to pick up an order, only to find out half of it isn't there yet. That's exactly the kind of "damage control" PoshBabyPDX's staff were doing.

It's a classic "state mismatch," as one community member, Icey.Lane, aptly put it. The email is scoped to a single fulfillment, showing what's truly ready. But the order status page, as lumine explained, tends to lean on an order-level status. Once one fulfillment is marked ready, the whole order page seems to wear that "ready for pickup" label, even if other items are still pending. The page simply isn't "drawing the line for the shopper."

So, what can we do about it? The community jumped in with some fantastic insights, from quick fixes to more robust, native Shopify solutions. Let's break them down.

Immediate Relief: Patching Your Pickup Notification Email

The quickest win comes from ensuring your "Ready for pickup" email is crystal clear about what's ready and what isn't. ChristoW shared some excellent Liquid code that you can drop right into your notification template. This ensures the email explicitly separates items that are ready from those still being prepared.

How to Update Your "Ready for pickup" Email Template:

1. In your Shopify Admin, go to Settings > Notifications.

2. Find the Ready for pickup notification and click Edit code.

3. Replace the existing relevant section (or add this if you don't have a similar breakdown) with the following Liquid code:

Ready for pickup now

    {%- for prepared in prepared_package_line_items -%}
  • {{ prepared.quantity }} × {{ prepared.line_item.title }}
  • {%- endfor -%}
{%- assign still_units = 0 -%} {%- for line in line_items -%} {%- assign line_ready = 0 -%} {%- for p in prepared_package_line_items -%} {%- if p.line_item.title == line.title and p.line_item.variant.sku == line.variant.sku -%} {%- assign line_ready = line_ready | plus: p.quantity -%} {%- endif -%} {%- endfor -%} {%- assign line_still = line.quantity | minus: line_ready -%} {%- if line_still > 0 -%}{%- assign still_units = still_units | plus: line_still -%}{%- endif -%} {%- endfor -%} {%- if still_units > 0 -%}

Still being prepared

    {%- for line in line_items -%} {%- assign line_ready = 0 -%} {%- for p in prepared_package_line_items -%} {%- if p.line_item.title == line.title and p.line_item.variant.sku == line.variant.sku -%} {%- assign line_ready = line_ready | plus: p.quantity -%} {%- endif -%} {%- endfor -%} {%- assign line_still = line.quantity | minus: line_ready -%} {%- if line_still > 0 -%}
  • {{ line_still }} × {{ line.title }}
  • {%- endif -%} {%- endfor -%}

These are still being prepared; you'll get a separate email when they're ready.

{%- endif -%}

This code will generate two lists: one for items ready for pickup now, and another for items still being prepared. If nothing is outstanding, the "Still being prepared" block won't show up. This ensures your email is accurate and helpful.

For an even quicker, less technical interim fix, lumine suggested simply adding an explicit line to the email: "These are the items ready today and the rest of your order is still being prepared, and repeat it in the pickup instructions." It doesn't fix the page, but it gives the customer the correct information first.

The Native Shopify Solution: Splitting Fulfillment

This is where Josh-FiveAcreCode and v.marychenka really hit the nail on the head. Many of us might be marking individual items "ready" within a single fulfillment. However, Shopify has a native workflow designed precisely for this scenario: splitting the fulfillment itself. This is crucial because, as Shopify's documentation confirms, "Shopify creates new sections on the order status page for multiple fulfillments." This means a clearer distinction for your customers!

Step-by-Step for Splitting Fulfillment:

1. Open the Order: Go to the specific order in your Shopify Admin.

2. Locate Unfulfilled Section: Find the "Unfulfilled pickup" section (or general "Unfulfilled" section if it's a mixed order).

3. Split Fulfillment: Click the ... menu next to the unfulfilled section and choose Split fulfillment.

4. Separate Items: Carefully select and split the items that are ready for pickup from those that are still waiting. You'll effectively create two separate fulfillment groups within the same order.

5. Mark Ready: Now, mark only the fulfillment containing the ready items as Ready for pickup.

By following this workflow, the customer's order status page should display separate sections for the items ready for pickup and those still pending. This is a much cleaner, native way to communicate the partial status without resorting to complex custom code for the order page.

Here's a visual representation of what the original poster, PoshBabyPDX, was seeing before these solutions:

When Native Isn't Enough: Custom UI Extensions

If, for some reason, the native split fulfillment workflow doesn't fully address your needs (perhaps you want even more granular control or a specific UI), the community also discussed building custom solutions. Shopify does offer UI extension targets like customer-account.order-status.fulfillment-details.render-after. However, as ChristoW and v.marychenka pointed out, while you can get a shopify.fulfillmentId, the Order API available there is summary-level. To get detailed fulfillment data for a truly custom display, you'd likely need to leverage the GraphQL Admin API through a small backend service. So, this isn't just a simple Liquid change; it's a "build, not a setting," as lumine noted.

The Importance of Feedback

Mustafa_Ali made a great point: while we find workarounds and solutions, it's also worth submitting this directly through the Shopify feedback form. This ensures it gets tracked as a formal feature request, potentially leading to future improvements in how Shopify handles partial fulfillment displays natively.

Ultimately, clear communication is key to a great customer experience, especially when dealing with pickups. Whether you're a new merchant just starting your journey on Shopify or a seasoned pro, these community-driven solutions can help you avoid those awkward "damage control" moments and keep your customers happy and informed. Always test these changes with a dummy order first to make sure they work exactly as you expect!

Share:

Start with the tools

Explore migration tools

See options, compare methods, and pick the path that fits your store.

Explore migration tools