Solving the Shopify Pickup-Only Shipping Mystery: Insights from the Community
Hey fellow store owners! Let's dive into a common head-scratcher that recently popped up in the Shopify community forums. It's about a seemingly small detail that can cause big headaches: what happens when a customer's cart contains only pickup-only items, and suddenly, the shipping option vanishes at checkout without a clear explanation?
Our friend Metz kicked off a great discussion, highlighting how this often leads to customer confusion and, ultimately, abandoned carts. Shoppers see the shipping option disappear, assume it's a bug, and bounce. Metz was hoping for a native Shopify solution, perhaps a simple message at checkout like "Shipping isn't available for these items." But as many of us know, customizing the Shopify checkout experience, especially beyond a Shopify Plus plan, can be pretty restrictive.
The Core Problem: Checkout Limitations
The community quickly confirmed Metz's suspicion: direct customization of the shipping step at checkout for non-Plus plans is largely off-limits. Smruti-MONK and ecom-4all pointed out that UI extensions for checkout are a Plus-only feature. So, the consensus was clear: if you want to prevent this confusion, you need to address it before your customers even reach the checkout page.
Community Solutions: Messaging Before Checkout
This is where the collective wisdom of the community really shines. There were two main approaches discussed, each with its own merits, for clearly communicating the "pickup-only" status on your cart page.
Method 1: Using cart.requires_shipping (Simpler, but with caveats)
Ppsamuel and ecom-4all suggested leveraging Shopify’s built-in cart.requires_shipping Liquid property. This is a boolean that turns false when every item in the cart is marked as pickup-only. It's a quick way to add a notice to your cart page.
Here’s how Ppsamuel outlined it:
{% unless cart.requires_shipping %}
Your cart contains pickup-only items.
Shipping isn't available for these items.
Please continue to checkout to review your pickup options.
{% endunless %}
You'd typically wrap this code in a theme's cart template or cart section (like cart-items or cart-footer). The idea is that this notice only appears when the cart doesn't require shipping.
Important Note: Ppsamuel wisely cautioned that cart.requires_shipping tells you if the cart *requires* shipping, not if every item is *specifically* configured for local pickup. It's crucial to test this with your specific product and fulfillment settings. Also, if your store often has a mix of shippable and pickup-only products, this method might not be precise enough, as it won't trigger if even one shippable item is present.
Method 2: Product Tags and Custom Liquid (More Robust and Accurate)
This is where Ploqo came in with a really detailed, step-by-step solution that addresses the nuances of mixed carts. This method uses product tags to explicitly identify pickup-only items, giving you much finer control over the messaging.
Step-by-Step Instructions: Implementing the Tag-Based Pickup Notice
First, here's a visual of the "Before" and "After" from Ploqo's post:
Before
After
- Tag Your Products: For each product that is pickup-only, go into its settings in your Shopify admin, add the tag
pickup-only, and click Save. This is crucial for the Liquid code to work. - Access Your Theme Editor: From your Shopify admin, navigate to Online Store, then click Edit theme on your current theme.
- Select the Cart Page: Click the page list at the top of the theme editor and pick Cart.
- Add a Custom Liquid Section: Under the Template settings, click Add section.
- Find "Custom Liquid": Search for Custom Liquid and click to add it.
- Paste the Liquid Code: In the Liquid code box, paste the following code exactly as it appears:
- Position the Message: Drag the newly added Custom Liquid section above the Subtotal section in the theme editor's sidebar to ensure it's prominently displayed.
- Save Your Changes: Click Save in the top right corner to apply the changes to your live theme.
{%- assign pickup_ -%}
{%- for item in cart.items -%}
{%- unless item.product.tags contains 'pickup-only' -%}
{%- assign pickup_ -%}
{%- endunless -%}
{%- endfor -%}
{%- if cart.item_count > 0 and pickup_only -%}
Pickup only. Shipping isn't available for the items in your cart. Choose pickup at checkout.
{%- endif -%}
This code snippet cleverly loops through all items in the cart. If *every single item* has the pickup-only tag, it then displays your custom message. This ensures the message only appears in the exact scenario you want, making it robust for stores with mixed inventory.
Don't Forget the Gaps!
Beyond the main cart page, Smruti-MONK and JohnQQ brought up some excellent points about other potential confusion points:
- "Item Added to Cart" Popups: Many themes have a quick "Item added" popup with a direct "Check out" button. If customers click this, they bypass the main cart page where your new message would be. Their advice? Either add the pickup note to the popup itself or consider removing the direct checkout button from the popup to ensure customers always see the cart page.
- Product Page Messaging: Ensure your individual pickup-only product pages don't misleadingly say "Shipping calculated at checkout." Replace it with something like "Pickup only" or "Pickup only at our Parker plant" (as Smruti-MONK suggested, referencing Metz's store). Consistency is key!
Final Thoughts and Best Practices
Both the cart.requires_shipping and the tag-based Custom Liquid methods offer viable ways to tackle this customer experience issue head-on. The tag-based method is generally more flexible and accurate for diverse product catalogs. Remember, the goal is always to provide clear, upfront information to your customers, guiding them smoothly through their purchase journey and preventing unnecessary friction.
Thorough testing is paramount. Add pickup-only items, mixed carts, and shippable-only items to your cart to ensure your messaging appears exactly when it should and disappears when it shouldn't. This proactive approach not only clarifies things for your shoppers but also builds trust and reduces cart abandonment. If you're looking to start a new Shopify store or enhance your existing one with these kinds of detailed customizations, Shopify offers a robust platform that, with a little Liquid magic, lets you tailor the experience beautifully.









