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.