We're moving the community! Starting July 7, the current community will be read-only for approx. 2 weeks. You can browse content, but posting will be temporarily unavailable. Learn more

Pickup In Store option ONLY for local customers

Pickup In Store option ONLY for local customers

eggplanted
Tourist
9 0 9

We have one physical shop in Colorado and we'd like to offer Pickup in Store for local customers.


To keep messaging simple and clear, we'd like any non-local users/customers to NEVER see the Pickup in Store option - for example, somebody in New York couldn't be less interested in picking something up from Colorado.


I assume this requires some sort of geotargeting by IP address. Alternatively - and in an ideal world - this option would only appear at checkout once the user selected 'Colorado' as State, but Shopify appears to show the Pickup option before - and independent of - chosen shipping location.


None of the apps pertaining to local pickup/delivery (Zapiet, GAF, Store Pickup + Delivery) offers geotargeting for this use-case.


Is anybody able to steer me in the right direction about how to do this? Are there any apps that you know of that would help with this?

Replies 2 (2)

PaulNewton
Shopify Partner
8031 686 1646

Hi @eggplanted 👋 depending on plan use a shipping app that's using either carrier service api

Or an app that can use shopify-functions to hide shipping methods based on a cart-attribute or line item properties for non-locals.

https://shopify.dev/docs/apps/build/checkout/delivery-shipping/delivery-options/build-function 

Or stores on shopify Plus plan use shopify-functions to general local pickup based on a cart-attribute or line item properties.

https://shopify.dev/docs/apps/build/checkout/delivery-shipping/delivery-methods/create-local-pickup-... 

 early access: Pickup points https://shopify.dev/docs/apps/build/checkout/delivery-shipping/delivery-methods/generate-pickup-poin... 

 

A workaround could be either separate duplicated products on a single store with content gating and shipping profiles and inventory syncing.

Simpler can be just separate stores; well one storefront but the second store's checkout is for locals etc.

So there is one set of goods for locals, another for national.

Any old geoip service+theme-customization or geoip app sets a flag, or redirects.

The flag shows only certain products to those customers.

Apps like locksmith can handle the content gating to present sets of products to certain customers.

https://www.locksmith.guide/keys/visitor-location-keys 

 

A sync app is used to keep inventory of duplicates in store or across stores in sync.

The locksmith makers also made mechanic which can be scripted for custom sync automations. https://tasks.mechanic.dev/?q=sync 

 

Merchants that need this type of automation or theme-customization then contact me for services.
Contact info in forum signature below ⬇ ⬇ ⬇.
ALWAYS please provide context, examples: store url, theme name, post url(s) , or any further detail in ALL correspondence.

Contact paull.newton+shopifyforum@gmail.com for the solutions you need


Save time & money ,Ask Questions The Smart Way


Problem Solved? ✔Accept and Like solutions to help future merchants

Answers powered by coffee Thank Paul with a Coffee for more answers or donate to eff.org


Channelwill
Shopify Partner
52 2 2

Hi @eggplanted,

Unfortunately, Shopify's native setup shows the pickup option before state selection, which can definitely confuse folks who are nowhere near Colorado.

 

Here are a few approaches worth considering:

1. Use geolocation to hide or gate the pickup option (theme-level workaround)
While Shopify doesn't support geotargeting natively at checkout, you can use a geolocation app or script (like GeoIP or Shopify’s own Geolocation app) to detect the user's IP and add a flag in your theme or cart.

That flag can then hide messaging or remove the “Pickup in store” option earlier in the journey, for example on the cart page or shipping method page. Apps like Locksmith are also handy for showing/hiding content or collections based on location.

 

2. Shopify Plus or Shopify Functions route (more advanced)
If you're on Shopify Plus, or using apps that leverage Shopify Functions, you can set delivery conditions based on cart attributes or line item properties. So, for example:

  • If “Shipping state ≠ Colorado” → hide pickup method

  • Or if cart doesn’t include a “local pickup” tag → skip showing pickup

This gives you far more control over who sees what. Learn more here: https://shopify.dev/docs/apps/build/checkout/delivery-shipping/delivery-options/build-function

 

3. Low-tech workaround: Informational + Post-code logic
If you prefer not to go into custom setups just yet:

  • Add a clear note near the shipping options:
    “In-store pickup is available only in Colorado. Orders with out-of-state shipping may be cancelled”

  • Alternatively, use shipping profiles to create a custom rule: pickup is only available for a specific set of postcodes.

 

4. Bonus tip: Tracking post-purchase experience
To avoid confusion post-checkout (especially if pickup is misused), some apps like ParcelPanel Order Tracking help keep customers informed about their order journey including pickup instructions, if needed.

 

I hope this helps steer you in the right direction! If you’re looking to implement a specific setup and want to test out the more advanced route, happy to chat through it.

 

And if this helped, feel free to mark it as a solution so others can find it too!

The tools your e-commerce brand needs to grow and succeed.