Enforce the pack sizes your shop and sales orders actually sell
Sell eggs by the dozen, drinks by the case, and prints by the ream — automatically. Multiples of Quantity in Shop snaps every quantity to a valid pack size, explains the change in plain language, and carries the same rule into B2B quotations, with optional bulk-discount tiers to reward bigger packs.
The problem
Odoo's shop lets a customer type any quantity — 7 eggs, 13 bottles, 250 flyers — even when the product only makes sense sold in fixed packs. The result is broken cases, manual order corrections, frustrated warehouse staff, and customers surprised after checkout that their quantity was not really available.
The solution
Define a pack size per product, with optional per-website overrides, and the shop automatically snaps every quantity to the nearest valid multiple — with a clear on-page badge and an inline message explaining the change. The same rule blocks invalid quantities on backend quotations and sales orders, and optional bulk-discount tiers reward customers for buying bigger packs.
Everything you need to sell in packs
Every capability below is implemented in the module.
Per-product pack size
Set a "Sold in Packs of" quantity on any product — 12, 24, 100, whatever the product actually ships in. Leave it at 1 for products with no restriction.
Per-website overrides
Multi-site sellers can define a different pack size for the same product on each website, so region- or brand-specific storefronts each sell in their own valid multiples.
"Sold in packs of X" badge
The product page shows a prominent badge naming the pack size before the customer ever touches the quantity field, so the rule is expected, not a surprise at checkout.
Automatic quantity snap
Enter any quantity and the shop instantly rounds it to the nearest valid pack size — no invalid order ever reaches the cart.
Plain-language change messages
Every automatic adjustment is explained inline — "Adjusted to 12 — this item is sold in packs of 12" — so customers understand exactly what changed and why.
AJAX cart updates
Quantity corrections and cart totals update in place without a page reload, keeping the buying flow fast and modern.
B2B sales order enforcement
The same pack-size rule applies to backend quotations and sales orders, so wholesale reps and portal buyers cannot save a line with an invalid quantity.
Bulk-discount tiers
Reward larger packs with configurable discount tiers — for example 5% off at 24 units and 10% off at 60 — applied automatically to the sale order line.
Server-side safety net
Even if a request bypasses the storefront JS, the cart add and update routes re-check and snap the quantity server-side, so the pack rule can never be circumvented.
How it works
Set the pack size
Open a product and set "Sold in Packs of" — add per-website overrides or bulk-discount tiers as needed.
Customer shops as usual
The product page shows the pack-size badge and pre-fills the quantity to one full pack.
Quantity snaps automatically
Any quantity the customer enters is rounded to the nearest valid multiple, with an inline explanation.
Order confirms clean
The cart, checkout, and any backend quotation all enforce the same rule, so every confirmed order ships in whole packs.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
Yes. It extends the standard website_sale and sale_management flows — no separate checkout or theme is required.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Multiples of Quantity in Shop
Per-product pack-size enforcement across the eCommerce store and B2B sales orders, with a snap-to-multiple cart and optional bulk-discount tiers.
Buy on Odoo App Store