A Shopify shipping discount can mean two genuinely different things built in two different screens, and the mix-up is the single most common reason a “free shipping over $75” promotion quietly costs more than it was supposed to. One method lives in Discounts, runs as a code or an automatic promotion, and shows up in reporting. The other lives in a shipping zone’s rate list as a $0 rate with a price or weight condition, and never appears as a discount anywhere. For a Shopify team doing $3M–$30M in revenue, picking the wrong one — or setting the right one without the setting that actually protects your shipping margin — is the difference between a promotion that lifts average order value and one that gives away $35 two-day shipping to anyone who clears a $75 cart.
What Do You Need Before Setting Up a Shopify Shipping Discount?
Before opening Discounts, three things decide which of the two methods is right and how the setup goes: whether you need the discount to be trackable and combinable with other promotions, what your current shipping rates and zones actually cost to fulfil, and who should qualify.
| Requirement | Why it matters | Where to check |
|---|---|---|
| Reporting and combination needs | Only a Discounts-app free-shipping discount shows in discount reports, supports usage limits, and combines with product or order discounts | Shopify admin → Discounts |
| Current shipping rates and their real cost | Determines the ceiling you set in Exclude shipping rates over a certain amount, so the promotion doesn’t zero out expedited or international rates | Settings → Shipping and delivery → Manage rates |
| Customer eligibility | Decides whether the promotion is storewide, code-gated, or scoped to a segment like repeat buyers | Shopify admin → Customers → segments |
Admin access to both Discounts and Shipping and delivery is the only account requirement — free shipping needs no app install and no plan upgrade beyond whatever plan the store already runs. What actually takes the time is deciding the threshold and the ceiling, which is why the method for that sits in its own section below rather than as a settings screen.
How Do You Create a Free-Shipping Discount in Shopify, Step by Step?
Creating a Shopify shipping discount means choosing Free shipping as the discount type, deciding how a customer triggers it, and then setting the four things that determine whether it behaves the way you actually intended: the threshold, the rate ceiling, the combinations, and who it applies to.
Step 1: Choose Free shipping as the discount type
In Shopify admin, go to Discounts, select Create discount, and choose Free shipping from the discount type list, separate from Amount off products, Amount off order, and Buy X get Y. Free shipping is its own class of discount in Shopify’s system, which is exactly why it can combine with the other two classes rather than competing with them for the same slot.
Step 2: Decide whether the discount needs a code or runs automatically
Choose Discount code if customers should type or click a code — useful for a marketing campaign you want to track by code name — or Automatic discount if the free shipping should apply the moment a cart qualifies, with no code to enter. An automatic discount is the right call for a standing “free shipping over $X” banner; a code is the right call for an email or influencer promotion you want isolated in reporting.
Step 3: Set the minimum purchase requirement
Under Minimum purchase requirements, choose No minimum requirement, Minimum purchase amount, or Minimum quantity of items, and enter the threshold value that triggers the discount. These three options are mutually exclusive — Shopify’s discount screen does not let a single discount require both a dollar minimum and an item-count minimum at once, so a promotion depending on both needs two discounts.
Step 4: Exclude shipping rates over a certain amount
Turn on Exclude shipping rates over a certain amount and enter a ceiling, so the discount zeroes out standard rates without also giving away expedited or international rates that cost far more to fulfil. This checkbox is the setting the next section covers in full — it is the single most consequential field in this whole flow, and it is off by default.
Step 5: Set combinations with product and order discounts
Under Combinations, tick Product discounts and Order discounts if this free-shipping promotion should still apply alongside a percentage-off or buy-one-get-one offer running at the same time. Leave both unticked if free shipping should be the only discount an order can carry, which is the safer default for a storewide promotion you don’t want stacked with every other code in circulation.
Step 6: Set eligibility, usage limits and dates, then activate
Choose customer eligibility as All customers, Specific customer segments, or Specific customers, set a usage limit and start and end dates if the promotion is time-boxed, then save and activate the discount. A segment-scoped discount — repeat buyers, a VIP tag, a saved filter — is how you run free shipping as a loyalty lever rather than a storewide markdown.
How Do You Make Free Shipping Automatic Instead of Code-Based?
An automatic free-shipping discount applies the instant a cart meets its minimum purchase requirement, with no code for the customer to find, type, or forget. It follows the same six-step process as a code-based discount, with Automatic discount selected instead of Discount code — the remaining fields, including Exclude shipping rates over a certain amount and Combinations, work identically either way.
The practical reason to choose automatic over code-based is friction. A customer who has to find a code before checking out abandons more often than one who simply sees free shipping appear on the order summary once their cart clears the threshold. The trade-off is attribution: an automatic discount’s usage isn’t tied to a campaign name the way a code is, so if you’re running the promotion to measure the lift from a specific email send or landing page, a code — even an automatically-applied one via a tagged link — keeps that campaign traceable in a way a bare automatic discount does not.
How Do You Set a Free-Shipping Threshold Through Shipping Rates Instead of Discounts?
A shipping-zone rate condition skips Discounts entirely and builds the threshold directly into a shipping zone as a conditional rate. In Settings → Shipping and delivery → Manage rates, open a shipping profile, select a zone, and add a rate priced at $0.00 with a condition — Shopify’s rate editor lets a rate apply only when order price or order weight falls within a range you set, so a rate named “Free Shipping” with a condition of “price is over $75” only shows at checkout once the cart clears that line.
This method and the Discounts-app method produce the same customer-facing result — a $0 shipping line — through mechanisms that behave completely differently everywhere else. A rate condition has no code, no reporting entry, no customer-eligibility field, no usage limit, and no combination logic with product or order discounts, because it isn’t a discount object at all; it’s a shipping rate like any other rate in that zone, evaluated the same way a flat rate or a carrier-calculated rate is. Our guide to setting up Shopify shipping rates covers zones, rate conditions and carrier-calculated rates in full — this method is one application of that same rate-conditions system, aimed specifically at a free-shipping threshold rather than a general pricing structure.
The upside of the rate-condition method is that it needs nothing else configured correctly to work: no combination checkbox, no eligibility list, no risk of a second discount code cancelling it out. The downside is exactly the same list — no reporting, no segment targeting, no scheduling field, and no way to run it as a time-boxed campaign without manually editing the rate when the promotion should end.
Which Method Should You Use — Discount or Rate Condition?
Use the Discounts-app method whenever the promotion needs to be tracked, scheduled, scoped to a segment, or combined with another discount running at the same time. Use the shipping-zone rate-condition method when the threshold is a permanent, storewide policy — “orders over $75 always ship free” — that doesn’t need a campaign name, a start and end date, or a customer-eligibility filter, because it is simply how your shipping is priced rather than a promotion layered on top of it.
| Capability | Discounts-app free shipping | Shipping-zone rate condition |
|---|---|---|
| Shows in discount reporting | Yes | No |
| Code or automatic trigger | Either | Neither — always automatic |
| Customer eligibility / segments | Yes | No |
| Start and end date scheduling | Yes | No |
| Combines with product/order discounts | Yes, via Combinations | Not applicable — not a discount |
| Excludes expensive rates automatically | Only if you check the box (Step 4) | Only if you build a separate, priced rate above the condition |
A store running a permanent threshold and a rotating promotional threshold at the same time typically needs both mechanisms — one for the policy, one for the campaign — rather than picking a single method for everything.
Teams doing more order-volume forecasting and fulfilment planning around thresholds like these often find the two mechanisms need to be reconciled with whatever system tracks order status downstream — our order management guide covers where a shipping promotion’s effects show up once an order leaves Shopify and enters fulfilment.
Can You Combine Free Shipping With a Product Discount?
Yes, using the Combinations section on the discount’s setup screen — but only if both discounts were built to allow it. Shopify evaluates every discount as belonging to one of three classes: product, order, or shipping. An order can carry at most one active discount from each class simultaneously, which means a free-shipping discount can combine with one product discount (say, 15% off a collection) and one order discount (say, $10 off orders over $100) at the same time, provided each of those three discounts has the matching class ticked under its own Combinations settings.
The failure mode here runs in both directions. A shipping discount with Product discounts left unticked will simply not apply if a customer already has a product discount active in their cart — Shopify silently drops the newer, non-combinable one rather than erroring, so the customer sees only one of the two promotions and nothing on screen explains why. The fix is checking Combinations on both discounts, not just the one you’re currently building, since a combination is a property of the pair, not of either discount alone.
What Setting Do Most Shopify Teams Get Wrong?
The setting most teams get wrong is Step 4 — building a threshold-based free-shipping promotion through Discounts and never checking Exclude shipping rates over a certain amount.
Without that box checked, a “free shipping over $75” discount zeroes out every shipping rate available at checkout once the cart clears $75, not just the standard rate the promotion was built to cover. If the store also offers a $35 two-day rate or a $60 international rate, both go to $0 the moment the threshold is met, because the discount has no ceiling telling it which rates it’s allowed to touch. The customer sees the fastest, most expensive option at the same $0 price as standard shipping, and — because faster shipping options tend to get selected more often when the price difference disappears — the store’s real fulfilment cost per order on that promotion runs meaningfully above what the threshold was priced to cover.
The fix is the ceiling field on the same screen: turn on Exclude shipping rates over a certain amount and set it to whatever your standard rate actually costs, so a promotion built to cover a $6 standard shipping rate can’t silently extend to a $35 expedited one. This is a one-field fix, but it’s easy to miss because the checkbox sits collapsed under the main discount fields and nothing in Shopify’s interface warns you that leaving it off has this effect — the discount simply works exactly as configured, which is precisely the problem.
How Do You Decide Your Free-Shipping Threshold?
There is no universal free-shipping threshold — the right number depends on your average order value, your margin per order, and your shipping cost structure, none of which are the same across stores, so the method matters more than any figure quoted from a benchmark. Set it with these three inputs, in this order:
- Pull your last 90 days of order data and find your current average order value (AOV). A threshold set below current AOV gives free shipping to most customers without changing their behaviour — it’s a cost with no incentive effect. A threshold set meaningfully above AOV is the one that actually moves the number, because it asks a customer to add something to qualify.
- Find what a standard shipping rate actually costs you to fulfil, not what you charge the customer, including packaging and the carrier rate at your real volume tier. That figure is the number you enter in Exclude shipping rates over a certain amount in Step 4 — it defines the rate ceiling the promotion is allowed to absorb.
- Model the margin trade-off at the threshold you’re considering, using your own product margin, not an assumed one: does an order that clears the threshold by adding a low-margin item still net more than an order below it that pays for shipping? If the answer is no at your current threshold, move it up until it is, then test.
Test the threshold as a change, not a one-time decision. Run the new threshold as a scoped, code-based Discounts-app promotion for a defined window against a comparable prior period, and compare AOV and shipping cost per order before and after — a Discounts-app promotion carries the reporting visibility a shipping-zone rate condition does not, which is what lets you actually measure whether the threshold you picked is working, rather than assuming it from a number that worked for someone else’s store. Shopify Analytics is where that AOV and order-value comparison actually lives once the promotion has run long enough to read.
How Do You Verify a Shopify Shipping Discount Is Actually Working?
Verifying a shipping discount means checking three things separately at checkout, because each can look correct while another silently isn’t: that the discount triggers at the right threshold, that it excludes the rates it was meant to exclude, and that it behaves correctly alongside any other discount active at the same time.
Build a test cart just below the minimum purchase requirement and confirm shipping still charges normally, then add enough to clear the threshold and confirm the discount applies — checking the threshold boundary on both sides catches an off-by-one error in the minimum purchase amount before a customer does. With the cart still above the threshold, switch between every shipping rate offered at checkout and confirm the exclusion ceiling is doing its job: rates at or under it should show $0, and any rate above the ceiling should still show its real price. Finally, if Combinations was ticked, add a product or order discount to the same cart and confirm both promotions apply together rather than one silently overriding the other.
A shipping discount that gives away the wrong rate or drops a combined promotion is invisible in reporting until someone compares the shipping-cost line against what the promotion was priced to cover, so this verification is worth running once, carefully, before launch rather than after. That kind of reconciliation, done consistently across every promotion a store runs rather than caught after the fact, is ops automation as a build: the checkout tests turned into something that runs itself instead of a manual test cart someone remembers to build before every launch.
Sources
No external figures are quoted; this article is written from how Shopify’s Discounts and Shipping and delivery settings are configured and operated in practice.