Mix and match and wholesale discounts in WooCommerce

A quantity discount counts one product at a time. That is fine for a notebook, but it doesn’t fit a shop where customers buy across a range. Someone who buys a lavender candle, a cedar candle and a vanilla candle has bought three candles, and expects the three-candle price.
Two kinds of offer cover this: mix and match for retail customers and role-based prices for wholesale.
Mix and match
In a mix and match offer, different products in a group count together toward the steps. “Any 3 candles get 10% off, any 5 get 15% off”.
Why it sells
Customers don’t have to decide on a single product. They choose what they like, and the discount rewards the larger basket. It suits ranges of similar products with similar margins: candles, teas, T-shirts, soaps.
How to plan one
- Choose the group. A product category or a tag is simplest. Use a group of products with similar prices and margins.
- Choose the steps. Check the margin for the most expensive and the least expensive product in the group. The discount applies to each at its own price.
- Name it for customers. “Any 3 candles” is clearer than “Candle offer”.
- Say it on the page. Customers should see that mixing is allowed, or they will buy three of one.
Wholesale and roles
A wholesale customer buys in numbers and expects a better price. The simplest way is to give a user role, such as Wholesale, its own steps. Logged-out visitors and retail customers see nothing of it.
Plan the numbers around the way they buy. A wholesale customer who adds 4 of one product and 6 of another should reach the 10-item step, so count their quantities together.
You can also write rules for guests, such as an offer only for logged-out visitors.
When rules meet
A customer can match more than one rule. Decide in advance which one wins.
| Order | What applies |
|---|---|
| 1 | The product’s own table, if it has one |
| 2 | The first rule that matches, from the top |
| 3 | Your shop-wide table |
| 4 | Nothing |
Put the most specific rules first. Discounts shouldn’t stack, so a line gets one offer only.
Things to watch
- Page caches. A banner that depends on the visitor’s role can be cached for everyone. If your host caches full pages, exclude product pages or vary the cache. Cart prices are still worked out correctly.
- Currency switchers. Fixed prices and amounts are in your shop’s currency.
- Scale. Rules are meant for tens, not thousands. Use categories and tags rather than one rule per product.
Doing this with C4D Buy More Save More Pro
The free C4D Buy More Save More counts one product at a time. Pro adds rules for All products, Product categories or Product tags, with Pool quantity to count different products together, and rules by user role, including Guest. It also adds fixed-amount and fixed-price steps and reports. Pro is a yearly licence sold on shop.coffee4dev.com. The examples in this guide, including “wholesale gets 20% from 10 items” and “any 3 candles”, are set out step by step on the Pro page. The plugin is coming to WordPress.org soon. To choose the steps first, read how to choose quantity discount tiers.