Complete guide: How to sell by weight in WooCommerce

August 7, 2020 6 comments

As an online business owner, there are many scenarios where you might need to sell products by weight in WooCommerce. For example, you might sell fruits and vegetables from your farm, purchase dry fruits and nuts in bulk for resale, or grow various herbs to sell by weight through your online store.

The only problem is that it’s not immediately obvious how to use WooCommerce to sell by weight. The good news is that, with the right WooCommerce plugins, you can easily start selling products by weight.

In this article, we’ll walk you through two different ways to use WooCommerce to list products in a way that allows you to sell by weight. The methods we cover in this tutorial work equally well if you’re selling by other units of measure such as volume, size, width, length, or dimensions.

Why you might need to sell by weight in WooCommerce

There are several different types of products that store owners typically sell by weight. Here are a few examples:

  • Fruits
  • Vegetables
  • Dry fruits
  • Nuts
  • Flour, lentils, and beans
  • Meat

Store owners set the products up in a way that each product has a price per unit weight. For example, this could be in grams, ounces, or pounds. Customers can simply select the number of, say, grams they’d like to purchase of the product and proceed to checkout to place their order.

As an e-commerce store owner, you can sell by weight in WooCommerce with the right combination of plugins.

Two ways to sell by weight in WooCommerce

There are two different ways to sell by weight in WooCommerce:

  1. Add weight options as product variations
  2. Price your products by weight

If you choose Method 1, you can add each weight option as a separate variation. This is particularly useful for store owners that sell items at different weight quantities. For example, if you have three different weight options – 500 grams, 1 kilogram, and 5 kilograms. You would add products as variable products in WooCommerce.

Alternatively, you can go with Method 2 if you’d rather price your products by weight. For example, if you want to sell different types of flour by the kilogram, you could simply add your product prices by weight instead of selling in units.

Here’s what each option would look like in your WooCommerce store:

Method #1: Add weight options as variations

You can use the WooCommerce Bulk Variations plugin to add each weight option as a product variation. The plugin lets you list all the variations in a matrix layout directly on the single product page.

This way, customers can enter the required quantity of each option and get the exact amount they want. They can mix and match multiple variations to get the weight volume they require.

For example, let’s say you’d like to sell sweets online. You might set up the following weight options as variations to sell by weight in WooCommerce:

  • 500 grams
  • 1 kilogram
  • 2 kilograms

So, if a customer would like to purchase 1.5 kilograms of sweets, they could add the 500 grams variation and the 1-kilogram variation to their shopping cart at the same time and proceed to the checkout page. In this way, the plugin supports custom weight measurements.

WooCommerce Bulk Variations price matrix

To implement this using the WooCommerce Bulk Variations plugin, create a WooCommerce product with two attributes that will be used for variations. For example, in the case of sweets, this may be flavor and weight.

On the front-end, the WooCommerce Bulk Variations plugin will automatically display the variations along two dimensions in the price matrix, along with the different available weight options. This gives customers full flexibility to customize their orders.

WooCommerce Bulk Variations
Sell more products with a user-friendly bulk variations grid or price matrix.

Once you’ve entered the correct information for each variation, go to Product data →Bulk Variations and configure the following settings:

WooCommerce Bulk Variations settings
  • Make sure the Enable variations grid checkbox is ticked.
  • Set the Horizontal option to the attribute you want to display in columns for the variations grid.
  • Set the Vertical option to the attribute you want to display in rows for the variations grid.
  • Make sure the Display variation images checkbox is ticked.

Click the Publish button to proceed.

Method #2: Price your products by weight

If you want to sell by weight in WooCommerce, you can also price your products by weight unit instead of per unit. For example, if you’re selling by the kilogram, the basic item price for a single product would be the price per kilogram:

WooCommerce Product Table to sell by weight

So, if you were selling different types of flours, you might price them as:

  • All-purpose flour for $5.00
  • Cake flour for $6.50
  • Bread flour for $6.50
  • Whole-wheat flour for $8.00
  • Buckwheat flour for $8.50
  • Gluten-free flour for $10.00

You wouldn’t want to do this with the default WooCommerce store layout because it wouldn’t be clear that you are selling by weight. One way to solve this problem by listing the products with the WooCommerce Product Table plugin. You can choose to display whichever columns you’d like in the table such as product image, name, description, category, and product price (clearly labelled as the price by weight).

