How can I offer a discount for local pick up while offering free shipping?

Topic summary

Merchants want to offer free shipping by building costs into product prices, but need a way to discount local pickup orders to avoid overcharging customers who don’t require shipping. The core challenge: Shopify doesn’t natively support automatic discounts for pickup, and customers can only apply one discount code at checkout, preventing them from combining pickup discounts with promotional offers.

Proposed workarounds include:

  • Manual discount codes in pickup descriptions (but customers can’t stack with other promotions)
  • Compound discount codes combining multiple offers (requires creating separate codes for each combination)
  • Cashback offers where customers pay full price and receive refunds at pickup
  • Dual inventory systems with different pricing tiers
  • Third-party apps like Zapiet - Pick Up and Delivery (paid solution)
  • Creating utility products that trigger automatic BuyXGetY discounts when added to cart

Current status: No native Shopify solution exists. Multiple merchants have requested this feature over several years without official response. The discussion remains unresolved, with participants continuing to seek viable alternatives. Most workarounds are either technically complex, require paid apps, or create suboptimal customer experiences.

Summarized with AI on October 24. AI used: claude-sonnet-4-5-20250929.

Hello,

I am considering changing my shipping strategy to Free Shipping. When I do this I will be building the shipping costs into my retail price, and would therefore like to offer a discount to customers who select local pick up, instead of shipping.

I understand that I cannot have a discount code automatically applied to a the Local Pickup Option. Also understand that a customer can only apply one discount code at a time, so if I use the method of creating a discount code for pickups, they would not be able to use the discount code of any other specials I might offer. Correct?

Does anyone have another suggestion for a strategy to have a "free shipping’ price when shipping, and a reduced price for pickup?

Thanks.

D.

12 Likes

I’m also very interested in doing this

3 Likes

Would be wonderful to have this possibility!

2 Likes

Also interrested

2 Likes

Has anyone figured out a workaround for this? I am researching moving from weebly to shopify and this is a huge issue that I need to figure out if we make the switch.

I would love to hear your workarounds!

2 Likes

@YetiGaming if your on a shopifyPlus enterprise plan this could be handled with checkoutscripts.

If you’ll be on a normal shopify plan the straight forward way is to just put a manual discount code into the pickup description so the customer enters it during checkout, though this may be abused by non pickup orders so you’d want to have checks in place against that.

A workaround is to preemptively ask if it will be local pickup then have two sets of inventory products with the different prices and before the customer goes to checkout use the ajax api to swap the products, used in combination with shipping profiles to not show other shipping methods.

@YetiGamin Your suggestion of putting a manual discount code into the pickup description so the customer enters it during checkout, is good… but still won’t allow them to utlize any other discount code that may be being offered.

I sure wish they wound add a feature to allow us to apply a discount for the pickup option. Very irritating to not be able to do this.

Your second workaround, sound super complicated for my little store!

1 Like

That’s handled by just making compounded discounts that represent the two different discounts and informing of the discount earlier than checkout.

Discounts can applied using the ?discount parameter, again watch for abuse.

Another simpler, arguably healthier, approach is to to just give a gift card to pickup orders.

Hi Paul,

Can you walk me through what you’re suggesting there, am not sure I understand.

Example: Say I have a system of free shipping. Say I am running a 20% off promotion right now. If I want to add, and it happens to be applied. You’re saying I would create one code for just 20% off discount, and another that would be 20% off plus pickup discount of say, $10. So, people would have to use the correct code. What would the implications be, if my 20% discount code was being applied automatically at checkout?

(As you can tell… I’m pretty much a Shopify newbie.)

Sure would be nice, if they could just tick off ‘pickup’ and a code was automatically applied, to give them a discount?

Thanks…

Donna

You would only combine same types into a single discount. So percentage+percentage , not percentage + set amount.

https://help.shopify.com/en/manual/discounts/automatic-discounts

Automatic discounts take precedence over discount codes, and customers can’t apply multiple discounts to a single order

Hence the 2 sets of inventory workaround. Plenty of options but they wont work for everyone in the combination they might need.

Many things would be nice for many things but this is the tradeoff when merchants choose to complicate their models in an effort to seem competitive or increase value perception.

Shopify provides some native ecommerce features for millions of merchants on standard plans, not millions of ecommerce features for some merchants specific use cases.

Would be nice to have this possibility! I think that most of the restaurants will be intrested.

1 Like

Hi Donna,

I am also trying to do this but I cant find any way of integrating discount into local pick up. Any breakthrough from your side?

Anyone figure this out? Would love to be able to do this…

Is there an app that will automatically discount pickup orders?

Anyone found a solution for pickup discounts? I need one as well, the only solution I can think of is a cashback offer where customer pays full price and when picked up, a refund is given. Not the best workaround but cashback offers are quite common.

Any luck yet Donna? I have been trying everything and nothing. I sent Shopify an email expressing how frustrating this is, I think if all of us write them an email explaining the situation and why is this so important to us as small businesses it would probably help.

Hopefully this issue is addressed soon!

My workaround is a cashback offer, this is prob the best workaround for now. Unless someone makes an app.

For example, when someone selects pick up, I have a tooltip that shows they get $5 back when picked up on checkout.

1 Like

Just thought I’d note that I’ve been looking into this as well. So far, I did find a (paid) app called Zapiet - Pick Up and Delivery. I’m such a small business I can’t afford this added cost just yet, but looks decent!

The options apps have to facilitate this may be changing with shopify functions api features but not totally clear to me for this use case. Possibly through discount functions and delivery functions .

For now another theoretical appless approach I’ve toyed with is creating a special utility product “Local Pickup Only”. Still clunky since I keep hitting cache issues in testing and need to toy with item combinations.

Create a special utility product “Local Pickup Only”.

That has shipping profiles setup to only be for local pickup with no rates, and no zones.?..

https://community.shopify.com/c/payments-shipping-and/items-for-pick-up-only/m-p/1537820/highlight/true#M58102

And is the trigger for an automatic BuyXGetY % off item discount(see screenshots below).

Then in tandem with repurposed gift-wrap theme customization to auto-add this utility product to the customers cart when they select a Local Pickup button/option in the cart step before going to checkout.

https://shopify.dev/tutorials/customize-theme-add-gift-wrap-option

The customization can of course come last after proving the process is feasible by just manually adding products during testing to trigger the right behaviors in checkout.

Screenshot, Example BuyXGetY discount , 5% off, triggered by a product named “Local Pickup Only” that applies to any product in the “All” collection.

Screenshot, Excess delivery methods still show in checkout

Note how the Delivery method “Ship” stills shows however, and importantly will also be the first one selected that can create customer confusion.

You’d think it shouldn’t show any ship option, so I may have a misconfiguration somewhere, or this is yet another quirk in shopify /sigh. And I can’t recall if there’s even a url param we can pass that would force the local-pickup option to be selected by default.

Getting rid of that excess delivery method would make this a very viable approach for any shop that can accept doing percent off order instead of set amounts(i.e. 10% off vs $5 off).

Other considerations , the BuyXGetY discount type does not have a set amount off feature , i.e. -$5 .

Other discount types A) order-discounts cannot be triggered by specific products, and the B)product-discount type only applies target items themselves.

And afaik shopify checkout will not under any circumstances create negative value product prices so you cant negatively discount the utility product(see screenshots below).

Screenshot , Example - an amount off product discount for a free $0 item that wont work

Screenshot, $5 off discount code rejected by checkout validation for free items.

Me too. Would be wonderful to have this possibility!

2 Likes