How to set it up?

You can create a WooCommerce wholesale order form in just a few minutes.

  1. Install and activate WooCommerce Product Table and WooCommerce Wholesale Pro.
  2. Go to the plugin settings pages (WooCommerce → Settings → Products → Product tables and WooCommerce → Settings → Wholesale) and enter your license key for each wholesale plugin. Choose the other settings to set up each plugin according to your requirements.
  3. Choose the ‘Order form’ options on the ‘Layout’ tab of the WooCommerce Wholesale Pro plugin settings:

Now, when a wholesale user logs into their account, they will see the products listed in the WooCommerce wholesale order form:

Normal retail customers will continue to see the default store layouts. (Tip: If you want to use the order form layout for public customers too, then you can enable it throughout your store on the WooCommerce Product Table plugin settings page.)

Bonus tip – Add quick view to your WooCommerce wholesale order form

You can make a wholesale order form even more user-friendly by adding quick view options:

  1. Get WooCommerce Quick View Pro and install and activate it on your WordPress site.
  2. Add your license key to the plugin settings page at WooCommerce → Settings → Products → Quick view. 
  3. Use the settings on this page to control the content of your wholesale quick view lightboxes.
  4. Now go to WooCommerce → Settings → Products → Quick view and change the following options:
    • If you wish to add a quick view column to the table, add quick-view to the list of columns.
    • If you want people to be able to open the lightbox by clicking on a product name, click the ‘Replace all links to product page with quick view’ option near the bottom of the page.
    • If you want the image column to open the quick view too, then you will need to disable the image lightbox option further up the page.

WooCommerce Quick View

Add Quick View lightboxes to your wholesale order form.

Get the Plugin

Other ways to increase your B2B sales

By now, you’ve learned how to set up an effective WooCommerce bulk order form with restricted access for B2B users. That has taken care of the ordering process.

Before we close, it’s worth mentioning some other ways to grow your B2B sales. For example, use email marketing in a way that will appeal specifically to B2B customers. This will convert them from one-time buyers to regular wholesale customers. And as everyone knows, it’s cheaper to retain and existing customer than to recruit a new one – so this is a cost-effective way to bring them back to your wholesale order form over and over again

Adding a custom attribute

Complete Guide: How To Create A WooCommerce Wholesale Order Form

Struggling with how to create a WooCommerce wholesale order form for your store? The normal WooCommerce product pages are good for a lot of things – but wholesale ordering isn’t really one of them.

If you’re looking to create a WooCommerce wholesale order form, you’re likely looking for features like:

  • A list view that lets shoppers order multiple products from a single page.
  • Columns that display important information – like dimensions or other specs.
  • An option to select different quantities and add products to their cart right from that list view.

In this post, I’ll show you how to create a WooCommerce wholesale order form that ticks all those boxes (like the screenshot above). Plus, this method also gives you the flexibility to customize things even further to match your unique needs.

What You’ll Use To Create A WooCommerce Wholesale Order Form

To create a wholesale order form at your WooCommerce site, you can use the WooCommerce Product Table plugin from Barn2 Media. As the name suggests, this plugin lets you create a table from all or some of your WooCommerce products.

In this table, you can:

  • Let users select a specific quantity
  • Show different product variations
  • Let users add products to their cart
  • Control the exact information that displays for each product, including displaying custom fields or attributes

How To Create A WooCommerce Wholesale Order Form

To follow this tutorial, all you need is the WooCommerce Product Table plugin installed and activated at your WooCommerce store.

Once you’ve got that, here’s how to use it to create a WooCommerce wholesale order form at your store.

At a high-level, the process works like this:

  • Configure the plugin’s default settings using a graphic interface
  • Add optional shortcode parameters to control things on a form-by-form basis

Let’s go through the steps…

Step 1: Set Up Styling For Your Order Form

To get started, head to WooCommerce → Settings → Products → Product tables in your WordPress dashboard to configure the plugins’ defaults.

