You’ve done the “right” thing. You offer free or low-cost standard shipping once the cart hits a certain value.
And yet, customers still pick the $25 express option.
That extra charge doesn’t help conversion. It doesn’t increase trust. It often just creates checkout friction, buyer regret, or unnecessary refunds when customers realize they didn’t need it.
Worse: you can’t stop it with native Shopify settings. Even if free shipping is already unlocked, Shopify happily shows every other shipping method you’ve ever configured.
So you end up subsidizing shipping and letting customers overpay. That’s not optimization. That’s leakage.
Why This Problem Exists
Shopify’s shipping logic is static by design.
You can add rates based on cart value.
You can trigger free shipping at a threshold.
But you cannot conditionally hide other methods once that threshold is met.
From Shopify’s perspective, every shipping rate is independent. There’s no native concept of:
- “If cart total ≥ $100, hide Express”
- “Show Express only below free-shipping threshold”
Merchants try workarounds:
- Duplicated shipping zones
- Artificial price inflation
- Renaming methods with warnings
These break the moment you add:
- Multiple currencies
- International zones
- Carrier-calculated rates
- Promotions or bundles
The root issue is simple: Shopify doesn’t let shipping methods react to cart context. Until you add logic on top, the system will always expose options you’d rather suppress.
The Manual / Hacky Solutions
Option 1: Do it manually
You monitor orders and refund the difference when customers “accidentally” choose express.
This doesn’t scale. It trains customers to expect exceptions and quietly burns support time.
Option 2: Use a basic shipping plugin
Most Shopify shipping apps can:
- Add rates
- Rename rates
- Create tables
Very few can hide an existing method based on cart value. Even fewer can do it cleanly without duplicating rates or breaking carrier integrations.
You end up with:
- Confusing method names (“Express – DO NOT SELECT”)
- Overlapping rules
- Fragile setups that collapse during sales
Option 3: Custom code
Yes, you can write a custom Shopify function or checkout customization.
You’ll also:
- Lock yourself into a developer dependency
- Debug edge cases on every Shopify update
- Rebuild the logic for each store or client
This is a maintenance tax disguised as control.
The Clean Solution with RuleHook
RuleHook adds the missing layer Shopify never shipped: conditional logic with actions.
Instead of creating more shipping rates, you control the ones you already have.
Goal:
If cart total ≥ $100 → hide Express Shipping
Step-by-step setup:
- Create a new rule in RuleHook
- Add condition:
- Cart Total ≥ $100
- Add action:
- Hide shipping method → Express
- Save and publish
That’s it.

What happens at checkout:
- Below $100 → Standard + Express are visible
- At $100 and above → Express disappears automatically
- Free or standard shipping remains as the only option
No renaming.
No hacks.
No customer confusion.
Customer experience:
From the buyer’s perspective, the checkout feels intentional:
- Fewer choices
- Clear value signal (“Shipping is already handled”)
- Less decision fatigue
From your perspective:
- Lower friction
- Fewer support tickets
- Full control without touching Shopify’s core setup
Edge Cases to Consider
When this might NOT work alone
- If you want to upsell express for high-value orders (luxury, urgency)
- If express includes insurance you don’t want to absorb
Conditions you can combine
- Cart total + destination country
- Cart total + product tag (e.g. fragile items)
- Cart total + customer type (B2B vs B2C)
RuleHook rules are deterministic; if something looks wrong, it’s usually a missing condition, not hidden magic.
Summary
You’re already paying for free shipping.
Letting customers stack unnecessary express fees on top doesn’t help anyone.
This isn’t about forcing choices, it’s about removing bad ones.
RuleHook gives you the control Shopify never offered: hide, rename, or modify shipping methods only when it makes sense. No workarounds. No brittle logic. No developer tax.
If shipping decisions affect margins (they do), then shipping logic deserves real rules.
Try RuleHook free for 7 days.
And stop losing control at the last step of checkout.