Your 2 lb scented candle and your 45 lb patio table shouldn't offer the same shipping options at checkout. But if you're using Shopify's default shipping settings, that's exactly what's happening.
Shopify lets you create weight-based shipping rate tiers, like "$4.99 for orders under 5 lbs" and "$14.99 for orders over 20 lbs." That part works fine. The problem? Shopify still shows every rate in a shipping zone to every customer. There's no built-in way to say "hide Express Shipping when the cart weighs more than 30 lbs" or "only show Freight for orders over 50 lbs."
If you sell products with a wide range of weights, this creates real checkout problems. Customers see shipping options that don't make sense for their order, they get confused by pricing that seems off, and some just leave.
In this guide, you'll learn how to set up weight-based shipping rates in Shopify and then go a step further: controlling which rates actually appear at checkout based on cart weight. We'll cover Shopify's native options, where they fall short, and how to fill the gap with a delivery customization app.
Selling products of different weights? HideShip lets you hide, show, and sort shipping rates based on cart weight with simple rules. No code required, works on all Shopify plans.
Why weight-based shipping control matters at checkout
Weight affects shipping cost more than almost any other variable. Carriers charge by weight (or dimensional weight, whichever is greater), and the difference between shipping a 2 lb package and a 40 lb package can be $20 or more.
When your checkout doesn't reflect this, two things go wrong.
Heavy orders with cheap shipping options eat your margins. When Marcus, a furniture and home decor merchant, looked at his Q1 shipping costs, he found he'd lost over $3,200 in three months. The culprit: customers ordering heavy dining chairs and selecting "Express 2-Day" at a flat $12.99. His actual carrier cost for those shipments averaged $38. The express option was meant for his lightweight candle and decor line, but Shopify showed it on every order regardless of weight.
Lightweight orders with expensive options cause abandonment. On the flip side, showing a "$45 Freight Shipping" option to a customer ordering a single throw pillow is confusing at best and a deal-breaker at worst. According to Baymard Institute research, unexpected shipping costs remain a top driver of cart abandonment, with nearly 48% of shoppers citing extra costs as their reason for leaving.
The fix isn't complicated. You need two things: weight-based rate tiers (which Shopify handles natively) and conditional visibility rules (which require a delivery customization app).
How Shopify handles weight-based shipping rates
Before you can control which rates appear by weight, you need to set up the weight-based rates themselves. Here's how Shopify's native system works.
Setting up weight-based rates in Shopify admin
- From your Shopify admin, go to Settings > Shipping and delivery.
- Click on the shipping profile you want to edit (usually the General shipping profile).
- Find the shipping zone where you want to add a weight-based rate and click Add rate.
- In the Rate type dropdown, select Weight.
- Enter the weight range in the Minimum and Maximum fields.
- Enter the shipping price for that range.
- Optionally, set a transit time for customer visibility.
- Click Done, then Save.
For example, you might set up three tiers:
| Weight Range | Rate Name | Price |
|---|---|---|
| 0 - 5 lbs | Standard Shipping | $4.99 |
| 5 - 20 lbs | Standard Shipping | $9.99 |
| 20 - 70 lbs | Heavy Item Shipping | $19.99 |
Shopify will automatically show the correct rate based on the total weight of items in the cart. If the cart weighs 7 lbs, the customer sees the $9.99 tier.
Pro tip: Make sure every product in your catalog has an accurate weight value. If a product has no weight set, Shopify treats it as 0 lbs, which throws off your rate calculations. You can check and update product weights under Products > [Product] > Shipping in your Shopify admin.
The package weight factor
One detail that trips up many merchants: Shopify adds your default package weight to the total product weight when calculating which rate tier applies. If your default package weighs 0.5 lbs and a customer orders products totaling 4.8 lbs, the calculated weight is 5.3 lbs, which could push them into the next tier.
Set your default package weight to 0 and build packaging weight into your product weights instead. This gives you more control and avoids surprise tier jumps.
Where Shopify's native weight rates fall short
Weight-based rate tiers solve the pricing question: "How much should shipping cost for this weight?" But they don't solve the visibility question: "Which shipping options should this customer see?"
Here's what you still can't do with Shopify's native settings:
- Hide Express Shipping when the cart weighs more than 30 lbs
- Show a "Freight Only" option exclusively for orders over 50 lbs
- Remove lightweight shipping options (like USPS First Class) when heavy items are in the cart
- Combine weight conditions with other factors (weight + country, weight + customer tag)
For this level of control, you need a delivery customization app.
How to show specific shipping rates based on cart weight
There are two approaches to controlling which shipping rates appear based on weight. One is native but limited. The other gives you full control.
Method 1: Shipping profiles (native, limited)
Shopify lets you create multiple shipping profiles and assign products to different profiles. You could create one profile for lightweight products and another for heavy products, each with its own set of shipping rates.
This works if your weight classes are product-based and never mix. But the moment a customer adds both a lightweight and a heavy product to the same cart, Shopify merges the rates from both profiles, and you're back to showing options that don't make sense for the combined order.
Shipping profiles are useful for product-level rate management, but they don't solve cart-level weight conditions.
Method 2: Delivery customization app (recommended)
A delivery customization app like HideShip evaluates the cart at checkout and applies rules in real time. You set conditions (like "cart weight is greater than 30 lbs") and actions (like "hide Express Shipping"), and the app handles the rest.
HideShip reads the cart weight that Shopify calculates (product weights plus default package weight) and uses it as a condition in your rules. This means your weight-based rate tiers stay in place for pricing, while HideShip controls which of those rates the customer actually sees.
Step-by-step: Setting up a weight-based rule in HideShip
Let's walk through a common scenario: hiding Express Shipping for orders over 30 lbs.
- Install HideShip from the Shopify App Store and open it from your Shopify admin.
- Click "Create Customization" and choose Simple Customization (one condition per rule).
- Select the condition: Choose Cart Weight from the condition dropdown. Set the operator to greater than and enter 30 (in your store's weight unit, lbs or kg).
- Select the action: Choose Hide and then select Express Shipping from the list of your active shipping rates.
- Name your rule something descriptive, like "Hide Express for Heavy Orders."
- Save the customization. It's active immediately.
Now, when a customer's cart weighs more than 30 lbs, Express Shipping disappears from checkout. Orders under 30 lbs still see it as normal.
Always test both sides of your rule. Add products totaling under 30 lbs to your cart and verify Express still appears. Then add heavy items to push past 30 lbs and confirm it hides. This takes 2 minutes and prevents surprises.
Real-world weight-based shipping scenarios
Setting up one rule is straightforward. Here's where weight-based shipping control gets powerful: solving specific merchant problems.
Hide express shipping for heavy orders
The scenario: Rachel runs a home goods store selling everything from kitchen towels (0.5 lbs) to cast iron cookware sets (35 lbs). Express 2-day shipping is priced as a flat $12.99, but her actual carrier cost for heavy items shipped express exceeds $40.
The rule: Hide "Express Shipping ($12.99)" when cart weight is greater than 15 lbs.
The result: Lightweight orders still get the express option. Heavy orders only see Ground and Standard, which are priced to cover actual costs. Rachel stopped bleeding margin on heavy express shipments within a week of setting up the rule.
Show freight-only shipping for oversized orders
The scenario: A building supplies merchant sells both small hardware (screws, brackets) and heavy materials (cement bags, lumber). Orders over 50 lbs need freight shipping, and showing standard parcel options for those orders creates fulfillment headaches when customers select the wrong method.
The rule: Create two rules that work together:
1. Hide "Standard Shipping" and "Economy Shipping" when cart weight is greater than 50 lbs.
2. Hide "Freight Shipping" when cart weight is less than 50 lbs.
The result: Small orders see Standard and Economy. Large orders see Freight only. No confusion, no mispicked shipping methods, no angry emails about delayed heavy shipments.
Free shipping based on weight thresholds
The scenario: A pet supply store wants to offer free shipping on small orders (treats, toys, accessories under 5 lbs) but charge for heavy bags of dog food and cat litter.
The rule: Hide "Paid Standard Shipping ($7.99)" when cart weight is less than 5 lbs. This leaves only the "Free Shipping" rate visible for lightweight orders.
The result: Customers ordering a bag of treats see free shipping. Customers ordering a 30 lb bag of kibble see the standard rate. This approach encourages small add-on purchases without giving away free shipping on heavy, expensive-to-ship products.
Want to go deeper on free shipping strategies? Check out our guide to setting up free shipping by cart total for complementary approaches.
Combining weight with other conditions
HideShip's Advanced Customization lets you combine cart weight with other conditions for precision control. For example:
- Weight + Country: Hide "Economy International" when cart weight exceeds 10 lbs AND the destination is outside the US (heavy international economy shipments are unreliable).
- Weight + Customer tag: Show "Wholesale Freight" only when cart weight is over 25 lbs AND the customer is tagged "B2B." Learn more in our B2B shipping rates guide.
- Weight + Product tag: Hide "First Class Mail" when cart weight is over 1 lb AND the cart contains items tagged "fragile."
These combined rules let you handle nuanced shipping scenarios without creating dozens of individual rules, which matters given Shopify's 25 delivery customization limit per store.
Best practices for weight-based shipping rules
Getting the most out of weight-based shipping control comes down to a few principles.
Accurate product weights are non-negotiable. Every product needs a weight value. If even one product is missing its weight, Shopify treats it as 0 lbs, which skews your cart weight calculation and can trigger the wrong rules. Audit your catalog and fill in any gaps.
Account for packaging weight deliberately. Either build packaging weight into each product's weight, or set your default package weight in Shopify, but not both. Double-counting packaging weight pushes carts into higher tiers unexpectedly.
Avoid gaps in your weight ranges. If one rate covers 0-5 lbs and the next covers 10-20 lbs, orders weighing 5.1-9.9 lbs have no applicable rate. Shopify won't let customers check out if no shipping rate applies. Review your ranges end-to-end.
Never hide ALL shipping rates. If your rules are too aggressive, certain cart combinations might have every rate hidden. Shopify blocks checkout when no shipping option is available. Always test edge cases, especially carts at the boundary weights of your rules.
Test with real cart scenarios. Don't just test with one product. Build carts that mix lightweight and heavy items, hit boundary weights (exactly 30 lbs when your threshold is 30), and check multiple shipping zones. Two minutes of testing prevents weeks of lost sales.
Start simple, then add complexity. Begin with one or two high-impact rules (like hiding express for heavy orders) before building a complex rule system. You can always add more rules later. For tips on organizing your shipping rate display, see our guide to sorting shipping rates.
Common mistakes with weight-based shipping
Even experienced merchants run into these pitfalls. Here's what to watch for.
Missing product weights. This is the number one cause of weight-based rule failures. A product with no weight defaults to 0, which means a cart with three heavy items and one weightless item calculates lower than it should. Run a product export and filter for items with blank or zero weights.
Ignoring the default package weight. Shopify adds your default package weight to the cart total. If you set your package at 1 lb and a customer orders products totaling 29.5 lbs, the calculated weight is 30.5 lbs. That extra half pound might trigger a rule you didn't expect. Check your package settings under Settings > Shipping and delivery > Packages.
Overlapping weight ranges creating duplicate rates. If "Standard Shipping" covers 0-20 lbs and "Ground Shipping" covers 10-30 lbs, orders between 10-20 lbs show both rates. Either tighten your ranges or use HideShip to hide one based on the cart weight threshold.
Not testing boundary weights. If your rule says "hide Express when cart weight is greater than 30," what happens at exactly 30 lbs? Test the exact threshold, not just values well above or below it.
Frequently asked questions
Can Shopify natively hide shipping methods by weight?
No. Shopify lets you create weight-based rate tiers (charge different prices at different weight thresholds), but it cannot conditionally hide or show shipping rates based on cart weight. To control which rates appear at checkout by weight, you need a delivery customization app like HideShip.
Does HideShip calculate weight independently?
No. HideShip reads the cart weight that Shopify provides, which is the sum of all product weights plus your store's default package weight. This means your product weights in Shopify must be accurate for weight-based rules to work correctly.
Can I combine weight with other conditions?
Yes. HideShip's Advanced Customization lets you combine cart weight with conditions like country, customer tag, product tag, cart total, and more. For example, you can hide a rate only when the cart weighs over 20 lbs AND ships to Canada.
What happens if a product has no weight set?
Shopify treats it as 0 lbs. This means a cart containing products without weight values will calculate lower than the actual weight, potentially showing the wrong shipping rates or failing to trigger your weight-based rules. Always ensure every product has an accurate weight.
Do weight-based rules work with carrier-calculated rates?
Yes, with an important caveat. HideShip can hide carrier-calculated rates based on cart weight, but it cannot change the price those carriers charge. If UPS returns a $25 rate for a 15 lb package, HideShip can hide that rate from the customer but cannot modify the $25 price.
Take control of shipping rates by cart weight
Shopify's weight-based rate tiers handle the pricing side of weight-based shipping. But pricing is only half the equation. The other half, controlling which options actually appear at checkout based on cart weight, is what separates a clean checkout from one that confuses customers and bleeds margin.
Here's what to do next:
- Audit your product weights. Make sure every product has an accurate weight value in Shopify.
- Set up weight-based rate tiers in your Shopify shipping settings if you haven't already.
- Install HideShip and create your first weight-based visibility rule, like hiding express shipping for heavy orders.
- Test your rules with real cart scenarios at boundary weights.
The merchants who get this right don't just save on shipping costs. They give every customer a checkout experience where the shipping options make sense for what they're ordering. And that's a checkout worth completing.
Install HideShip free on the Shopify App Store and set up your first weight-based rule in under 5 minutes.

Install Now