Only allowing local pickup or delivery for specific items

Hi, does anyone know how to only allow local pickup or local delivery on specific items, and that should stay the same no matter what else i add to the cart.

Hello @AFG1836

You are correct, Shopify’s default settings cannot restrict shipping methods for specific products. The solution requires a third-party shipping app and the Carrier Calculated Shipping (CCS) feature on your Shopify plan, which is available on Advanced plans, with annual billing, or as a paid add-on from support.

Once you have CCS, an app like Advanced Shipping Rules (There is a free trial available) is the most direct solution.

Inside the app, you would apply a tag, such as ‘local-only’, to your specific products. You would then create a rule that says, “If a product with the ‘local-only’ tag is in the cart, hide all standard shipping rates.”

This will ensure that only your local pickup and delivery options are shown at checkout for any order containing one of those items.

Hope this helps!

Hi @AFG1836, it’s totally possible but Shopify doesn’t make it super straightforward.

The tricky part is that Shopify’s default shipping setup works at the order level, not the product level. So once you mix a “local only” product with a regular shippable item, Shopify tries to combine them into a single shipping method, which can cause issues like showing unwanted options.

You may try to separate shipping profiles, by creating a custom shipping profile in Settings > Shipping and delivery for the local-only products. In that profile, only enable local pickup and/or local delivery (disable shipping completely). That way, those items can’t be shipped at all.

Just note: Shopify itself won’t restrict checkout options perfectly when mixed carts are involved, that’s where the app route shines.

Hope this helps a bit! If it does, feel free to mark it as a solution so others can find it too :blush:

Shopify’s native shipping settings don’t allow you to strictly “lock” certain products to only local pickup/delivery if they’re mixed with other items in the cart. By default, customers can still choose shipping methods at checkout as long as at least one item is eligible for shipping.

Here are a few ways you can handle this:

  1. Shipping profiles – You can create a dedicated profile for those specific products and only enable “local pickup” or “local delivery” for them. The limitation is that if a customer mixes them with other items, Shopify will still try to merge shipping options.

  2. Custom rule via app – Apps like Better Shipping or Advanced Shipping Rules let you set conditions so that if restricted products are in the cart, the only options shown are pickup/delivery.

  3. Custom checkout/cart validation – With some custom code or Shopify Functions (in Shopify Plus), you can block checkout or hide shipping methods if the restricted product is detected in the cart. This gives you the strict behavior you’re describing.

For most merchants, the shipping app route is the simplest, but if you’d like a fully tailored solution that locks down the rules exactly the way you want, it’s possible to code it into your theme/cart logic.

I’ve set this up for other stores happy to point you to the best app or help you implement a custom rule if you want a smoother solution.

Hi @AFG1836 the Long reply from Skye here How to set specific items for local pick up only on a website? perfectly sums everything up with regards to the local delivery and pick up option