Exclude products from Shopify's free shipping threshold

Shopify has no setting that keeps a heavy product out of a free-shipping offer, and no way to stop its price counting toward the amount that unlocks free shipping. Here are the three routes that do work, what each one costs, and exactly where each one stops.

There are three workable routes, and which one you need depends on a question most guides skip: do you need the heavy item to pay for shipping, or do you need it to not count toward your threshold? They are different problems with different solutions.

  • If you only need the heavy item to keep paying its own shipping, a second shipping profile does it, free, in about ten minutes.
  • If your rule involves discount codes, or you need excluded items kept out of the threshold maths, profiles will not hold — you need an app or a custom function.
  • If your exclusion rule depends on something Shopify cannot see — supplier margin, MAP pricing agreements, hazmat surcharges, which items are on clearance this week — that logic has to live somewhere you control.

The failure this causes

Merchants have been describing this for seven years. One summarised the whole category: "I have heavy items that would qualify on their own that I want to exclude since the shipping on those would wipe out any profit."

Just this week again someone ordered a chair with free shipping despite us being unable to do that for free. Of course, the fact that this was mentioned in the product description does not stop customers from ordering the item and select free shipping. Why would they?

— Bram1987, 24 January 2020

The mechanism is simple and it costs real money. Your threshold is a number, and Shopify checks the whole cart against it. A customer adds a $400 chair, crosses your $75 free-shipping bar instantly, and you ship a chair for free.

The heavy-item case is only the most obvious shape. Below are the five others merchants keep reporting, because which one you have decides which route you need.

Digital products still count toward the threshold

A customer buys a $27 online course and adds a $9 pen set. Your threshold is $35, so the order qualifies, and you post the pen set at a loss. One merchant put it exactly: "The sale of the pen set is meant to be an upsell, but in this situation, it is an anchor on profit."

A Shopify staff member confirmed the behaviour: "non-physical or digital products will still contribute to shipping rates that are price-based. The only exception to this rule is digital gift cards."

This one has a nasty second half. The standard workaround — put the item in its own shipping profile — is unavailable here, because an item that does not require shipping cannot be added to a shipping profile at all. If your problem is digital goods inflating the cart, Route 1 cannot help you, and you go straight to Route 2 or 3. The same applies to sellers of in-person workshops and classes alongside physical products.

Selling digital and physical side by side? See what a rule that ignores non-shippable items looks like →

Add-ons and gift wrapping push carts over the line

A $49.95 order plus an optional shipping-protection fee becomes $50 and qualifies. Gift wrapping and gift messages do the same. A UK merchant with a £25 threshold reported: "I've tried everything … nothing works. Shopify support have been unable to offer me a workaround either."

These are add-ons you deliberately priced low to increase order value, and they are quietly costing you the shipping margin they were meant to protect.

Discount codes and thresholds collide, in both directions

This is the least appreciated failure and it hurts twice.

A code can push a heavy item over the line. One merchant described a $95 heavy product with a 40% code still clearing a $50 free-shipping threshold on roughly $20 of real shipping cost. Their word for it was "crushing."

And a code can drop a good order under it. A discount takes a $200 cart below your $150 threshold, so a customer who spent well over your minimum gets charged shipping anyway. As one merchant put it: "You give with one hand but take with the other."

If your promotion runs on a discount code, note that shipping profiles govern rates and codes govern discounts — a free-shipping code applies to the whole order regardless of how you have split your profiles. Route 1 is not an option for you.

And this is the one case where no app fixes it either. Shopify's native free-shipping discount codes override app-calculated shipping rates entirely. So you can configure an exclusion app perfectly, run a free-shipping code campaign, and watch the code overrule it — the app is working, and it is being ignored. If your free shipping is promoted by code rather than by a standing rate, buying an app may not solve your problem at any price.

Promoting free shipping by code? That is the case apps cannot reach — see the alternative →

Two locations, one threshold

If you ship from more than one location, items from separate locations still total up against a single threshold. Thirty dollars from one warehouse and twenty from another crosses a $50 bar, and the first warehouse's items effectively ship free.

Your storefront promises free shipping you do not offer

The most avoidable one. Several merchants have found their theme showing a "You qualified for free shipping" banner on stores that offer no such thing:

We have had 2 customers contact us in the last month saying they had a notification on their order that is "Qualified for Free Shipping". We DO NOT OFFER Free Shipping.

— GatheringWaters, 14 February 2023

The cause is usually a theme setting rather than your shipping configuration, and it is worth checking before you rebuild anything — one merchant reported that even Shopify support could not locate it. If your free-shipping bar is powered by the theme, it is displaying a rule it has calculated itself, and it does not know which of your products are excluded.

Route 1 — A second shipping profile

