WooCommerce shipping classes are a very useful feature which allows you to allocate shipping conditions to specific products. Examples of shipping classes in WooCommerce can include:
- Bulky items. If you’re selling furniture, certain items like a couch or chair may have an excess shipping charge.
- Lightweight items. Conversely, some products may fit in an envelope and not require a box so these can have a specific shipping class with cheaper postage.
- Fragile items. Certain products, say pottery, might be delicate and need bubble wrapping and an extra large box to keep it safe.
- Specific packaging, e.g. poster tubes. You may sell posters or artwork and certain items may need to be dispatched in a poster tube.
On this page
What is the difference between shipping rates and shipping classes?
I’ve seen lots of people confused with this. So a WooCommerce shipping class is just a way of grouping products in the same way. All of your large furniture items can be assigned the shipping class bulky for example. The shipping rate specifies the cost of the class. So all items with the shipping class bulky could have an excess $100 charge. This is the rate.
Adding a shipping class in WooCommerce
Let’s get started. Go to WooCommerce > Settings and click on the Shipping tab at the top. Then click on the Shipping classes link underneath.
Now, enter the same of your shipping class and a slug. If you leave the slug empty it will be automatically filled in for you. I’d recommend adding a description also to make it easier to understand what the class should apply to, especially if you end up creating a number of shipping classes.
Repeat this process for every shipping class you’ll need on your store. Now, let’s start applying this shipping class to your products!
Apply the shipping class to products
Next, let’s apply this new shipping class to a product. Edit the item and within the Shipping tab change the Shipping class dropdown to ‘Bulky’.
If you’d like to add this class to a number of items you can do so from the main Products screen. Tick the products you want to apply the shipping class to and select Edit from the dropdown on the top left – and click Apply. You can then edit the Shipping class value and save.
Need to add WooCommerce Shipping Classes to hundreds of products?
If you have a large WooCommerce site with hundreds of products you’ll need to update, I recommend the PW WooCommerce Bulk Edit plugin. This plugin will make the job of applying a shipping class much quicker.
Setting a Rate for this WooCommerce Shipping Class
Now that we have a class created and applied to a product, we need to set a shipping rate. To keep things simple we’re going to be using flat rates.
- Bulky items will have a $20 flat rate of shipping.
- Everything else will have a flat rate of $5.
First, let’s go to: WooCommerce > Settings and click on the Shipping Tab again. This time we’re going to edit the Shipping zone. For instance, in the example below, we’ve just got one zone, the United States. Hover over that and click the Edit link.
Now, within this zone you’ll see the Shipping methods you’ve set up. We have one method, Flat rate. If you don’t have any you can add one by clicking on the Add shipping method button below. Hover over this and click Edit.
Now, here is where we can add a price next to our bulky shipping class. As per our rates above, we’ll add 5 to the no shipping class cost. The bulky shipping class will be 20. Note that the standard cost is set at 0. If you change it then this number will be also added to your shipping class costs.
Under calculation type you can charge shipping for each class individually. So, if you had one bulky item and one regular item in your cart, the shipping cost would be $25. Or, you can charge on a per order basis and charge based on the most expensive shipping class. If the latter option is selected the shipping cost would be $20 – as the cart contains a bulky item.
Let’s see how this plays out in the cart. We’re using our Shoptimizer WooCommerce theme in the example.
In the example above we have two products in our cart.
- “Polo” – this is a shirt with a standard shipping rate of $5. There is no shipping class applied to this.
- “Stylish chair” – this has the shipping class of bulky added to it – which carries a shipping rate of $20.
You can see on the right, the flat rate has been correctly calculated to be $25. $5 for the polo added to $20 for the chair.
If we had changed the calculation type in the previous step to be based on the most expensive class only – then this shipping charge would be $20.
If you’re using Yoast SEO – noindex the product shipping classes
One slightly unusual aspect of Yoast SEO and WooCommerce shipping classes is that they are treated like a taxonomy. It creates a page associated with each shipping class and by default these are indexed by Google.
In this instance, you wouldn’t typically want information like this to appear in your SERP results. You can ensure they are no indexed and thus removed from Google’s search results via a setting in the Yoast SEO plugin.
Go to Yoast SEO > Search Appearance – and click on the Taxonomies tab at the top. Scroll down until you see product shipping classes and under ‘Show Product shipping classes in search results?‘ – set this to ‘No’, and save.
WooCommerce Shipping Plugins
WooCommerce Advanced Shipping ($18)
If you need to create more complicated shipping rules based on conditions I recommend taking a look at the WooCommerce Advanced Shipping plugin. Created by Dutch developer Jeroen Sormani, it allows you to create conditional logic around almost any ruleset. With a nearly perfect rating from almost 500 reviews the plugin is a perfect combination of great functionality and excellent support.
WooCommerce Table Rate Shipping Pro ($69)
Similarly, the WooCommerce Table Rate Shipping Pro plugin can help you set up rules in order to calculate shipping rates for a combination of conditions. If the cart matches the conditions in the rule, the shipping cost you have defined in that rule is applied. It’s an excellent alternative to the WooCommerce Advanced Shipping plugin.
WooCommerce Advanced Free Shipping (free)
Jeroen also created the extremely popular WooCommerce Advanced Free Shipping plugin. This allows you to setup your own advanced rules to determine when a free shipping rate should be available for your customers.
Additional useful plugins
ELEX WooCommerce DHL Express ($79)
The ELEX WooCommerce DHL Shipping Plugin with Print Label plugin allows store owners to easily access DHL shipping rates and print DHL shipping labels for DHL Express, and DHL eCommerce. They also have a version for USPS if that’s your shipping carrier of choice.
Did I miss anything?
Now, I’d like to hear from you. How are you using WooCommerce Shipping Classes in your store? Is there a great use case we should know about? Let me know by leaving a comment below right now.
I have three shipping methods: Residential, Business, Flat. We sell a variety of products and for many, if it’s residential shipping, it’s a $95 surcharge for LTL. We have a flat rate of 325 for an order of windows. So I set up that flat rate.
On the cart page, it shows all three shipping methods with a radio button for the customer to select which one applies. However, if it’s a flat method with the $325 cost, I want it to default to that as an only option for those orders. They shouldn’t get the choice of residential or business for those.
How can I do that?
For those interested in shipping solutions where you can offer your customers multiple shipping companies (DHL, DPD, UPS, GLS, FedEx etc.) I would say take a look at the Sendcloud website https://www.sendcloud.com
They have a plugin for WooCommerce and integration is really easy. I have been using it for 7 years and am very satisfied. I’m in the EU, so I don’t know what an alternative to Sendcloud would be for outside the EU.