In the Table design section, you can choose how your order form looks:

  • Default – the plugin will pull from your theme’s styles.
  • Custom – lets you enter your own values for borders, backgrounds, etc.

It’s usually easiest to just start with Default – you can always add your own styling later if needed:

Step 2: Choose What Information Displays On Your Order Form

Next, go to the Table content section to control what information displays on your form. The most important setting here is the Columns list.

This setting lets you control the individual columns that appear on your form. For a WooCommerce wholesale order form, you’ll likely want at least columns for:

  • Image
  • Name
  • Short description
  • Price
  • Add to cart button

To display those fields, you just configure it like this, with a comma separating each column:

WooCommerce Product Table also lets you include tons of other information – like product attributes or custom fields. You can read more about all of the options in this help article.

Beyond choosing the columns, you can also configure other functionality like image sizes, description length, etc.

Step 3: Configure Other Smaller Functionality

Below the Table content, you can configure a number of other smaller settings for your form. I recommend you peruse them all because you might find something small that you want (or don’t want).

But two things that I definitely recommend you configure are:

Add to cart column – this lets you configure exactly how the add to cart column functions. For a wholesale store, I recommend that you:

  • Change the Add to cart button drop-down to Checkbox only or Button and checkbox (this makes it easier for people to buy multiple products at once)
  • Check the box for Show quantity selectors in the Add to Cart column (this is necessary to let people buy large quantities)

If you use product variations, you also should configure the Variations drop-down. By choosing show as dropdown list or show as separate columns, you can make sure that your shoppers can choose the variant that’s right for them.

Table controls – if you’re planning to display large numbers of products, you’ll likely want to configure filters and pagination in this section:

Make sure to save your changes when you finish.

Step 4: Choose Which Products To Display And Add Shortcode

Now that you’ve configured all the defaults, all you need to do is add the plugin’s shortcode somewhere on your site to display your WooCommerce wholesale order form.

If you want to display every single product at your store, you can just use the default shortcode:


However, if you only want to display a segment of your products, you’ll need to add a parameter to control which products are part of the form. Just as with columns, WooCommerce Product Table gives you lots of different options to control which products show up on your form. You can use:

  • category – lists products from a specific category (by slug)
  • tag – lists products from a specific tag (by slug)
  • term – lists products from a specific custom taxonomy
  • cf – lists products with a specific custom field value
  • include or exclude – either includes or excludes individual products by their post IDs
  • exclude_category – lets you exclude a specific category.
  • status – lists products with a specific status.
  • Yearmonthday – lists products published in a specific year, month, or day of the month

You can view all of these filtering options in this help article.

For example, to display only products from the Music category, you’d use this shortcode:

[product_table category='music']

Where ‘music’ is the category’s slug.

Once you add the shortcode to the place where you want your wholesale order form to appear, you should see a list of your selected products:

Customers can use the checkbox and quantity selectors to choose which products they want and then add all those products to their cart with a single click. If you chose the Button and checkbox option in the plugin’s settings, customers can also add individual products to their cart by clicking a button. Like this:

If you want to add additional order forms, you can use the shortcode as many times as needed to create unlimited order forms.

Adding custom attribute values

Step 3. Add Variations

To add a variation, go to the Variations section in the Product Data meta box.

Manually Add a Variation

  1. Select Add variation from the dropdown menu, and select Go.

  2. Select attributes for your variation. To change additional data, click the triangle icon to expand the variation.
  3. Edit any available data. The only required field is Regular Price.
  4. Click Save changes.

Creating All Possible Variations

Select Create variations from all attributes to have WooCommerce create every possible combination of variations and click Go:

It will create a new variation for each and every possible combination of variation attributes (max 50 per run). If you have more possible combinations you can run it again.

If you have two attributes – color (with values blue and green) and size (with values large and small) it creates the following variations:

  • Large Blue
  • Large Green
  • Small Blue
  • Small Green

If you later add additional attributes, it may require the variables to be redefined for the variation combinations to work correctly.

