A merchant wants to create a discount code that applies free shipping only to specific products. Shopify’s native discount system doesn’t support this combination—automatic discounts can target specific products but don’t offer free shipping, while free shipping codes apply cart-wide.
Suggested workarounds:
Shipping profiles: Create a separate shipping profile with free rates for specific products (all cart items must belong to this profile for free shipping to apply)
Third-party apps: Apps like Better Shipping, Automatic Discount & Gift, or Advanced Free Shipping can enable product-specific free shipping codes
Community reaction:
Significant frustration exists about this limitation. Multiple users criticize Shopify for lacking this basic e-commerce feature and requiring paid apps for functionality that should be native. One user notes the shipping profile workaround creates potential customer confusion if carts contain mixed products. Another warns the only native alternative—offering free shipping codes with honor-system restrictions—risks customer abuse and order cancellations.
The discussion remains unresolved regarding native Shopify functionality, with the shipping profile method being the only free (but limited) solution.
Summarized with AI on October 30.
AI used: claude-sonnet-4-5-20250929.
I’d like to create a discount code for free shipping, but I only want it to apply to specific items. I’ve had a look on both the automatic and manual discount options and unfortunately, the automatic option doesn’t offer free shipping but you can specify which products.
Can anyone tell me if it is possible have a code for free delivery and apply it to certain items only?
All the items in your customer’s cart would need to be from this shipping profile for them to see the free shipping rate, which it sounds like it may work for your situation.
To create this shipping profile, you’ll want to navigate to your Shopify Admin > Settings > Shipping and Delivery section.
From there, you’ll be able to create a new shipping profile and add your free shipping rate like so:
You’ll want to have the same shipping zones for both your General Shipping Profile and Custom Free Shipping profile so that the customer can still check out if they have products from both shipping profiles in their cart.
If you have any questions about this, or if I’ve misunderstood anything, please do let me know! I’ll be happy to take a further look at this with you.
We have recently built an app that can do this. https://apps.shopify.com/better-free-shipping
It has a simple rule creator, and in this scenario, create a rule that checks the cart for products based on certain product tags (and offer free shipping). Curiously, would you only want to offer free shipping if ONLY those products were in the cart, or ANY TIME those products were in the cart?
Not possible. It’s Shopify’s ‘All or nothing’ approach. The whole community has been on this for ages and it is just frustrating that an ecommerce platform has such limited options to set up shipping rates. You could offer a free shipping discount and say it is only for certain items and hope that your customers don’t abuse it. Some will try it for other products and then it will work. You can then cancel the order and anger a customer or go through with free shipping for a product that was not supposed to receive it.
This did it for me! Thank you, Finley! While the above explanation can be understandably intimidating to some, if you take the 30 seconds necessary to actually analyze your instructions, its super easy. It literally took 3 minutes from the start of reading your instructions to having it done and tested. However, I do agree with others that it’s super scammy of Shopify to have their support (not you but everything else I’ve seen) suggesting that shopify sellers spend more money to enable this ability when a shipping profile is an option. Its scummy not to offer a simple button on each product profile enabling free shipping for individual products when we all know thats entirely possible for shopify to implement. However, I thank you for being the only person able to give me a real solution, even if its not totally perfect. Thanks for the help!