Wholesale store

Selling to wholesale or resale customers doesn’t have to be complicated. In this tutorial we will show you how to sell to wholesale customers with WooCommerce.

The goal of these examples is to set up a system for accepting new wholesale customers, assigning them to a specific user role, and allowing them to order from your store.

1. Set Up a Wholesale Terms & Conditions page

The first step to setting up your wholesale program is to define the terms and conditions for wholesale customers. You can create a normal WordPress page to display the terms so that prospective wholesalers can educate themselves on what to expect.

This page can include sections defining the following:

  • How pricing works
  • What pricing do wholesalers get
  • Is there a minimum order
  • How is shipping charged and to whom
  • What payment methods and terms are accepted
  • How to re-order, or set recurring orders
  • Are rush orders accepted and how to order them
  • What happens if products are damaged or have defects
  • How returns and exchanges are handled
  • What kind of marketing materials are provided to wholesalers
  • Any exclusions or limitations
  • This page is also a good place to put links to a product catalogs and your registration form

2. Wholesale Application Form

Next, set up a way for people to apply to join your program. You can use a WordPress forms plugin to add a detailed form to your site. Here are three forms plugins:

The purpose of this form is for a prospective wholesaler to introduce themselves and explain their reasons for wanting to join. Be sure to make the application thorough enough to be able to make a decision about the applicant. Here are some sample questions to include on this application:

  • Business information (Company Name, Contact Name, Address, Email, Phone Number)
  • Legal or Tax information
  • Website
  • Description of their business
  • Trade references
  • How did you find us?
  • Where you sell (online, physical store locations)
  • Other products sold

The application form alone will send the applicants information via an email. A step that will improve the automation of accepting wholesale customers is to have a WordPress user created for each person that submits the form.

To do this in Gravity Forms you can use the User Registration plugin so that a user is automatically created when the form is submitted. Caldera Forms had a Users Add-on for creating users. This saves a step and allows you to automatically set up approved resellers.

3. Assign a User Role

After a wholesaler is approved they can be set up with a specific user role in the store. Each level of wholesaler will need a separate user role defined in WordPress.  This role will be used in the next step to assign pricing and product access.

You can use the User Role Editor plugin to create and manage multiple user roles. A progression of roles could look like this:

  • Applicant – Default role for companies that have applied to be a wholesaler. No access to discount pricing or special products.
  • Wholesale – Approved wholesale accounts. Access to discount pricing and special products.
  • B2B – Approved B2B wholesale accounts.  Access to B2B specific pricing.

Once companies are approved, they can be moved to the appropriate user role to grant pricing and catalog access.

4. Set Up Pricing Discounts

The next step is to assign the pricing discounts for wholesale users.  You can set up the normal catalog of products and use a plugin like WooCommerce Advanced Pricing to set pricing rules that apply to the Wholesale user.  If you need more details on creating pricing rules, check out our docs page. Here are three examples of how the wholesale pricing might be set up.

1. Percentage or fixed discount off the all products in the store

An example of this is to give wholesalers a fixed 50% off the retail price in the store.  Items that are $100 can be purchased for $50.

2. Percentage or fixed discount per product

This is like #1, but would be limited to only certain products in the store.

3. Bulk Pricing

Bulk pricing for wholesalers would offer products at a discount when more quantity is purchased. An example of this is:

  • 1-500 items for $20 each
  • 501 – 1500 items for $15 each
  • 1501 – 5000 items for  $9 each

5. Set Up Label on Products for “Wholesale pricing”

If not all products are available for wholesale pricing, you may want to draw special attention to the ones that are. WooCommerce Advanced Product Labels can be used to add a “Wholesale” label to products that have wholesale pricing and have the label display only to products with a specific tag.

6. Let Them Buy on Terms, or with a PO.

Because they buy in bulk, wholesale customers may have different payment terms. They can be required to pay in full for orders when they are placed, or a plugin like WooCommerce Purchase Order can be used to allow placing an order by supplying a PO number.


That’s it! Those are the only steps needed to get you up and selling to wholesale customers. If you have any questions let us know in the comments below, and here is a list of the plugins we referenced in the article.

1. Forms plugin

Ninja Forms  (free)
Caldera Forms  (free)
Gravity Forms

