Most purchase limits count things. Three per customer, one per order, ten a day. But some constraints aren't countable — they're physical.
A flat-rate shipping box tops out at 40 lb, and it doesn't care whether that's one heavy item or twelve light ones. A single-origin lot is 200 kg and needs to reach two hundred customers, not twenty. A regulated product is measured in grams, so a per-unit cap is the wrong unit of measure entirely.
For those, you need to limit by weight — and, critically, across orders, not just per cart.
Quick answer: how to cap purchases by weight on Shopify
Shopify can't do this natively. Its built-in limit is a per-item cap on a single cart — it cannot measure weight, and it cannot follow a shopper across separate orders. With OrderRules, add a per-customer limit with the Total weight type, set the maximum in lb, kg, oz, or g, choose a scope (storewide, per product, or per collection), and choose a period — including Rolling 30 days. The weight comes from each product's existing Shopify weight, and the cap is enforced at native Shopify checkout.
Why per-cart limits don't hold
The failure mode is worth stating plainly, because it's the reason people go looking for an app in the first place.
Per-cart limit: Max 40 lb per order
Customer places order 1: 40 lb -- allowed
Customer places order 2: 40 lb -- allowed
Customer places order 3: 40 lb -- allowed
A cart limit is a suggestion to anyone willing to click twice. A per-customer limit counts across every order in the period:
Per-customer limit: Max 40 lb per customer, rolling 30 days
Order 1 (Mar 3): 25 lb -- OK (25/40 used)
Order 2 (Mar 9): 20 lb -- Blocked (would reach 45 lb)
Order 2 (revised): 15 lb -- OK (40/40 used)
Apr 3: the Mar 3 order ages out -- 25 lb becomes available again
For this to work, orders have to be attributable to a person. Turn on strict login enforcement so every order attaches to a customer account rather than an anonymous guest checkout.
Three situations where weight is the right rule
The flat-rate shipping budget. Your packaging or carrier contract has a ceiling. A storewide weight cap keeps a customer's total order inside the box you actually ship, regardless of the mix of items.
Fair-share allocation. A roaster gets 200 kg of one lot a year. Ten enthusiasts could clear a third of it in a week. A 5 kg per-customer cap on the Single Origin collection turns a first-hour sellout into a season of sales — and does it without you moderating orders by hand.
Regulated categories measured by weight. Where the legal or policy limit is expressed in grams or pounds rather than units, a quantity cap is simply the wrong measurement. Limit in the unit the rule is written in.
Scope: what the cap should actually cover
| Scope | Counts | Use it when |
|---|---|---|
| Storewide | Everything the customer buys | The constraint is shipping, packaging, or handling |
| Per product | One product across their orders | A single heavy or allocated item |
| Per collection | Every product in a collection | The constraint is a category — allocation lots, regulated groups |
Collection scope is the one people underuse. A per-product cap of 5 kg on a range of twelve coffees lets one buyer take 60 kg. A 5 kg cap on the collection holds at 5 kg, whichever bags they choose.
Rolling 30 days vs. a calendar month
This distinction matters more than it sounds.
A monthly limit resets everyone at once on the 1st. A customer who takes their full 40 lb on the 31st can take another 40 lb on the 1st — two allowances inside two days, which is precisely the behaviour a fair-share rule exists to prevent.
Rolling 30 days counts backwards from the moment of checkout. Each order ages out 30 days after it was placed, so allowance returns gradually and there's no month-boundary gap to exploit.
Rule of thumb: calendar periods for quotas and reporting, rolling periods for fairness.
Setting it up
- Audit your product weights in Shopify. This is the step people skip. A variant with no weight counts as zero and passes straight through the cap.
- Go to Customer Limits → Add Customer Limit
- Choose Total weight as the limit type
- Enter the maximum and pick the unit — lb, kg, oz, or g
- Choose the scope — storewide, a product, or a collection
- Choose the period — Rolling 30 days, daily, weekly, monthly, or lifetime
- Save
Units convert automatically, so a 40 lb rule compares correctly against a 450 g product. Set the rule in whatever unit your team already thinks in.
Full details in Weight-Based Customer Limits.
What the customer sees
A blocked checkout with no explanation reads as a broken store. Logged-in shoppers see their remaining allowance on the product page:
"You can add 15 lb more this month"
And at checkout, if they exceed it:
"This order would exceed your 40 lb monthly limit (already ordered: 25 lb)."
Every one of those messages is customizable, and shoppers see them in their own language automatically — which matters if you're allocating a limited product across several markets.
Weight and quantity together
The two rules stack, and the first one reached blocks the checkout. That's useful when the real constraint has two dimensions:
Weight limit: 40 lb per customer per month (the box)
Quantity limit: 6 units per customer per month (fair access)
6 light items, 12 lb total -- quantity cap blocks the 7th
2 heavy items, 40 lb total -- weight cap blocks the 3rd
Where to go next
- Weight-Based Customer Limits — full setup, scopes, and units
- Limit Periods — rolling vs. calendar periods
- Per-Customer Quantity Limits — the count-based counterpart
Weight limits are on the Pro plan at $9.99/month and enforce at native Shopify checkout on any Shopify plan. There's a 14-day free trial if you want to test the rule against your own catalog first — starting, as always, with an audit of which variants are missing a weight.