Dynamic Pricing Recipe

Quantity Breaks

Buy more, pay less per unit. Three rows, and the price drops on its own.

Read this first: the whole order gets the lower price

A quantity break is a threshold, not a marginal rate. When a customer reaches 10 units, all 10 are priced at the 10-unit rate — not nine at list and one discounted.

This is what Bulk mode means, and it is the default. If you want part of the order discounted and the rest at list — buy two get one free, any three for a fixed price — that is Special Offer mode and a different recipe.

What you need

Configure the rule

  1. Edit the product, and open the Dynamic Pricing tab in the Product data panel.
  2. Click Add Pricing Group.
  3. Leave Applies To on Everyone, Quantities based on on Product Quantity, and Rule Processing Mode on Bulk.
  4. Fill the first row: From 5, To 9, type Percentage Discount, amount 10.
  5. Click the + at the end of the row to add another, and fill it: From 10, To 24, Percentage Discount, 20.
  6. Add a third: From 25, To *, Percentage Discount, 30.
  7. Update the product.

There is no row for 1–4. A quantity with no matching row is simply not discounted, so the first four units stay at list price without you saying so.

What each field does

FieldMeaning
FromThe quantity at which this row starts applying
ToThe last quantity it applies to. * means no upper limit — the top row should almost always use it
TypePercentage Discount takes a percentage off. Price Discount takes a flat amount off each unit. Fixed Price sets the unit price outright
AmountThe number, with no % or currency symbol

What the customer is charged

Measured on a $100.00 product with the three rows above:

In cartUnit priceFull priceChargedSaved
1$100.00$100.00$100.00
4$100.00$400.00$400.00below the first tier
5$90.00$500.00$450.00$50.00
9$90.00$900.00$810.00$90.00
10$80.00$1,000.00$800.00$200.00
24$80.00$2,400.00$1,920.00$480.00
25$70.00$2,500.00$1,750.00$750.00
40$70.00$4,000.00$2,800.00$1,200.00

Note the step from 9 to 10: one more unit takes the whole line from $810.00 to $800.00, so the tenth unit is free and then some. That is threshold pricing doing its job — and it is exactly the nudge a quantity break is for. If you would rather it never happened, keep the gap between tiers small enough that the total always rises.

Variations on the same rule

You wantChange
Set prices per tier rather than percentagesType → Fixed Price, amount 90 / 80 / 70
A flat amount off each unitType → Price Discount, amount 10 — $10.00 off each
Counted per variation, not across the productQuantities based onVariation Quantity. Six of one size discounts; three plus three does not
Counted across a whole categoryQuantities based onQuantity of Category — mixed products add up together
Trade customers onlyApplies ToSpecific Roles — see Wholesale Pricing by Role
The same tiers on every productWooCommerce → Dynamic Pricing → Advanced Category Pricing, rather than a rule per product
A promotion that ends on its ownFill Dates: (Inclusive), YYYY-MM-DD. Blank means no restriction