Here is a pattern that quietly breaks order limits. You sell loose-leaf tea in 100g and 250g. The 100g ships twelve to a carton; the 250g ships six. You set a minimum of twelve on the product. Every 250g order now asks for two cartons when the buyer wanted one, and you have taught your best customers that your rules are guesswork.
Shopify treats this as a variant concern, and says so
The native rules are not product-level. Shopify's quantity rules documentation states plainly that "increment rules apply to product variants", and rules can be set either for all variants of a product or for one specific variant. The documentation illustrates it with different increments for a blue hat and a grey hat.
That is a design decision worth copying. Pack size, weight, and price are variant properties in almost every catalog that has variants at all.
Three cases where product-level is definitely wrong
Different pack sizes per size. The tea case above. The carton is a physical fact of the variant, not the product.
Different weights per variant. A 5kg bag and a 25kg bag of the same feed cannot share a weight ceiling. If you are setting weight rules, note that Shopify calculates using the product weight with "your store default package weight added to each product", per its shipping rates documentation. More on that in weight limits.
Scarcity that lands on one variant. When one colorway is the one everybody wants, a per-customer cap belongs on that variant. Applied to the product, it throttles demand you were happy to serve.
Say it where the variant is chosen
A per-variant rule is only useful if the message changes when the selector changes. A static line that reads "minimum 12" while the shopper has the 250g selected is worse than no message, because it is confidently wrong.
Shopify exposes the quantity_rule Liquid object so a theme can render the minimum, maximum, and increment that apply. Whatever renders your rule needs to react to the variant the shopper has picked, not to the product they landed on.
And enforce it per variant too
Display and enforcement are separate layers, and only one of them is binding. Theme code runs in the shopper's browser, so it can be stepped around by editing the cart, using a cart permalink, or using Buy Now to skip the cart entirely.
Shopify's validation documentation describes the binding layer as running "on Shopify's servers" with enforcement that "can't be bypassed by customers", and the input it receives includes cart lines at variant granularity. If your rules are per variant, the enforcement has to read the variant, not aggregate the product.
A quick audit
Open the products where variants differ in pack size, weight, or price. For each, ask whether one rule can be true for every variant. Where the answer is no, the rule needs to move down a level. That is usually a small number of products carrying a large share of the confusion.




