A minimum order quantity (MOQ) is the smallest amount a supplier will sell in one order. It can be a unit count ("minimum 144 mugs"), an order value ("minimum EUR 250 per order") or both, and it can apply per SKU, per color, per style or to the whole order. Suppliers set it because every order carries fixed costs, such as a machine setup, a print screen or picking and packing, that only pay off above a certain volume.
For buyers, the MOQ decides how much cash and shelf space a new product ties up. For sellers, it is a pricing tool that protects margin on small orders. This guide covers both sides: what the term means in practice, how to calculate a sensible MOQ with a worked example, how to negotiate one, and how to store MOQ, pack size and order multiples as product data so Shopify B2B, WooCommerce, Magento and B2B feeds can use them.
MOQ meaning in supplier terms: units, value and per-what
"MOQ 500" on a quote tells you little until you know what the 500 counts. Read the line carefully, because suppliers use the same three letters for different rules:
- Per SKU: 500 units of each SKU you order. Ordering three colors means 1,500 units.
- Per style, spread across variants: 500 units of a style, split over sizes and colors as you like, often with a smaller floor per variant.
- Per order (value): a minimum order value, for example EUR 250, regardless of the mix. Common with distributors and wholesalers that hold stock.
- Per production run: the batch a factory needs for one setup, such as one dye lot of fabric or one print run.
- In cases, not units: "MOQ 10" may mean 10 cartons of 12. Always confirm the unit of measure.
Two related terms travel with the MOQ. The order multiple (also called increment or quantity interval) is the step size above the minimum: if a mug ships in cartons of 12, you can order 144 or 156, not 150. The pack size is how many consumer units sit inside one orderable unit. A carton of 12 mugs has its own SKU and, in GS1 terms, often its own GTIN (see GTIN vs UPC vs EAN).
Why suppliers set a minimum order quantity
An MOQ is rarely arbitrary. It usually comes from one of these costs:
- Setup and changeover: cleaning a line, mixing a color, making a print screen or a mold. The cost is the same for 50 units or 5,000.
- Raw material lots: fabric by the roll, packaging by the thousand, ingredients by the drum. If the supplier must buy a full lot, your order has to use enough of it.
- Order handling: picking, packing, invoicing and payment reminders cost about the same for a small order as for a big one.
- Freight economics: a full carton, layer or pallet ships far cheaper per unit than loose items.
- Channel protection: a wholesale minimum keeps consumers from buying at trade prices and separates trade accounts from retail ones; our comparison of wholesale vs retail covers the other differences.
Working out a sensible MOQ: a printed mug example
The figures below are illustrative. Swap in your own costs; the method stays the same. A small brand sells a custom-printed ceramic mug to shops at a wholesale price of EUR 5.50. The mug costs EUR 3.10 to make and print. Each order also triggers a print setup of EUR 180 and about EUR 20 of order handling.
Step 1: add up the fixed cost of one order
Fixed cost per order = setup + handling = EUR 180 + EUR 20 = EUR 200. Anything that does not change with quantity belongs here: artwork checks, a sample, a pallet label.
Step 2: divide by the contribution per unit
Contribution per unit = price minus variable cost = EUR 5.50 - EUR 3.10 = EUR 2.40. The break-even quantity is EUR 200 / EUR 2.40 = 83.3, so 84 mugs cover the fixed cost and earn nothing. If the brand wants at least EUR 100 profit per order, the target becomes (EUR 200 + EUR 100) / EUR 2.40 = 125 mugs. The break-even calculator runs the same sum if you prefer a form.
Cost per mug at different order sizes
Illustrative example| Units per order | Cost per mug (EUR) |
|---|---|
| 24 | €11.43 |
| 48 | €7.27 |
| 96 | €5.18 |
| 144 | €4.49 |
| 240 | €3.93 |
Step 3: round up to the case pack
The mugs ship in cartons of 12. 125 rounds up to 132 mugs (11 cartons), and many suppliers would publish 144 (12 cartons) for a cleaner number. Set the order multiple to 12 at the same time, so a buyer who wants more orders 144, 156 and so on, never a broken carton.
Step 4: check it against the buyer's sell-through
Now look at it from the shop's side. A gift shop that sells 40 mugs a month needs 3.3 months to clear 132 mugs. That is acceptable for an evergreen design and too long for a seasonal one. A useful buyer-side benchmark is the economic order quantity (EOQ), the order size that balances ordering cost against holding cost: EOQ = square root of (2 x annual demand x cost per order / holding cost per unit per year).
With 480 mugs a year, EUR 35 per order for shipping and admin, and a holding cost of 25% of the EUR 5.50 purchase price (EUR 1.375 per mug per year, an assumption for this example), the shop's EOQ is about 156 mugs. The supplier's 132 sits below that, so the MOQ does not force the shop to overbuy. If the MOQ were 500, the shop would carry more than a year of stock, and that is where negotiation starts.
Negotiating a lower MOQ as a buyer
Once you know which cost drives the minimum, you know which lever to pull. Approaches that tend to work:
- Ask what the MOQ is based on. Per SKU, per color or per run? A per-style minimum spread over sizes is far easier to meet than a per-SKU one.
- Offer to pay the fixed cost. A one-off setup fee or a higher unit price on a small first order removes the supplier's reason for the minimum.
- Use stock materials. Standard colors, stock packaging and existing molds avoid new setups.
- Commit to volume over time. A blanket order of 1,000 units a year, called off in four deliveries of 250, often earns a lower per-delivery minimum.
- Combine SKUs into one run. Same base product, different prints, one production slot.
- Accept a longer lead time. Suppliers can slot small orders into a run that is already planned for another customer.
Get the outcome in writing, including the unit (units or cartons), the scope (per SKU or per order) and the price that applies below the standard MOQ. That written rule is exactly what later needs to live in your product data.
MOQ, pack size and order multiples as product fields
Most MOQ trouble in B2B webshops is a data problem. The minimum lives in a supplier PDF or a sales rep's head, the webshop accepts an order of 7, and someone has to call the customer. Treat quantity rules as attributes on the product or variant, with clear names and units. A workable set:
Product fields for quantity rules
| min_order_quantity | 132 | Integer, in sales units | Checkout minimum, line sheets, feeds |
|---|---|---|---|
| order_multiple | 12 | Integer | Increment or quantity interval |
| max_order_quantity | 1,200 | Integer, optional | Allocation of scarce stock |
| sales_unit | piece | Code list (piece, carton, pallet) | What one ordered unit is |
| units_per_pack | 12 | Integer | Consumer units per carton |
| pack_gtin | GTIN-14 of the carton | Text, validated | Scanning and EDI at case level |
| min_order_value | 250 | Decimal plus currency | Order-level minimums |
| moq_scope | per_sku | Code list (per_sku, per_style, per_order) | How the minimum is counted |
Two rules keep these fields consistent: the minimum should be a multiple of the order multiple (132 = 11 x 12), and price breaks should start at or above the minimum. A price list that shows MOQ and pack size next to each tier price saves a round of questions from every new account, and the same fields feed a line sheet for trade buyers.
Quantity rules in Shopify B2B, WooCommerce and Magento
Each platform enforces quantity rules differently, and none reads a supplier PDF. Here is what each one offers out of the box, checked against the platform documentation.
Shopify B2B. Quantity rules set a minimum, an optional maximum and an increment per variant inside a B2B catalog, under Markets > Catalogs or through a catalog CSV import. Rules apply per variant, so a buyer cannot combine 5 gray hats and 5 blue hats to reach a minimum of 10. Volume pricing allows up to 10 price breaks per product, and each break must be above the minimum and a multiple of the increment. Shopify notes that the theme must show the minimum on the product page. Shopify's plan comparison lists quantity rules and price breaks on Basic, Grow, Advanced and Plus, with B2B catalogs limited to 3 below Plus.
WooCommerce. Core WooCommerce has no minimum or increment fields. The Min/Max Quantities extension adds Minimum quantity, Maximum quantity and Group of (the order multiple) per product, per variation and per category, plus order-level minimum and maximum quantity and value. Its REST fields are min_quantity, max_quantity and group_of_quantity, and the API rejects a minimum that is not a multiple of Group of.
Magento (Adobe Commerce and Open Source). The Advanced Inventory panel on a product has Minimum Qty Allowed in Shopping Cart, Maximum Qty Allowed in Shopping Cart and Qty Increments. At store level, the minimum can differ per customer group, and the default maximum is 10,000. Customer-group tier prices sit in Advanced Pricing.
Native quantity rules by platform
| Shopify B2B | Minimum | Increment | Maximum (optional) | Per variant, per B2B catalog |
|---|---|---|---|---|
| WooCommerce + Min/Max Quantities | Minimum quantity | Group of | Maximum quantity | Product, variation, category; order totals |
| Magento 2 | Minimum Qty Allowed in Shopping Cart | Qty Increments | Maximum Qty (default 10,000) | Product; minimum per customer group in config |
| BMEcat 2005 feed | QUANTITY_MIN | QUANTITY_INTERVAL | None | Per article, with ORDER_UNIT and NO_CU_PER_OU |
For distributors that receive catalogs as files, BMEcat carries the same rules in the order details of each article: the order unit (ORDER_UNIT), the number of content units per order unit (NO_CU_PER_OU), the minimum (QUANTITY_MIN) and the interval (QUANTITY_INTERVAL). Electrical, installation and sanitary wholesalers that classify with ETIM usually expect these fields in the same file.
Five MOQ data errors that block B2B orders
- Mixed units. The minimum is stored in cartons for one supplier and in pieces for another, so the shop asks for 10 pieces of an item that ships 12 to a carton.
- A minimum that is not a multiple of the increment. MOQ 100 with an increment of 12 cannot be ordered exactly; WooCommerce's API refuses it, and buyers on other platforms get confusing errors.
- Rules on the parent only. Shopify B2B sets quantity rules per variant, and WooCommerce needs rules on each variation unless the product-level rule is meant to cover them. A note in the parent's description does nothing at checkout.
- Price breaks below the minimum. A tier that starts at 50 when the MOQ is 132 is dead data and makes the price list look wrong.
- The MOQ in the description, not in a field. Text such as "minimum 12" cannot be enforced, filtered or exported to a feed.
Keeping quantity rules next to the rest of your product data
WISEPIM does not enforce order quantities at checkout; the store or the buyer's procurement system does that. What it does is keep the values that drive those rules complete and consistent. You add MOQ, order multiple and pack size as attributes, fill them in bulk, and check with Quality Guard rules that every B2B product has them. Customer groups and volume discounts live in the same project, and the Magento 2 connector sends volume discount tiers as Magento tier prices. Feed Hub writes QUANTITY_MIN and QUANTITY_INTERVAL into BMEcat exports from attributes such as min_order_quantity and order_step. For Shopify B2B and WooCommerce, you still enter the quantity rules in the platform or its CSV import, using the values from your product data.
If you sell to trade and consumers from one catalog, start with the PIM for wholesalers overview to see how quantity, price and pack data fit together.

