Complete guide: How to sell by weight in WooCommerce

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 might look like in your WooCommerce store:

Keep reading to learn more about each method and how to set it up.

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

How it works

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.

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, then there's a simple method for replacing the standard quantity field with a weight input field. This lets you sell products by weight unit instead of per unit, like this:

How to add decimal quantities to WooCommerce products
A product sold by the kilogram

The great thing about this method is that it also supports decimal quantities, and minimum and maximum quantities. For example, you can allow customers to order coffee in any decimal unit value between 1 and 10kg.

You can do this with the WooCommerce Product Options plugin, which lets you replace the standard quantity field with custom product options. These offer more flexibility, such as the ability to order decimal quantities and display the unit of weight on the product page.

How to add a product weight field to the product page

It's simple to use WooCommerce Product Options to replace the usual quantity picker with a weight field. We've described this step-by-step in our tutorial about How to allow decimal quantity inputs in WooCommerce.

Alternatively, if you want to use it to create more advanced weight and measurement fields, then you might like our article about WooCommerce measurement price calculators.

Bonus: Selling by weight on the main Shop page

The screenshot above shows how pricing by weight looks on the single product page. For even more convenience, you can use WooCommerce Product Options with our other plugin, WooCommerce Product Table. This displays products in a much clearer layout on the main Shop page, like this:

WooCommerce Product Table to sell by weight

This makes it very clear to customers that they are ordering by weight, without having to visit a separate page for each product.

For example, 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. Instead, you can use the product table layout 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 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

Case study: Provenance Meat

Selling by weight 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

Display product variation prices by weight

Whichever of the above methods you use, you need to think carefully about the best way to display prices by weight on your site. If you're selling variable products then the WooCommerce Variation Prices plugin makes this easy.

Normally, WooCommerce displays the price of your variable products as a low-high price range. This can be confusing when you're selling by weight.

The solution is to install the WooCommerce Variation Prices plugin:

  1. After installing the plugin, go to the settings page and select the 'Custom' price format. Enter the required format. For example, you might set it to "$10 per kg" (as in the example screenshot above). This will appear at the top of the product page for your variable products.
  2. I also recommend enabling the 'Update the main price when a variation is selected.' option. This is more user-friendly because when a customer chooses a variation, the exact price will appear above.

The custom variation price format will appear on the single product page, and anywhere else that the variation price range normally appears (e.g. in WooCommerce Product Table if you're using Method 2).

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

In this tutorial, we've looked at several methods for selling by weight in WooCommerce. Read about each one, and choose the combination of plugins that best suits your needs:

  • WooCommerce Bulk Variations - Create a variation for each weight option, and display them in a user-friendly order form on the single product page.
  • WooCommerce Product Options (with or without WooCommerce Product Table) - Replace the standard WooCommerce quantity field with a purpose-built weight field. It supports decimal quantities, min/max quantities and more, making it ideal for selling by weight.

All these plugins come with a full 30-day money back guarantee. Try them out and start selling by weight today!


  1. I think you're missing the problem. If the customer buys 8 ounces of meat we need to accept that order through the credit card but not bill it. When we pack the order we need to change the amount to the actual amount of meat which could be higher or lower then the 8 ounces. Chickens don't produce parts that exact match the 8 ounces.

    • Hi, Terry. Thanks for sharing your insights. To address that, you could consider implementing a custom code solution tailored to handle that unique situation. I hope this clarifies things for you. If you have any further questions about our plugins, please don't hesitate to reach out to us at our Support Center.

  2. Hi! We have a client who wants to sell meat (€/kg). He wants the clients to see the price when they type in their specific weight. So for example, beef at €20/kg (the price is displayed next to the product): the client wants 500 grams so the price automatically changes to €10. Is this only possible with the paying plug-in form method 2? Or is there another possibility? Thanks!

    • Hi Laura, thank you for the comment. As WooCommerce is an extremely popular platform, there is often more than one way to go about doing things. You can have a fully custom solution coded for you (which will most likely be significantly more expensive) or you can use other tools/plugins. When selling by weight, we recommend the methods discussed above. If you have any trouble with the plugins, you can contact our friendly support team. If you have further questions, you can reach us through our Support Center. Cheers!

Please share your thoughts...

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