Editor’s Note: This is a guest post from Daniel Espinoza, solopreneur, WooCommerce expert, Magento & WooCommerce plugin developer, and future nomad.

WooCommerce Dynamic Pricing is one of our favorite plugins, since it allows you to set bulk-discounts, category discounts, pricing based on user roles (great for wholesalers), and more. Daniel agreed to give us a tutorial on how to use the Dynamic Pricing extension for the many people that are looking for this functionality in their WooCommerce stores, and provides some excellent advice on possible uses for the plugin.

WooCommerce adds the ability to sell products to a site running WordPress and covers all of the basic eCommerce functionality, including catalog management, shipping, payment processing, and handling orders. Out-of-the box products in WooCommerce can have two prices: Regular Price and a Sale Price. Products without either of these two prices can not be purchased, and products with a Sale Price defined will use it for charging customers. While these two price options suit the needs for the majority of sellers, other store owners may need the ability to have a more complex pricing structure for their products.

As an example, what if the seller wants to offer a lower per-item price when five or more of an item are purchased? Or, what if one product gets discounted if a certain quantity of another product is purchased? An even more common example would be if a store owner needs to offer wholesale pricing for a certain user group.

With the WooCommerce Dynamic Pricing plugin a store owner can do all of these pricing scenarios and more. WooCommerce Dynamic Pricing was developed by Lucas Stark, an expert web developer who has authored several premium WooCommerce plugins, and is available for $129 for single-site licenses. In this review we will discuss three pricing scenarios that WooCommerce Dynamic Pricing plugin makes possible.

Scenario One – Quantity Pricing

Imagine that you sell specialty roofing nails to customers across the country. You’re able to sell single boxes, but you really want to draw commercial customers who will be purchasing boxes in bulk. To entice these larger orders, you could to offer bulk pricing as the number of boxes go up. The base price of one box is $25, but you will discount that price $5 for every 10 boxes purchased up to 30 boxes.

Here’s how you can implement this pricing scenario with WooCommerce Dynamic Pricing.

  1. Purchase and install the plugin from WooThemes
  2. Add the roofing nails product with the required title, description, and product data:

    Sell with WP | Adding a WooCommerce Dynamic Pricing Product

    Adding a Dynamic Pricing Product

  3. In the “Product Data” box, click on the Dynamic Pricing tab and add a Pricing Group. For this pricing group, you can use these settings:
    • Applies to: This dynamic pricing is available to all customers, so leave this set to ‘Everyone’
    • Quantities based on: We will calculate based on the quantity of boxes so set this to ‘Product Quantity’
    • Rule processing mode: Leave this set to ‘Bulk’, as this pricing applies only to this product.
    • Dates: This pricing will be available at all times and won’t be tied to a specific promotion, so the dates can be left blank.
    • Minimum and Maximum Quantity: Our price discounts will follow the following price structure:
      1 – 9 $25
      10 – 19 $20
      20 – 29 $15
      30 and up $10

      Note: Quantities from 1 to 9 boxes will use the defined Regular Price so we don’t need to enter a row for this pricing into the pricing group.

      Quantities of 10 to 19 boxes will reduce the price per box to $20. Quantities of 20 to 29 boxes will reduce the price per box to $15, and 30 on up will reduce the price to $10.

This is what it should look like when we’re done configuring this table:

WooCommerce Dynamic Pricing Table Discounts | Sell with WP

Dynamic Pricing Table – Discount setup

When one box is purchased the price is $25:

WooCommerce Dynamic Pricing - Regular Price | Sell with WP

Regular Pricing for Item

And when 30 boxes are purchased the price is discounted to $10:

WooCommerce Dynamic Pricing quantity price reduction | Sell with WP

Dynamic Pricing Quantity Reduction

We’ve also posted a screencast of how to achieve this if you’d like to walk through the setup instead:


Scenario Two – Category Pricing

In the second example of Dynamic Pricing, we’re going to talk about category pricing. When you’re a retailer, you may find yourself in the position of wanting to offer a discount on not just one product, but an entire category. Perhaps you are a men’s clothing retailer and you want to run a sale on the entire stock of hoodies. Or, it may be the end of a season and you need to discount all of the swimsuits you have in stock. WooCommerce Dynamic Pricing makes it easy to discount an entire category of products.