2. User Role Editor plugin (https://wordpress.org/plugins/user-role-editor/)

3.  WC Advanced Pricing (https://shopplugins.com/plugins/woocommerce-advanced-pricing/)

4. WC Advanced Product Labels (http://www.woothemes.com/products/woocommerce-advanced-product-labels/)

5. WC Purchase Order (http://www.woothemes.com/products/woocommerce-gateway-purchase-order/)

You can find more details on selling to wholesale customers in the following article, How to Create Custom WooCommerce Wholesale Order Packages.

Get our best WooCommerce advice!

Delivered directly to your inbox

Your email is 100% private. We hate spam too. Powered by ConvertKit

Published by Daniel Espinoza

Daniel has been building ecommerce plugins and sites since 2007. He built the first commercial plugin for WooCommerce in 2011 and has built dozens of plugins since.


  1. I need a facility to choose a form by a customer to buy and pay for e.g setup a company. Once payment is received, the online filled-in form or pdf is to be stored in woocommerce and emailed to customer and have the filled in form exported via csv format.

    Is there such a product?

  2. I have a client who wants to have a standard website, focused on increasing brand awareness etc. However, he wants his channel clients to be able to login at the back end and send through their orders.

    I know this sounds like standard e commerce, but in reality they are merely emailing through their requirements which are then manually transferred to their accounting system to raise the invoice and despatch note. Their particular pricing plans are within this system and not the website. Also, no payment is made through the website, they pay by bank transfer the amounts raised by the invoice.

    So, my question is – do I need the WooCommerce plug in to do this or can I get away with the standard WordPress format.

    Oh, the final thing, their product range is less than 10 items.


    • Hi Allan,

      I don’t think you need WooCommerce in this case since you don’t need a product catalog or order transactions. You would probably be good using a forms plugin like Gravity Forms or Ninja Forms to have registered/logged in users fill out their orders. Then that form can be sent to the accounting system to start the workflow.

  3. Hello. I have a situation where I need to:
    1. Allow wholesale customers to see their discounted pricing. (Done! Using a role management and a plugin, but maybe there’s a better option. I am using VarkTech Wholesale Pricing Pro).
    2. I have table rate shipping set up for regular non-wholesale customers. For wholesale, I need a percentage based shipping rate. I’ve got that setup too, but do not know how to make ONLY the one option at checkout based on role (regular vs wholesale). Wholesale should see percentage rate whereas regular customers should see only table rate and tax.
    3. As for tax, wholesale customers should not be taxed at all.

    I’m sort of a wits end trying to find a plugin that takes care of tax and shipping issues. I think I need a function but don’t know woocommerce well enough. I am really surprised that I cannot find an answer somewhere online. I’m sure there must be others out there with the same issue?? Any help is greatly appreciated!

    Thank you!

  4. Hello,

    Thank you for your post, it helps me a lot.
    One question, do you know a free plugin to replace WC Advanced pricing in order to do bulk pricing based on quantity (I have only one product in my shop that uses bulk pricing and my client doesn’t want to pay a plugin to do that).

    Thanks for your advise.

  5. Hi Daniel

    Thanks for this great post!

    Just a quick question. What is the differnce between the WooCommerce Dynamic Pricing Plugin and the WC Advanced Pricing plugin that you sell? I see that yours is cheaper. Does it have less functionality?


    • Hi Jo,

      I haven’t done a feature-to-feature comparison of the two plugins. We set the price of the plugin where we feel it’s a great value for functionality provided.

  6. Hello,

    A client catalog website require wholesale customers to login and be able to see pricing and make purchase. What plug-in do you recommend for this purpose? Also, login account only by approval.

    Thank You

  7. Hi, this article was really helpful. Thankyou. Just wondered how the customer logs in to receive their whole sale prices? they dont log in the same way we do do they?
    Thank you!

  8. Daniel –

    I’m nearly done a hand-rolled woo/wp wholesale solution for a client (which I had seen your page first!), built mostly on Ninja Forms and Booster Plus. One thing that isn’t addressed here (or elsewhere) is: how to restrict displaying products based on role? For example, B2B customers can purchase certain items for their own use, but Wholesale customers should not (based on retail/regional distribution agreements). I’ve found a plugin that claims to do it, but the comment board is full of complaints and their English isn’t so good. Do you know of a solution?

  9. hello thanks for your post, which theme you suggest for this matter?
    i want to see the result web site, could you show me a running website with these materials?
    Thanks in advance

    • Hi Shahram,

      We don’t have this setup on a demo site, nor have a theme to suggest. The functionality we outlined isn’t theme dependent though, so any theme with good WooCommerce support should work.

  10. Good day Daniel,

    Could you please tell me what theme you’d recommend on WordPress to build a wholesale website.

  11. Hi, i have a woocommerce site setup and we need all of the listed products currently on the site to display a 2nd different price per unit, to wholesale customers only (obviously they would ned to be logged in to view the wholesale prices). In a comment above, you stated that your woocommerce-advance-pricing can do this. I’ve followed the link to see more info about the plugin. What isn’t clear to me is how the login part works? Is the login (username and password) part of that plugin and if not, how do the two aspects marry up? for example, we create a username and password for a user, they login and then they can see wholesale pricing that’s only available to them? If using your plugin, what’s the best way / approach to achieve this?

  12. How do you enable business account to have multiple users who can make purchase and track these under one dashboard? How do you register and assign the user to specific business/company?

  13. Hey Daniel. My customer wants to setup a small online store on woo commerce but he wants to use it as both a b2c and b2b portal from the same store. Obviously b2b portal would have discounts and require buyers to apply for approval and b2c would be Orthodox. How do I accommodate this in the same store

    • H Rahul,
      You could use a plugin like our WooCommerce Advanced Pricing to allow b2b customers different pricing and discounts based on an assigned user role.

      • Hi,
        I have the same issue, I have already installed the price based on role plugin, it’s not enough for my boss, he wants different descriptions and attributes based on role.
        Can you help me?

  14. I have a client who currently has WooCommerce Purchase Order Payment Gateway, but this plugin only allows you to either deactivate or activate it – how, based on the information you provided here, do I set up my store so that only “house” accounts have access to the PO field to enter in their PO and all others only get the regular payment options?

  15. HI,

    I have a client who wants to sell plans by using woo commerce via form like User will come and fill up the information, select plan and when user click on submit it’ll automatically add plan to cart and checkout page comes. How?

Comments are closed.