WooCommerce Dynamic Pricing

Pricing Recipes

The exact settings for a specific outcome, with the cart totals measured rather than assumed.

Dynamic Pricing can express most of what a store asks for, but the fields are generic on purpose — the same four decisions build a wholesale rate, a quantity break and a buy-one-get-one. These pages start from the outcome and give you the configuration, so you are not reverse-engineering it from field names.

The recipes

Buy 2, Get 1 Free

Special Offer · Purchase 2, Receive 1 · Percentage 100 · Repeating

The charge at every quantity from 1 to 9, and why the customer needs three in the cart before anything happens.

Quantity Breaks

Bulk · three tiers · 10%, 20%, 30%

Buy more, pay less per unit. What the cart charges at eight quantities, and the step where one extra unit makes the order cheaper.

Wholesale Pricing by Role

Specific Roles · store-wide or per product

Two prices in one catalogue, no coupon code. Both places the rule can live, and what happens when you configure both.

Every rule is four decisions

Whatever you are building, you are answering these. Once they are familiar, most requests stop being research.

FieldChoicesWhat it decides
Applies To Everyone · Guests · Specific Roles Who gets the price. Specific Roles is how wholesale rates work — no separate price list
Quantities based on Product · Variation · Cart Line Item · Quantity of Category What gets counted. Quantity of Category is what makes “any 3 from this range” work across different products
Rule Processing Mode Bulk · Special Offer How the quantity is read. See below — this is the one that catches people out
Type & Amount Price Discount · Percentage Discount · Fixed Price What the adjustment does. Fixed Price sets the price outright rather than reducing it

Bulk or Special Offer

Bulk reads the quantity as a threshold: at 10 or more, every unit gets the discount. That is a quantity-break table — buy more, save more on all of them.

Special Offer reads it as a block: for each group of N, something happens once. That is buy-one-get-one, “any 3 for $50”, and every offer where part of the order is discounted and the rest is not.

Bulk is the default, so a rule that should give away a free item but discounts everything instead is almost always this setting. Keep one Special Offer row per pricing group; separate offers belong in separate groups.

The same four fields, other outcomes

Configuration only — the recipes above carry the measured totals. These have not been measured, so treat them as where to look rather than as a promise about a number.

You wantSet
Any 3 from a category, not one productQuantities based onQuantity of Category
A discount for logged-out visitors onlyApplies ToGuests
Quantity counted per variation, not per productQuantities based onVariation Quantity
A promotion that ends on its ownDates: (Inclusive) — From and To, YYYY-MM-DD. Blank means no restriction
A set price rather than a reductionFixed Price as the type