This is the standard answer and it genuinely works for the common case: make the excluded item keep paying its own shipping rate. It is free and takes about ten minutes.

  1. Go to Settings → Shipping and delivery.
  2. Under Shipping, click Create new profile.
  3. Name it something like Oversize and add the products you want excluded.
  4. Add your shipping zones and give this profile real, paid rates — no free option.
  5. Leave your General profile as it is, including its free-shipping-over-threshold rate.

Your General profile covers "all products not in another profile", so anything you move out is automatically governed by the new profile's rates.

The failure modes nobody collects in one place

Each of these is buried in a different forum reply, and any one of them can make this route the wrong answer for you.

  • Mixed carts combine rates. If a customer buys an eligible item and an excluded item together, Shopify adds the two profiles' rates together and shows one total. A Shopify staff member flagged this himself when recommending the workaround. Customers see a number they did not expect.
  • Discount codes override profiles entirely. A free-shipping discount code applies to the whole order. It does not respect your profile split, because profiles govern rates and codes govern discounts. If your promotion runs on a code, this route does not work at all.
  • Digital products cannot be added to a profile. If an item does not require shipping, it cannot go in a shipping profile — so you cannot use this to stop a digital product counting.
  • It locks customers to one rate. Buyers can end up unable to choose faster shipping even when they would pay for it.
  • Promotions become manual. Turning an exclusion on and off for a weekend sale means editing profiles by hand, twice.

Route 2 — Apps

Start with the thing nobody tells you, because on some plans it decides whether this route exists at all.

Apps in this space work in one of two ways, and the difference matters more than the price.

Rate-based apps calculate and return shipping rates at checkout. They require a Shopify feature called Carrier-Calculated Shipping, and Shopify's documentation is explicit: "Third-party carrier-calculated shipping (CCS) is available on Shopify Advanced and Shopify Plus plans. Shopify Grow stores can add CCS for an additional monthly fee or by switching to annual billing." The add-on stopped being offered to lower tiers in January 2023 — so on the Basic plan, rate-based apps are not an option at all, and a plan upgrade comes before the app. Every guide that says "just install a shipping app" skips this. The Grow monthly fee is widely reported as around $20/month; Shopify's own documentation no longer prints a figure, so confirm it for your store.

Discount-based apps work through Shopify's discount system instead of providing rates. They do not need Carrier-Calculated Shipping, which means they run on any plan, including Basic. They are also much cheaper. The trade-off is that they are discounting a rate that already exists rather than computing one, which limits how precisely they can express a rule — and neither of the discount-based listings we checked states whether it can keep an excluded product's price out of a cart-total condition.

If you are on Basic, that is your whole situation in one paragraph: rate-based apps are closed to you, discount-based apps are open but may not solve the threshold half, and nobody publishes which is which. Ask a vendor directly before subscribing — and price the answer against a plan upgrade, because "buy the $9 app" can quietly mean "move to a $79 plan first".

On Basic and hitting this wall? Build the rule instead — no plan upgrade required →

What the apps actually do

We checked each listing on 26–27 July 2026, and the striking thing is this: not one App Store listing mentions the threshold problem at all. Every listing talks about controlling rates. Whether an excluded product's price still counts toward your free-shipping minimum — the question that brought you here — appears only in vendor documentation, and only for two of them.

App Type Price Charging half Threshold half
Advanced Shipping Rules Rate-based Lite $9/mo, Standard $29, Pro $59 Yes Yes — their features page describes free shipping conditioned on "the total of products from other groups"
Intuitive Shipping Rate-based Growth $70/mo (500 orders), up to $300 Yes — a per-product "Exclude from free shipping" toggle Yes, per their knowledge base
Better Shipping Rate-based From $29.99/mo Yes No evidence — neither the listing nor the vendor site mentions thresholds
Octolize Shipping Discounts Discount-based $4.99/mo Runs on any plan, no CCS Not stated — ask their support before subscribing

If you are on Grow, Advanced or Plus, the cheapest genuine solve is Advanced Shipping Rules at $9/month. Two product groups is exactly what this problem needs: excluded items in one, everything else in the other. Intuitive Shipping is the better-built product — 457 reviews at 5.0, with a dedicated per-product exclusion toggle — but $70/month is a lot for one rule.

Budget $9–30/month for the app, plus Carrier-Calculated Shipping, which is free on Advanced and on Grow annual billing, and around $20/month on Grow monthly.

Before you subscribe, re-read the discount-code section above. If you promote free shipping with a code rather than a standing rate, that code overrides whatever the app calculates — and none of these will solve your problem.

(One app to avoid: Advance Free Shipping Discount sits at 3.6 stars with reviews reporting deprecation and discount-stacking overcharges.)

Route 3 — A Shopify Function

This is the route that solves the threshold half properly. Shopify's Discount Function API can apply a discount to shipping, and it can see each cart line's product tags, collections and vendor. That means a rule like "free shipping once eligible items total $75, ignoring anything tagged oversize" is directly expressible — which no combination of profiles and discount codes can do.

