A comprehensive database for everything WordPress related.

WPKlik Logo Newsletter

Sign up and receive a free copy of How to Create an online Store with WooCommerce (full guide)

A Comprehensive Guide to WooCommerce Shipping Classes

A Comprehensive Guide to WooCommerce Shipping Classes

Whether online or offline, shopping is usually a joyful experience both for the seller and the customer. When you complete an offline purchase, the process is normally done in the store and you get to see, touch, and take the product home by yourself. But, offline shopping includes one delicate step more before the product gets to the customer’s hands. That step is shipping. Shipping is a vital part of any online purchase and can make a huge difference in the shopping experience. It usually implies extra costs and therefore can even influence the customer’s decision about whether he is buying the product or not. The seller, on the other hand, has to be transparent and straightforward about all the details related to shipping – from prices to methods and everything in between. Luckily, that’s not a challenge if you are using the WooCommerce plugin to create an online store. In this article, we will explain all you need to know about WooCommerce shipping classes in four segments:

Shipping Zones and Shipping Classes in WooCommerce

It is safe to say that shipping zones are the first level of shipping settings. The zone settings are where we adjust the place in terms of the state, the city, and similar, where we as sellers can make the delivery.

Depending on the type of product you are selling, shipping zones may not be enough for you. In that case, you will need to define more details using shipping classes. Let’s take the example of selling clothes. For example, you are a dress designer and you have your own online shop. As for your goods, they will be more or less the same dimensions and you can easily determine the shipping and it will be enough for you to determine only the sales zones. But what if your online store offers things for the house, from spoons to chairs and beds… This means that you have different dimensions available for shipping and logically depending on the dimensions you will want to charge for the shipping.

Since we said that shipping zones link shipping to location, we also need a shipping class to specify the product being shipped. Shipping classes determine more shipping details and do not exist separately from the shipping location. We must first define WooCommerce shipping zones and within them, if necessary, add shipping for specific classes.

How to Create a Shipping Class

The procedure is very simple.

First, we need to create classes for your products. Again, it all depends on your needs, classes can be about size, product confidentiality, fragility… anything that requires some particular type of delivery for which we need to subsequently define the shipping price.

Follow the path – WooCommerce > Settings > Shipping Tab to find Shipping classes and then select Add Shipping class.

How to create a shipping class

We can add as many classes as we want, ie as many as we need. Each class has a name and a slug. The name is required for entry, you can choose any name that you wish. The slug is also obligatory, if we do not assign it, it will be automatically assigned. The description is optional but it is good to enter to note once again what exactly the class refers to. This is especially recommendable if there are a lot of classes.

Shipping class informations

For example, we have added 3 classes that we need.

Our shipping classes

How to Set Up a Rate for WooCommerce Shipping Class

As we have already mentioned, it is necessary to determine the locations where we perform shipping first and then, if necessary, specify the classes and determine a special shipping price for them.

We have already created shipping zones. Now we will add settings for shipping classes within our zones.

Zones are located in this path: Woocommerce > Settings > Shipping > Shipping zones.

Our Shipping zones

It is important to note that the price for the shipping class can only be added when the Flat rate method is valid for the Shipping zone (Other methods are Free shipping and local pickup, so it is logical that classic shipping cannot be charged here).

When you re-enter one of your flat rate shipping zones after adding classes, you will notice that you now have the option to enter the shipping price for each class.

Shipping class cost

Before entering any shipping details, the first choice you have to make is to select the ​​Calculation Type. There are two options:

  • Per Order – The most expensive shipping is paid, not for each class individually but only for the most expensive class.
  • Per Class – Shipping is paid for each class.

If you choose the Per order option, the settings are very simple. After you enter all the different shipping types that we have available when ordering, only the most expensive one will be displayed and later charged.

In some cases this option is perfect, sometimes it is simply not applicable. Sometimes it will suit you better if a customer who buys products from different classes pays the shipping cost for each product, not just for one. In that case, we use the Per Class option.

If you opt for the Per Class option, it is very important to pay attention to the following:

Cost is a field that is by default in the shipping zone and the amount listed there is the mandatory shipping cost that must be paid for that zone. In the event that the order also includes a product from a specially defined class and that special shipping is defined for it, the buyer will have to pay the Cost + Shipping class cost for shipping.

Take the following as an example. The cost for a particular zone is $ 20 and it is defined that a product from the Large shipping class is paid $ 50 for delivery. We have not set values ​​for other classes, so for now, there is no special shipping charge for the product in this zone.

Cost and class cost

If we define Per Class shipping in this way, it means that:

  • A customer who ordered a product that does not belong to the Large class (may belong to another because we did not enter a price for them) pays only $ 20 for shipping.
  • A customer who orders one product that is not from the Large class and one that belongs to the Large class pays $ 70 shipping (Cost + Large shipping class cost)
  • A customer who has ordered only a product from the Large class pays shipping $ 70 (Cost + Large shipping class cost).

So regardless of whether he ordered a product only from the class or some that are not in it, the shipping price is always Cost + Shipping class cost.

No shipping class cost is a great option for products that are not part of the class. It works just like the Cost option, but with the huge difference that the shipping for products outside the class is not added to the final shipping cost if such a product is not purchased.

Let see what it actually means in the example: Cost is 0, Large class cost is 50 and No shipping class cost is 20 dollars.

No shipping class cost

If we define shipping in this way, it means:

  • A customer who ordered a product that does not belong to the Large class (may belong to another because we did not enter a price for other classes) pays only Cost for shipping ($0) + No shipping class cost, a total of $20
  • A customer who orders one product that is not from the Large class and one that belongs to the Large class pays $ 70 shipping (Cost + Large shipping class cost + No shipping class cost)
  • A customer who has ordered only a product from the Large class pays shipping $50 (Cost + Large shipping class cost)

We hope we made it clear now what is the difference between the Cost which always goes into total shipping and No shipping class cost which goes into shipping only when a non-class product is ordered.

Let’s just not forget to mention that the price does not have to be a simple number, we can use different functions to determine the shipping cost.

20 * [qty] – The price here depends on the quantity. 20 is the shipping cost of one item * [qty] multiplied by the quantity. For example, if we have X products from the Large class and we want to calculate shipping for each, we will use this function.

[cost] – shipping cost is calculated based on the total value of the order (subtotal). The shipping cost that we’ve set is calculated * [cost]

[cost] * .10 – shipping is 10% of the total value of the order

Assigning Classes to Products

What is left to do in the end is to define products and their corresponding classes. There are two equally simple ways to do it.

One is to assign a class to each product, of course where needed. We go to the product, then to the shipping tab and this is where we find the Shipping class option.

Product shipping class

The second way does not involve entering the product itself but can be set via the product list.

Product shipping class

In Conclusion

Shipping is a very practical element of online shopping. There’s no need to make a philosophy about it. You just have to put some thought into what type of settings would work best for your customers, and then apply those settings consistently. And of course, make sure your customers are well informed about your shipping methods and costs, this kind of information should not come as a surprise to them.


WordPress perfection at your fingertips.

If you enjoyed this article, feel free to subscribe to our newsletter using the form below. You can also follow us on Facebook and Twitter and subscribe to our YouTube channel for WordPress video tutorials.

Leave a Reply