WooCommerce Product Table
The easiest and most flexible way to sell by weight in WooCommerce.

This WordPress plugin lets you rename the column headers to increase usability. So, you can easily rename the heading of the Price column to say Price (per kilogram) or something similar. This way, customers can easily compare products in the table layout, knowing that they need to select the quantity according to the required weight.

WooCommerce Product Table column settings

Sell by weight with decimal point values

There are two ways to sell by step values i.e. fractions of a kilogram such as 1.5 kilograms, using the WooCommerce Product Table plugin. You can either:

  • Install the free Product Quantity Control for WooCommerce plugin on your website.
  • Set your prices in smaller measures (such as per gram instead of per kilogram). Following our example, customers would then need to enter 1,500 to order 1.5 kilograms.

This is particularly useful if you’re selling meat. It gives customers full flexibility to place orders based on the exact amount they’d like to purchase whether it’s 1.5 kilograms or 1.675 kilograms. Here’s an example of how Provenance Meat uses WooCommerce Product Table:

Provenance Meat WooCommerce food order form

Can I sell some products by unit and others by weight in WooCommerce?

Yes, this is entirely possible using either of the above-mentioned methods to sell by weight in WooCommerce. However, keep in mind that it is important to make it clear to customers what type of unit each product is being sold in.

For example, if you’re using Method 1, you should include the unit (e.g. 500 grams) in the attribute name so it appears in the front-end matrix layout. And, if you’re using Method 2, you should use different product tables for products that you sell by unit and those that you sell by weight. That way, you can rename the Price column accordingly in each table.

Start selling WooCommerce products by weight

Depending on the types of products you’re selling and the weight options you’d like to offer, you can either use the WooCommerce Bulk Variations plugin or the WooCommerce Product Table plugin to sell by weight in WooCommerce.

WooCommerce Bulk Variations
Sell more products with a user-friendly bulk variations grid or price matrix.

Both WordPress plugins give you control over how you’d like to sell items and are incredibly intuitive and easy-to-use on the front-end.

WooCommerce Product Table
The easiest and most flexible way to sell by weight in WooCommerce.

Get WooCommerce Bulk Variations or WooCommerce Product Table and start selling by weight in WooCommerce today!

Maria Ansari

From C++ to PHP, the language Maria thinks in is code, and translates it to English for humans to understand. She has a degree in Computer Science and is the writer of choice for many organizations. She is also The Big Boss at BloggInc., calling all the shots and personally supervising every word and piece of content.


  1. Juan Saenz
    October 21, 2020 Reply

    Hi. I sell meat products, and same products have diferent weights. I sell by $/lb showing an average weight for each product, and showing the price in $/lb. I would like to charge the client for the real weight after selecting the products for the order. Can you tell me please if I can do it from Woocommerce?

    • Edge
      October 21, 2020 Reply

      Hello, Juan. Thanks for asking.

      For your use case, I suggest that you use a request a quote plugin rather than taking orders directly in WooCommerce. Please see our detailed tutorial that shows you how you can create product tables with WooCommerce Add to Quote buttons instead of add to cart links - Build a product table with WooCommerce add to quote buttons.

      I hope this helps. Should you have any other questions, you can also get in touch with us via our dedicated Support Center. Thanks!

  2. David Dunlop
    June 12, 2020 Reply

    Thanks for the article - really useful. I have a client wanting to sell meat - they would like to sell some items in weight (variables in kg) and some normally (by quantity), but they also want to manage stock control. Is this possible with the weight option? ie they would set their stock level at 100kg on a specific product - once the level gets to 2kg, they would get notified that stock is low - is this possible in any of the recommended plugins? Thanks

    • Jae Narra
      June 23, 2020 Reply

      Hi David,

      I'm glad you found this article helpful.

      You can do this directly in the WooCommerce menu by enabling the Notifications in your shop’s inventory options. To do this, go to WooCommerce > Settings > Products > Inventory. Please see: Inventory Options.

      Should you have any other questions/concerns, kindly fill up a form at our Support Center so we can get back to you much sooner.

  3. Stefano
    June 11, 2020 Reply

    How discounts are managed? If i want to sell 100 gr at 1€ and 1Kg at 8€? Is it possible?

Please share your thoughts...

Your email address will not be published.