WooCommerce Dynamic Product Pricing & Discount – The Ultimate Guide



By default, WooCommerce products have fixed price. That means if you want to change the price of a particular product, you need to login and edit the product price. This is where the idea of WooCommerce dynamic product pricing came from. With dynamic pricing, you can set rules so you can offer some flexible pricing structure to your product. Take these cases for example:

  1. You want to encourage your customers to buy more products from your store. For example, if the customer buy one product A they will get another item for free (it doesn’t need to be buy one get one, you can set the rule to buy X get Y and they don’t have to be the same products. For example, you want to create a promotion program that if a customer buy a jacket, they will get a belt for free or 50% discount).
  2. You want to reward customers with large purchase. If they order more than $200 (but less that $300), you’ll give then 10% discount. If they order more than $300, you’ll give them 20% discount.. and so on.
  3. You have variable products and only want to offer discount on a particular variation.
  4. Give the customer discount based on number of product they purchase. For example, buy 10 get 10% discounts, buy 30 get 15% discounts…

Let’s discuss each case and find out you can achieve that with WooCommerce dynamic pricing.

Get WooCommerce dynamic product pricing plugin

To follow along, you need to have WooCommerce dynamic product pricing plugin from WooCommerce.com. You can get it following this link.

Now, let’s go through each case and find out how to do that.

Case one: The classic buy one get one (BOGO)

As the name suggests, you want to give the customers a reward for purchasing a particular product. For example, I have an electronic store that sell smartphones and smartwatches. I want to create a rule that:

If the customers purchase two phones, I’ll give a smartwatch for free.

You can apply this rule to create many kind of creative incentive to encourage your customers to buy more from your store. Here are some examples:

  • Buy one (any number here) shirt, get 50% off socks
  • Buy 2 items, the next item is free…

OK, let’s get back to our example. Here is the list of all products on my store:

all products on store

As you can see, I have one smartphone and three smartwatches. In this example, the rule I’m going to create says: For customers who buy 2 ZTE phones, I’ll give one IYOU smartwatch for free.

Now, let’s go and edit the IYOU watch. Let’s scroll down to the product data section, you’ll see there is a new tab called Dynamic Pricing. Click on that at set the options as following:

setting up dynamic pricing for buy x get one free

Here is the quick explanation of each fields in the picture:

  1. Applies to: This rule applies to everyone. There are two more options, which are Guest and Specific Role. That means you can apply this rule to customers with specific role only. It’s a good option to create a reward to specific group of customers.
  2. Quantity based on: This is the base to calculate the discount. As the rule I mentioned above said: “buy two smartphones will get one smartwatch for free” so count the quantity based on Category and the field #3, I set the category to smartphone.
  3. Product/Variation: You can select to give a specific variation of this product as a reward (if the current product is a variable product).
  4. Rule process mode: There are two modes: Bulk and Special Offer. For buy X get Y free, we are going to use Special Offer.
  5. Date: You can specify the date range that this offer is valid.
  6. Finally, the rule. As you can see, I set the purchase number to 2, the receive number to 1, percentage discount to 100. That means if the customers buy two products from the category I specified in field #3, they will get one product (the one that we are editing) with 100% discount. The repeating is currently set to No. If it is set to yes, that means the customers can buy 4 smartphones and get 2 smartwatches, 6 smartphones and get 3 smartwatches and so on

Now, let’s save the product and make a test purchase of two smartphones and one smartwatch (the IYOU). Sure enough, when go to cart, I see this:

buy 2 get 1 free woocommerce

As you can see, the watch has a 100% discount.

Case two: Offer discount based on cart amount

Now, there is a new scenario. You want to reward customers with large purchases and also encourage them to purchase large quantity. Here is the discount structure based on cart amount:

Order amount$100 to $200$200 to $400More than $400
Discount amount10%20%25%

Now, let’s get this setup.
Under WooCommerce, go to Dynamic pricing:

create discount based on cart total

You can see that there are three tabs. We focus on the first tab in this case, which is Order totals.

So, let’s click on Add pricing group button and setup the rules:

create three tiers rules for cart based discounts

As you can see, the rules are quite straightforward. We create the rule based cart total, applied to everyone and have no specific start and end date. In the table at the bottom, there are something you need to pay attention to:

  1. WooCommerce’s precision is up to cent. That’s why I need to enter 200.01, 400.001. If I entered 201 or 401, if someone buy more than 200 but less than 201, they will not have any discount (same goes with the case of 400 and 401)
  2. In the third rule, as I mentioned at the beginning of this case, we apply a 25% discount on orders > $400. In the max order total, I entered the * (shift + 8) symbol. This is required by the plugin if you don’t have the limit.
  3. You can enter as many rules as you want, simply click on the (+) icon on the right to add more row.

Now, let’s save the rule and make a test purchase.

10% discount on order more than 100 but less than 200

10 percent discount for order more than 100 less than 200

20% discount on order more than 200 and less than 400

10 percent discount on order less than 200

25% discount on order more than 400

25 percent discount on order more than 400


Case 3: Offer dynamic pricing on bulk order

There is a another way to reward your customers is to give discount on large items purchase. For example, you want to implement this discount structure:

Amount purchase10 to 20 items21 to 3031 and more
Amount discountdiscount $5 per itemdiscount $15 per itemdiscount $20 per item

Let’s take my store for example and I want to apply this structure on the ZTE phone. So, I edit the product and go to Product Data -> Dynamic Pricing and add rules like this:

create discount based on number of items purchased

As you can see, this discount is for everyone, based on this product’s quantity (not based on products from other categories as in the first example) and the Rule processing mode in Bulk (instead of Special offer).

I think you have no problem understanding the table at the bottom. Now, save the product and make some test purchases:

No discount for quantity less than 10:

no discount if the quantity is less than 10

If the purchase is more than 10 items, a 5 discount is applied to all products:

each product gets a 5 discount when the items is more than 10 and less than 20

For order from 21 to 30, customer gets a $15 discount on each product:

for order more than 20 and less than 30 user gets 15 discount

Finally, if the customers buy more than 30 items, they will get a 20 discount on each product:

customers get 20 price discount on order more than 30 items

You can easily change the discount type to percentage instead of a fix amount. In addition to these two option, you can also set the product price to an amount. For example, when the customer purchase 10 items, the price is $100, when they purchase 100 items, you may set the price to $50. This is just an example to show you how flexible WooCommerce dynamic product pricing is.


As you can see, with WooCommerce dynamic product pricing, you can create some great offer for your customers to encourage them to buy more products. At the same time, the customers are rewarded for their purchases. It is a win-win situation and any store can apply this to increase more sales and customers’ loyalty. You can get WooCommerce dynamic pricing plugin here to get started.

Click on a star to rate it!

Average rating 4.7 / 5. Vote count: 11

No votes so far! Be the first to rate this post.

Leave a Reply

Your email address will not be published. Required fields are marked *