How To Assign Rates To Shipping Classes in Woocommerce Plugin

Aug 6 • Featured, Online Business, Web Design & Dev14 Comments

How To Assign Rates To Shipping Classes in Woocommerce Plugin

One of my clients had me set up his e-commerce site and recently, we ran into a simple issue with woocommerce. It’s a very basic question but I couldn’t readily find an answer to it anywhere – not even on the woocommerce documentation. And as I researched about it, I’ve seen other people posting the same question also.

It’s about setting up the rates or charges that you want to apply for particular shipping classes. Creating shipping classes for your products in woocommerce is very straightforward and the instructions are well laid out in the developer’s documentation. But it is how to assign rates to them that’s very hard to come by.

Most of the answers I found talk about buying the “table rate shipping” extension which costs $199 for a single-site license. I personally find it a big rip-off and an overkill if all you wanted to do is assign a simple flat rate charge for your shipping classes. I mean, think about it – what is the whole point of letting users create shipping classes if you can’t assign rates to them? Is it all so that we will buy the overpriced extension?

Fortunately, after about an hour of browsing through the settings pages in the admin area, I figured it out. This might be nothing to the experienced woocommerce users, but to the first time users of this plugin, this could save you hours of work, research and possibly money. So here’s how to do it:

  1. Let’s start with creating shipping classes. To do that, go to Products >> Shipping Classeshow to assign rates to woocommerce shipping classes step 1
  2. On the Shipping Classes page, create a shipping class just like how you would do it when manually adding categories or tags for your blog posts :how to assign rates to woocommerce shipping classes step 2
  3. Now that you have created a shipping class. We’ll assign it a rate, the amount you want to charge your customers for shipping of products under this shipping class. Go to WooCommerce >> Settings >> Shipping >> Flat Ratehow to assign rates to woocommerce shipping classes step 3
  4. Scroll down to Additional Costs. First select how you want to apply the shipping charge – on a per-item or on a per-order basis; then click the button + Add Cost :how to assign rates to woocommerce shipping classes step 4
  5. After clicking +Add Cost, a new entry (or rule) will be added where you can set how much charges you will apply to particular shipping classes:how to assign rates to woocommerce shipping classes step 5

    Don’t forget to click the Save Changes button when you’re done, to apply the changes.

So.. If you have come to this post and read this far, I’m assuming that you are asking the same question. I hope this post has helped you, saved you time and money by not buying the table rates extension. Of course that extension has additional features, but when you’re just starting out with your online business, setting up your e-commerce site can be very complicated and you just want simple solutions to simple problems like this.

Let us know what you think by leaving a comment below. Also, if you were able to find a better solution, you would make the world a better place by telling us about it below! ;)

Quick snippets about this post
Nimrod Flores
Date Published:
Title / Topic:
How To Assign Rates To Shipping Classes in Woocommerce Plugin

Related Posts

  • Pako Herrera

    Hi Nimrod, correct me if I’m wrong but you’re saying that I can set different shipping prices for an amount of products, let’s say:
    for 1 item i charge $5
    for 5 items I charge $3

    • Nimrod Flores

      That’s not exactly what I’m saying above but I’m sure you can also do that with the basic version of Woocommerce.. just not through the use of shipping classes.

      Shipping classes are like classifications for your products, think something like huge products and tiny products. (for example: bulldozers and needles)

      You create these classifications (shipping classes), then you assign them rates. Then in each of your product listing, you indicate its classification – whether it is a huge product or a tiny product.

      So using shipping classes won’t really be helpful in your case.

      • Pako Herrera

        Hey thanks for your fast reply.
        I see what you’re trying to explain, it’s helpfull but not what i’m lookign for.
        I think I’ll need to use those woo commerce plugins to solve my problem.

        Thanks for your help tho !

  • Bob Cullison

    I would like filter the UPS plugin by shipping class, some things have flat rate, 1/2 ounce and some go UPS 3 1/2 pounds. How ? Bob

    • Nimrod Flores

      Hey Bob,

      You should consult the documentation that came with your UPS plugin. My post above only talks about the proper use of the shipping classes feature that comes with the basic version of Woocommerce.

  • Peter Altuch

    one more question on this matter if we are trying to set up rates based on zip codes in US and weights/measurements can it be done with the UPS plugin. it seems they do not support multiple zip codes for drop shipments. Our suppliers are located throughout the country so distance is a factor. What do I need to set this up?

    • Nimrod Flores

      I haven’t tried the UPS plugin yet. In my post above, I’m only referring to the basic version of Woocommerce, without any additional plugin.

      If you bought the UPS plugin, I’m sure they provide the documentation for using it. Please refer to it for proper usage.

      Further, from what I understand of the UPS plugin, it retrieves data straight from UPS themselves. So I think it’s safe to assume that if UPS provides different rates based on zip codes in the US, you should be able to do that with their plugin.

  • pam

    Hi Nimrod,

    This is a great explanation and this is the way I had my woocommerce site set up. However, my problem is that I need different flat rates.
    For example, most of my products ship with a $14 flat rate, but some other products are bigger and more expensive to ship, so I added additional cost on top of the flat rate and apply it “per product”. My problem is that someone needs lets say 2 of these bigger products, the first product will charge $24 shipping ($14 flat rate + $10 additional cost) and my second product will be $34 ($14 + $10 additional + $10 second product additional) is there any way to have some items to have the flat rate calculated as well on a product base without having to purchase the extension plugin?

    • Nimrod Flores

      Hey Pam,

      Check again step 4 above. When creating your shipping class, for the “Costs added…” option, select “Per Order” so that your customers will be charged only once for shipping even if they order multiple items (provided the items have the same shipping class).

      But if the multiple items have different shipping classes, my solution above will not be applicable for achieving what you want. You’ll have to work out a different shipping arrangement for your items.

  • Sian Thomas

    Hi Nimrod,

    I have followed your very comprehensive instructions but have the following query which I am hoping you can assist with. Having created the new shipping classes, how do you allocate different countries to those classes.

    The classes I want are:
    UK Royal Mail Standard Delivery with free shipping for orders over £20 which I have implemented successfully.

    I want to charge an additional fee for special delivery which I can implement using your method above however the 2 other delivery rates I want to apply is for Southern Ireland and Europe which is one fee and for the rest of the world which is for a higher amount. I have followed your instructions above but the question I have here is how to I assign different countries to each shipping class. Is it something I can do using your method?

    Your soonest help would be much appreciated.


    • Nimrod Flores

      Hey Sian,

      Unfortunately at the time of this writing, what you can do with the free version of the woocommerce plugin does not include that feature you described. You can only add shipping classes and assign rates to those shipping classes. Then they will be applied to all product items which you have assigned the shipping classes to.

      You can’t create different sets of shipping classes for each particular country you are serving. But this doesn’t mean you can’t do it, you just have to buy the plugin extension which has this advanced capability that you need.

      • Sian Thomas

        Thanks for the quick reply, admittedly disappointed in WP (not you) as its another way to part self with cash and was a feature of my previous CMS but will check out the link.

        • Nimrod Flores

          Yeah, I know it sucks.. but let me just correct you a bit, the woocommerce plugin is actually not part of wordpress as a product. Woocommerce is just a plugin for WP created by Woothemes.

          So if we should be disappointed at someone about this, we should be disappointed at Woothemes.

      • Anson Yuhas

        I actually had this same problem. I am in the US but wanted to assign different rates to Canada and eventually Europe. While creating a new product you can only choose one shipping class. After the product is created you can do a bulk edit and apply as many shipping classes as you would like. It looks like you may be only able to create 1 international shipping option but that is better than zero.

« »