The catch that no ranking page mentions: a custom app containing a Shopify Function can only be installed on a Shopify Plus store. Apps distributed through the App Store can contain functions and run on any plan. So "have a developer build one" is not a one-off option unless you are on Plus — worth knowing before you pay for a quote.

There are ways around it. A shipping rule can also be delivered as a carrier service, which computes rates from a callback and can return zero — no Function, no Plus requirement, though it does need Carrier-Calculated Shipping. Which approach a given rule needs depends on the rule.

(Shopify Scripts, which older guides still recommend for this, stopped executing on 30 June 2026.)

Which route is yours

Your situation Route
A verified app supports your complete exclusion rule Use the app
Heavy items must keep paying shipping; no promo codes involved Shipping profile — free
Excluded items must not count toward the threshold App that supports it, or a Function
Your promotion runs on a discount code Function — profiles and apps cannot help
The exclusion depends on margin, supplier terms, MAP pricing or which items are on clearance today Custom

The last row is the one worth being honest about. If your rule is "exclude these five SKUs", an app is the right answer and you should stop reading. If your rule is "exclude anything where the shipping cost exceeds the margin", that number is not in Shopify — it is in your own books — and no packaged app can see it.

Four situations where the packaged answer runs out, all of them described by merchants in the threads behind this page: your excluded items are digital and cannot go in a shipping profile · you promote free shipping by discount code, which overrides every app · you are on Basic and rate-based apps are closed to you · or the rule depends on something only you know, like margin or supplier terms.

The threshold question, and how to answer it for your own store

If you split products into two shipping profiles and set a price-based free-shipping rate, does an excluded item's price still count toward that threshold?

Shopify's own documentation does not settle this. One page states that price-based shipping rates apply to the total price of the cart; a multi-profile example on the same page reads as though each profile is evaluated on its own items. We could not find an article, app vendor or forum reply that answers it either — and it matters enormously, because it decides whether a shipping profile solves your problem or only half of it.

Rather than guess, test it. It takes five minutes and the answer is definitive for your configuration:

  1. Set up the two profiles as above, with free shipping over your threshold on the General profile.
  2. Add one eligible product priced just under your threshold to a cart.
  3. Add one excluded product that pushes the cart over it.
  4. Go to checkout, enter a real address, and look at the shipping options.

If free shipping appears on the eligible item, the excluded item's price counted — profiles solve the charging half only, and you need Route 2 or 3 for the rest. If it does not appear, your configuration is evaluating per profile and you are done.

Do this before you buy an app. It is the difference between a $9 fix and a $70-a-month one.

What it costs you today

Work out your own number before you buy anything.

Monthly leakage = orders affected each month × average shipping cost you absorb

A furniture merchant absorbing $60 on four chairs a month is losing $2,880 a year. A store absorbing $9 on thirty small orders is losing $3,240. Both are worth solving; they are not worth solving the same way.

Then work out the other number, the one that usually decides it: how many other rules are you already paying for? Shipping rules, a free-shipping progress bar, product options, order limits — each arrives as its own subscription, its own admin screen, its own thing to reconfigure when Shopify changes something. The forum threads on this problem are full of the same complaint. One merchant: "TIRED OF HAVING TO SEARCH AND PAY FOR APPS — when our partner and platform Shopify should handle for us." Another: "nickle and dimed to death."

A fourth option: build the rule yourself

Every route above is somebody else's rule engine bent to fit your business. The fourth is to own the rule.

Tell Shopivibe what you want your store to do — "free shipping over $75, but items tagged oversize never qualify and their price does not count toward the $75" — and it works out how, builds it, and checks it against your own store's data before anything goes live. You see in your Shopify admin, in plain language, what is switched on and what it has done. It stays looked after; there is nothing for you to run.

Early access is open now, and the $49 plan is free for the whole of it.

Be straight about the comparison. A $9/month app will solve a plain exclusion, and if that is your whole problem, buy it. We would rather tell you that here than have you find out after subscribing.

The maths changes when you have more than one problem, and most stores do. The $49 is a workspace, not a single app. When the next rule comes up — order limits, product options, a free-shipping bar that actually knows which items are excluded — you add it as another layer to the same app, through chat. You never start over, and you do not pay another subscription. Two or three replaced and it costs less than the stack it replaced; more importantly, the rules stop being four vendors' separate interpretations of your business and become one thing that knows your products, your margins and your customers.

That is also the answer to the discount-code problem above. No app can override Shopify's own free-shipping code — but your own app is not fighting for control of the checkout, because the logic is yours to define.

On the Plus question, honestly: we always try to build these rules so they do not require a Shopify Plus plan, and usually that is possible. We cannot promise it for every rule, because some outcomes genuinely have no route that avoids a Function. You will see which one your rule needs when you build it, not after you have paid for something.

Checked against Shopify's documentation and the App Store on 27 July 2026.