Editing Many Variations

If you have more than 15 variations, use the buttons to navigate forward and backward through the list. Each time you navigate to a new set of variations, the previous set is saved. This ensures that all data is saved.

Setting Defaults

Set defaults you prefer on variations. In the example, no default form values were set, so users can pick any color and size right away from the product page.

If you want a certain variation already selected when a user visits the product page, choose the default form values. This also enables the Add to Cart button to appear automatically on variable product pages.

You can only set defaults after at least one variation has been created.

Adding Variation Data

Each variation can have the following properties.


  • Enabled – Enable or disable the variation.
  • Downloadable – If this a downloadable variation.
  • Virtual – If this product isn’t physical or shipped, shipping settings are removed.
  • Regular Price (required) – Set the price for this variation.
  • Sale Price (optional) – Set a price for this variation when on sale.
  • Tax status – Taxable, shipping only, none.
  • Tax class – Tax class for this variation. Useful if you are offering variations spanning different tax bands.
  • Downloadable Files – Shows if Downloadable is selected. Add file(s) for customers to download.
  • Download Limit – Shows if Downloadable is selected. Set how many times a customer can download the file(s). Leave blank for unlimited.
  • Download Expiry – Shows if Downloadable is selected. Set the number of days before a download expires after purchase.

Inventory Management

Inventory for variable products can be managed on product and variation level.

Сhoose how to manage stock by toggling Enable stock management at product level on the Inventory tab:

The following settings are available if you choose to manage stock on a product level:

  • SKU – If you use SKUs, set the SKU or leave blank to use the product’s SKU.
  • Manage Stock? – Tick the box to manage stock at the variation level.
  • Stock Quantity – Shows if Manage Stock is selected. Input the quantity. Stock for the specific variation, or left blank to use the product’s stock settings.
  • Allow Backorders – Choose how to handle backorders.
  • Low stock threshold – Enter a number to be notified.
  • Sold Individually? – Allow only one to be sold in one order. (This setting is used for the product itself. You cannot set a specific variation to only be sold once per order.)

Choosing to manage stock for variations individually allows you to edit the same properties for each variation.

Set Stock Status can be applied to all variations at once to In stock or Out of stock. Bulk-update under Variations:


  • Weight – Weight for the variation, or left blank to use the product’s weight.
  • Dimensions – Height, width and length for the variation, or left blank to use the product’s dimensions.
  • Shipping class – Shipping class can affect shipping. Set this if it differs from the product.

Linked Products

  • Upsells
  • Cross-sells
  • Grouped

If the SKU, weight, dimensions, and stock fields are not set, then it inherits values assigned to the variable product. Price fields must be set per variation.

Add an Image to the Variation

  1. Expand the variation.
  2. Click the blue image placeholder (screenshot).
  3. Select the image you wish to use.
  4. Save.

Bulk Editing

You can bulk-edit variations by selecting the specific piece of data you want from the dropdown. In this example, I want to edit prices for all variations:

What Customers See

On the frontend, when viewing a variable product, the user is presented with dropdown boxes to select variation options. Selecting options will reveal information about the variation, including available stock and price.

If the user tries to click the greyed out add to cart button before choosing an attribute, a message will appear asking them to create some attributes.

In the product archive page, Add to Cart does not display because a variation must first be chosen before adding to cart on the product page.

                global $product;
                if ($product->is_type( 'simple' )) { ?>
                    <p class="price"><?php echo $product->get_price_html(); ?></p>
                <?php } ?>
                if($product->product_type=='variable') {
                    $available_variations = $product->get_available_variations();
                    $variation_id=$available_variations[0]['variation_id']; // Getting the variable id of just the 1st product. You can loop $available_variations to get info about each variation.
                    $variable_product1= new WC_Product_Variation( $variation_id );
                    $regular_price = $variable_product1 ->regular_price;
                    $sales_price = $variable_product1 ->sale_price;
                    echo $regular_price+$sales_price;