Shipping discount debugging - August 2026

Shopify Free Shipping Discount Not Working: Rates, Conditions, and Checkout Fixes (2026)

A Shopify free shipping discount not working issue usually means the cart promise, discount rule, shipping profile, and checkout conditions do not match.

~10 min read - free shipping, automatic discounts, profiles, combinations, thresholds

Thunder Page Speed Optimizer will not change Shopify discount math, but it can make the cart and promo path faster once the rules are right. Install Thunder to reduce script pressure from threshold bars, cart upsells, pixels, and shipping widgets, then use the manual checks below to fix the discount itself.

Quick Fix with Thunder

Free shipping is one of the most visible checkout promises a store makes. If a banner says "Free shipping over $75" and checkout still charges shipping, shoppers assume the store is misleading them even when the rule is simply misconfigured.

Thunder's features keep cart and product pages faster while you use free-shipping bars, upsells, product recommendations, and tracking. For broader cleanup, start with the complete Shopify speed optimization guide and then tighten the checkout rules below.

Install Thunder

Confirm the Free Shipping Discount Rule

Shopify's free shipping discount documentation separates automatic discounts from discount codes. Start by confirming which method you intended to use. An automatic discount should apply without a customer entering a code. A code-based discount requires the shopper to type or click an applied discount link.

Check status, active dates, customer eligibility, country eligibility, minimum purchase amount, minimum quantity, and excluded shipping rates. The "exclude shipping rates over a certain amount" setting is easy to misunderstand: it applies to shipping-rate price, not order value. If your rate is above the excluded amount, the discount will not apply even when the cart subtotal is high enough.

Use a clean test cart with one eligible product before testing bundles, subscriptions, discounted products, and mixed shipping profiles. If ordinary shipping rates do not appear, fix that first with the shipping rates not showing guide.

Check Discount Combinations and Code Conflicts

A common Community pattern is "my automatic free shipping works until another discount code is entered." Shopify's discount combinations guide explains that discounts only combine when their settings allow it. If an order discount does not combine with shipping discounts, checkout may keep the product discount and drop free shipping.

Create a small test grid. Test free shipping alone, a product discount alone, an order discount alone, free shipping plus each code, and free shipping plus automatic discounts. Note which one wins. Then decide the real promotion hierarchy instead of enabling every combination blindly.

Promotion QA:
- Free shipping automatic discount alone
- Free shipping code alone
- Product discount + free shipping
- Order discount + free shipping
- Subscription product + free shipping
- Customer segment discount + free shipping
- Same tests in each active market

If discount codes fail completely, use the discount code checkout guide. If the checkout button itself is unreliable, review the checkout button debugging checklist.

Match Cart Threshold Bars to Checkout Reality

Many stores do not have a broken free-shipping discount. They have a broken cart message. A theme or cart app says the customer qualifies at $75, but Shopify checkout calculates eligibility after discounts, market currency, shipping country, product exclusions, or shipping profiles. The result feels like checkout lied.

Make the cart threshold mirror the actual rule. If free shipping applies after discounts, use the discounted subtotal. If it applies only to selected countries, say that. If subscriptions or bulky products are excluded, do not show a universal progress bar on those carts.

{% assign threshold_cents = 7500 %}
{% assign remaining_cents = threshold_cents | minus: cart.items_subtotal_price %}

{% if remaining_cents > 0 %}
  <p>Add {{ remaining_cents | money }} more for free shipping in eligible regions.</p>
{% else %}
  <p>You may qualify for free shipping. Final eligibility is confirmed at checkout.</p>
{% endif %}

Notice the careful wording. It avoids promising checkout behavior the theme cannot verify. If cart state also fails to refresh, use the cart not updating guide.

Audit Shipping Profiles, Markets, and Product Exceptions

Shipping profiles can split a cart into different fulfillment groups. A free-shipping rule that looks right for the general profile may not apply to a custom profile for heavy, refrigerated, handmade, preorder, print-on-demand, or dropshipped products. Mixed carts are where the hidden complexity shows up.

Test by product type. Add one ordinary product, then one custom-profile product, then a mixed cart. Repeat in the customer's country and currency. Markets can change catalog availability, pricing, shipping rates, and promotion expectations. Do not assume the default market tells you what international shoppers see.

If the cart includes pickup or local delivery options, compare symptoms with the local pickup checkout guide. If the issue only appears after an app adds a fee or insurance line, audit it with the app leftovers cleanup checklist.

Keep Free Shipping Promos Fast Enough to Convert

Free shipping often brings extra storefront code: progress bars, announcement bars, upsell drawers, product recommendations, shipping calculators, discount apps, and tracking events. Those are not automatically bad. They become expensive when they load globally, update on every cart mutation, or block the main thread before the cart is usable.

Use one cart progress component, not three. Avoid loading a full upsell app on blog posts and policy pages. Measure product, collection, cart, and checkout-entry pages separately. For the speed side, combine Total Blocking Time fixes, INP optimization, and app speed cleanup.

The best promotion is boring in the right way: rule is correct, message is clear, cart updates quickly, checkout confirms the discount, and support does not have to manually refund shipping after the order.

Manual Fix vs Thunder Fix

ProblemManual fixThunder fix
Wrong discount settingsCheck active dates, countries, thresholds, and excluded rates.Not a discount-rule replacement.
Discount conflictEnable only the combination settings that match your promo plan.Keeps cart pages fast while discounts are tested.
Cart bar mismatchMake threshold logic match checkout conditions and market wording.Reduces script pressure from cart widgets.
Promo stack slows checkout pathRemove duplicate bars, upsells, and unused app snippets.Automates broader storefront performance cleanup.

If a free-shipping campaign is important to revenue, compare Thunder pricing with professional Shopify speed optimization before adding more cart apps.

FAQ

Why is my Shopify free shipping discount not working?

The discount may be inactive, limited to the wrong countries, below its minimum purchase or quantity condition, excluded by shipping rate price, blocked by another discount, incompatible with a subscription or product, or attached to a shipping profile that does not match the cart.

Why does free shipping show in cart but not checkout?

Cart threshold bars often use theme or app logic that does not match Shopify checkout rules. Checkout uses real discount, shipping profile, country, market, customer, and rate conditions.

Can automatic free shipping combine with discount codes?

Only when the discount combination settings allow it. If an order discount or product discount is not set to combine with shipping discounts, free shipping might not apply.

Why does Shopify show free shipping for some countries only?

Free shipping discounts can be limited by country, and shipping rates can be controlled by Markets and profiles. Test the customer's country and currency, not only your default market.

Can Thunder fix free shipping discounts?

Thunder cannot rewrite Shopify discount rules, but it can keep cart, product, and promo landing pages fast after the free shipping setup is correct.

Make free shipping clear, correct, and fast.

Fix the Shopify free shipping discount not working rules, then use Thunder to keep promo-heavy carts fast enough to convert.