Here are the steps to discount an entire category.

  1. If you followed step one of this article you’ve already got WC Dynamic Pricing purchased and installed. If not you can buy it here.
  2. Once your products are loaded and ready to discount, you can log into the WordPress admin and hover over the WooCommerce menu, then click on Dynamic Pricing.
  3. Click on the “Category” tab and you will see a list of categories in the store.

    Dynamic Pricing category list

    Dynamic Pricing category list

  4. Find the category to be discounted and in the same row, click the “Enabled” button so it changes to “Yes”.
  5. The “Type” dropdown is where you can chose what type of discount is to be applied to this category. “Price Discount” will reduce the product’s price by a fixed amount. “Percentage Discount” will reduce the price by a percent of the product’s Regular Price. Select Percentage Discount.
  6. In the “Amount” field, you can add the percentage to discount. Add “25” without decimals or percentage signs.

    Example of discounted category

    Example of discounted category

  7. Save the settings by pressing “Save Changes”.
  8. Navigate to a product page and you’ll see the regular price of the product with a strikethrough on it and the reduced price displayed next to it.

Box of Galvanized Smooth Nails | WooCommerce Test

That’s it! Now you can quickly and easily apply discounts to an entire category of products. Want to view this setup as a tutorial instead? Check this screencast out:


Scenario Three – Membership Pricing

The final scenario that we’ll be showing today is the membership pricing feature of WooCommerce Dynamic Pricing. Many retailers offer different pricing for different groups of users. There may be a retail and wholesale division, or a store may offer certain customers ‘family and friends’ pricing.

The WordPress Codex states:

WordPress uses a concept of Roles, designed to give the site owner the ability to control what users can and cannot do within the site.

WooCommerce Dynamic Pricing uses the defined Roles of WordPress as a way to offer different pricing to a subset of customers. Here are steps to add a role of “Wholesalers” and offer them prices that are 50% off of the regular pricing:

  1. If you followed step one of this article, you’ve already got WC Dynamic Pricing purchased and installed.
  2. WordPress comes with six pre-defined roles, but for this example we’ll be creating a custom role. To do this, you can use a free plugin like User Role Editor or Groups. I’ll walk you through using User Role Editor.

    User Role Editor plugin

    User Role Editor plugin

  3. Once you’ve installed and activated User Role Editor (or a plugin or your choice), go to the WordPress admin. Hover over “Users” and click User Role Editor.

    Adding a role to your site

    Adding a role to your site

  4. Press the “Add Role” button and in the Role name field enter “wholesale”; in the Display Role Name field enter “Wholesale”. Click “Add Role”.

    Add a Wholesale role

    Add a Wholesale role

  5. Now go to Users and press “Add New”.
  6. Enter the required data for the new user and then set the Role to “Wholesale”.

    Setting user to newly created role

    Setting user to newly created role

  7. Now, to setup our wholesale pricing hover over WooCommerce and press Dynamic Pricing, then press the “Roles” tab. Here you will see a list of defined roles and Wholesale will be in the list.
  8. Click on the “Enabled” switch to turn it to Yes.
  9. Then set the Type of discount to “Percentage Discount”.
  10. In the amount field enter “50” and press Save Changes.

    Role based discounts

    Role based discounts

  11. Login to the site as your newly created Wholesale user and navigate to a product.
  12. You’ll see that the prices are now half of the defined regular price!
Wholesale pricing on a product

Wholesale pricing on a product

Finally, we’ve also included a screencast of how to achieve membership pricing that follows the steps above:



WooCommerce Dynamic Pricing is a powerful plugin that will help solve store owners’ complex pricing requirements. The plugin has capabilities beyond what we’ve shown here so check the plugin documentation to see everything this plugin has to offer.

Note: This post may contain affiliate links, which means we get a commission from the plugin, theme, or service provider if you choose to purchase. Regardless of this, we are committed to providing high quality, unbiased resources. Have more questions? See our affiliate policy. You can use the plain links below if you prefer that we not receive a referral commission:

Posted by Daniel Espinoza

