Quantity limits
Set a floor or a ceiling on how much a shopper can buy — capped in the cart drawer and enforced again at Shopify's checkout.
What it is
Quantity limits is a rule, not something shoppers see. It adds no row, no banner and no box to the drawer. Instead it changes how the cart behaves: the + button stops at your ceiling, the line explains why, and the Checkout button refuses with a reason.
When you publish, the same limits are also sent to Shopify as a checkout validation. So a shopper who never opens the drawer — who goes straight to /checkout — is stopped there too.
When to use it
- A limited drop where you want two per customer.
- A wholesale store with a minimum order size.
- Stock you can only pack a certain number of per box.
Limits are counted in items, never in money. "Most items an order may have" is a count of units, not a spend cap.
Set it up
- Open your cart in the Cart builder.
- Under Add a module, choose Quantity limits and press Add.
- Press Settings next to the new module.
- Fill in whichever limits you want. Every field is optional — leave a field empty and that limit simply does not exist.
- For a per-product limit, press Choose from your catalogue to pick the products, then fill in Fewest of each of those and/or Most of each of those.
- Press Save. Saving does not put it live.
- Go back to the builder and press Review and publish. Publishing is what updates the drawer and creates the checkout validation on Shopify's side.
You can watch it behave before a shopper does: Preview in the builder runs the real drawer against a cart you choose.
Settings
| Setting | What it does |
|---|---|
| Fewest items an order may have | The smallest total number of items a cart may check out with. Optional — a wholesale minimum, for example. Leave empty for no floor. |
| Most items an order may have | The largest total number of items a cart may check out with. Optional. Counted in items, not money. |
| Products with their own limit | The products the limit below applies to. Chosen from your catalogue. The limit applies to each of them, counting every size or colour of the same product together. |
| Fewest of each of those | The minimum a shopper must have of each chosen product, added up across its variants. |
| Most of each of those | The maximum a shopper may have of each chosen product, added up across its variants. |
All five fields accept whole numbers of 1 or more. Zero and negative numbers are rejected when you save; a decimal is rounded down when the limit is applied.
What shoppers see
The quantity buttons
When a line reaches your maximum, its + button stops working and the line says Limit 2 per order (with your number). That wording is deliberately different from the stock message — "Only 2 left in stock" and "Limit 2 per order" are different facts, and a shopper told the wrong one waits for a restock that is not coming.
If a product also has limited stock, the tighter of the two wins.
The Checkout button
A cart that breaks a limit still shows its Checkout button, but pressing it refuses and states the reason instead of sending the shopper on. The shopper sees one reason at a time, in this order:
You can order 2 of Merino Crew — you have 3.Orders are limited to 10 items — you have 12.Merino Crew has a minimum of 6 — you have 3.Orders start at 3 items — you have 2.
A named product comes before a whole-cart message, and being over a limit comes before being under one. An empty cart is never blocked. You can reword all four of these on the Shopper copy screen, under the Quantity limits group.
Minimums behave differently from maximums
A maximum can be prevented, so the + button simply stops. A minimum cannot: a cart holding one of something with a minimum of six is already below it, and there is no button press to refuse. Blocking the − button would trap a shopper in a cart they could not empty. So minimums leave every control working and block checkout with the reason instead.
Counting
- A per-product limit is about the product, not one row. Two in size 9 and two in size 10 count as four of that product.
- The whole-cart limits count every unit in the cart. Anything sitting in the cart counts — including a free gift or a checkbox add-on if one is there.
- A cart that is already over a limit (added elsewhere, or because you lowered the limit afterwards) is blocked at checkout, even though nothing capped it on the way up.
At Shopify's checkout
Publishing creates a checkout validation on your store that reads the same numbers and reports the same four messages, in the same order. It is what stops a shopper who skips the cart entirely. It is kept in step automatically:
- Publish a cart with limits, and the validation is created or updated.
- Publish a cart with the module switched off, removed, or with every field empty, and the validation is removed.
- If you delete the validation yourself in the Shopify admin, the next publish recreates it.
Limitations
Things a merchant would reasonably expect that this module does not do today:
- One set of numbers for the whole product list. Every product you choose gets the same minimum and maximum. You cannot say "two of this and five of that" in one cart.
- Products without a limit, or a limit without products, are ignored. If you pick products but leave both "of each of those" fields empty — or fill them in and pick no products — nothing is saved and nothing is enforced. The builder does not warn you about this, so check both halves are filled.
- Nothing checks that your minimum is below your maximum. A minimum of 6 with a maximum of 2 saves without complaint and blocks every cart.
- Only one Quantity limits module counts. Nothing stops you adding a second one from the module list, but only the first one in the cart is ever read. The second does nothing.
- Display rules do not narrow this module. A rule works by hiding something on screen, and this module puts nothing on screen — so a rule attached to it has no effect. There is no way to apply a limit to only some shoppers, countries or devices.
- One validation per store, not per cart. If you run more than one cart configuration, the most recently published one decides what Shopify's checkout enforces. Publishing a cart with no limits removes the validation your other cart created.
- The checkout messages are English only. The Shopper copy screen changes the wording in the drawer; the messages Shopify shows at checkout are fixed English text and are not translated or editable. They are also not pluralised — a limit of one reads "Orders are limited to 1 items".
- No limits by collection, tag, variant or customer. Limits are per product or per whole cart, and nothing else. There is no per-variant limit, no once-per-customer rule and no limit based on past orders.
- Whole-cart limits cannot be based on order value. They count items only.
Saving is not publishing. Changes on this screen do nothing to your live store until you press Review and publish — and that is also what tells Shopify's checkout about the limits.
Next: Publishing explains the review screen, version history and rollback. If a limit is not behaving on your storefront, start with Troubleshooting.