Daniel is a Digital Tentmaker and Web Developer. He blogs about being a Solopreneuer at daniel.gd and digital tentmaking at Life With A Mission. You can check out his products and work at GrowDevelopment, where he builds add-ons for WooCommerce, Magento, EDD, and more.


  1. I have the dynamic pricing plugin…currently deactivated til I find a solution… the owner wants tiered leveled percentage discounts applied to the cart – ex: orders $50 to 150 get 5% off, 150 to 250 get 10% and so on. The plugin works great for this, discounts applied per group in the cart automatically. The problem is that the owner wants a line showing the original price and the discounted price – the items are stamps so they can have all the same info with original price being the only differentiator so he needs to see the original price in the order list. Any ideas?

  2. Hi Jill, probably the best way to do this would be to request it from WooThemes support – I’m surprised that this isn’t in the core plugin already, as I’m sure there are other users require the original price in the order. If they won’t add this, then it can be done, but will require some custom code.

  3. Jill,

    Can you submit a support request with WooThemes outlining the details of the feature you would like to have added? I’m currently in a development cycle for Dynamic Pricing and am looking for features which should be added.

  4. Darius Kiaulakis June 15, 2014 at 2:39 am

    Good day,
    Is it possible to have two pricing (not based on precentage)? I mean to have another pricing for partners and each product could have individual “lower” price? Thanks.

    1. Hi there, you can assign user roles to the people you’d like to see different pricing, then assign pricing to anyone in that role. See here: https://www.sellwithwp.com/woocommerce-dynamic-pricing-review/#membership-pricing

      1. Darius Kiaulakis June 15, 2014 at 3:14 pm

        Ok, then what types of discount are possible? From your example visible only percentage.. Thanks.

        1. There’s a list here of discount types based on which form of discount you’re using.

  5. Darius Kiaulakis June 16, 2014 at 2:52 am

    I saw this page, so thought you can provide more info. I see that this plugin is based on discounts. I’ve asked about separate pricing for all products for particular user groups.

    I believe it should be possible to have few prices, but it shouldn’t be as discount. It should be as lower prices for users who belongs to “other pricing groups”.

    1. Yes you can use Dynamic Pricing to configure different pricing groups for different roles. You can configure this globally, such as Gold Members have products priced 10% below everyone else, or on a per product basic.

      When using it on a per product basis you can configure a fixed price which is different from the standard WooCommerce price for various roles.

  6. Hi

    This plugin seems to be close to 100% of what i need.

    I want to set a global pricing scheme for my site.

    e.g. $0 to $100 – add 20%
    $101 to $500 – add 15%
    $501 to $100 – add 10% etc. etc.

    I upload Products from XML feeds. Currently i have to download the feed from my supplier’s site, modify the prices, reupload it on to my own site, then run it into my store to update pricing.

    Could this plugin be used to create a global pricing scheme or is it something else i am looking for? i am at the point of giving up.

    I want to run cron jobs, but i cant if i have to edit everything before i have to run it 🙁

    Thanks in advance for literally any help.

    1. Hey Chris, I don’t think Dynamic Pricing is what you’re looking for unfortunately. You can set pricing rules based on quantity or category, but not on product price. Even if you do, the original price will be displayed so it will look pretty odd when the “Discount / sale” price is higher.

      What if you just upload the products, sort by price, then do a bulk price change? It’s a bit manual, but you can bulk-edit prices to add 20%, 15% etc and sorting by price will make it easier to simply select all of the products you need to edit based on price. You could also have a custom plugin built to automate this when products are imported.

  7. I sell t shirts and am trying to find a solution to the issue of sizes. So dynamic pricing gives me the qty breaks but within 25 shirts, i may have 5 large, 10 medium and 10 small. Any ideas? I also want to be able to have my customers upload an image for any of my products, not just t shirts. any help is appreciated.

    1. I’d recommend Product Add-ons to allow image uploads. As for the sizing thing, not sure what you’re asking – are you trying to set up quantity rules that apply to 25 shirts, regardless of variations? You can use the “Product Quantity” rule. If it should only apply to the number of a size, i.e., 25+ smalls, use the “Variation Quantity” rule.

  8. Great post and much needed – but I have an issue that I can’t figure out and need your expertise:

    I need to apply 2 different percentage discounts to categories and have it apply for additional products only, ex:
    “Receive 10% off when purchasing any additional widget, and 20% off any gear in addition to your selected widget”

    So the first ‘widget’ would be regular price and any additional ‘widget’ they buy would get a 10% discount – and if they added any ‘gear’ to their ‘widget’ order it would show a 20% discount in the cart.

    Please be as detailed as you can on how to set this up. I think many others would find this useful as well.
    Thanks in advance.

  9. Hi, My client scenario is this: He has the same catalogue of products in 3 different warehouses. For each warehouse the product price is slightly different. Using user roles (warehouse1, warehouse2, warehouse3) can I use Dynamic Pricing to set EACH product to show a unique PRICE per logged in user based on the role?
    At the same time, will non-logged in users be able to see a “generic” price?

    1. Hey Helen, if I’m understanding this correctly, then yep, Dynamic Pricing should do this for you. To confirm: warehouse customers are assigned a particular “warehouse”. When they’re logged in, they should see the price for their warehouse. For non-logged in customers, they should see the “non-warehouse” price. If this is correct, you can definitely do it — our article on creating wholesale systems should help you out.

  10. I too am stuck with the Dynamic Pricing, I don’t quite understand it. Am I correct in assuming that the quantity breaks are only shown once the customer has decided to buy the goods and add them to the cart?

    1. Correct, pricing changes are shown in the cart, as they can be pretty complex with Dynamic Pricing. We have a tutorial on showing them on the page conditionally.

  11. Hi, I wonder for this WooCommerce Dynamic Pricing, can it do it for the case below?
    “a product which cost $200 originally will only cost $100 if the total sales count target, lets say 200 units being achieved within a time-frame. thanks

  12. I need something that i can use with dynamic pricing to allow my customers to see the price on the product page.

Comments are closed.