How To Assign Rates To Shipping Classes in Woocommerce Plugin

Aug 6 • Featured, Online Business, Web Design & Dev40 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
Author:
Nimrod Flores
Date Published:
Title / Topic:
How To Assign Rates To Shipping Classes in Woocommerce Plugin
Rating:
5

Related Posts

  • Eddie C Byrne

    Hello Nimrod, So glad i found this page as i have no more hair to pull out

    Let me explain my site was setup for us and we wanted an eCommerce to
    sell my Glass products. Im left in the lurch about somethings on the
    site which im working around at the moment. But the one problem im
    having trouble with is Shipping

    I sell small items say for instance Christmas decorations and when a
    customer orders one and they add more of the same item to the cart the
    shipping is calculating each item. So say my Snowflake is €5 to buy and
    then €1.50 to ship any item added after this is adding €1.50 to each
    items therefore if someone wants 4 snowflakes the shipping is
    calculating €18 which is way over charging a customer.

    Could you please advise me on how i set it up so that each item will not add the same amount of shipping

    my page is http://www.esglass.ie

  • Carlo

    Hi there! I’d like to know if there is a plugin that can detect the country of the customer and change the price based on his/her current location. The scenario is that 2 distributors from different countries have different prices.
    Thanks.

  • Ae Cho

    Hi great tutorial Nimrod. I am also new to woocommerce. Maybe you can help me with mine :( .. Im doing a local delivery which the flat rate is 6.00 to SM, 9.00 to SS for 1 item purchased. For the 2nd and so on item purchased within SM shall be 2.00 additional & 3.00 for SS. I’ve spent more than 2 days to figure this out but i can only manage to show the flat rate for SM & SS. Thanks a mill!!~ hope to hear from you soon..

  • http://www.eatgafftape.com/ BartNKCMO

    Nimrod,
    I am currently building an e-commerce site for myself using woocommerce and a wootique theme. And like everyone else I find that the woocommerce plugin is a over priced rip off.
    My product vendor will ship free for orders over $100.00 and any order under that amount they will charge $15.00 .
    Is there a way to set up the woocommerce system so that if the person orders a item less than $100.00 the $15.00 shipping fee would be added to the price and if they go over the $100.00 price it would revert to free shipping? example below
    wireless microphone system $395.00 would get free shipping
    hand held microphone $65.00 would have $15.00 shipping charge added unless they ordered more than 1 microphone or added another product which would put them over the base $100.00 order to qualify for free shipping
    I am racking my brain trying to get this set up as it is imperative to my sites function. any and all help would be greatly appreciated as I have pulled all of my hair out of my head as seen in the picture that the lawn mower has nothing left to mow HELP !!!!!!!!

    • http://nimrodflores.com/ Nimrod Flores

      Hey Bart.. yeah it looks like you’re really having trouble. :D

      But if I understood you right, I think your problem can be solved simply by going to
      Woocommerce Settings -> Shipping -> Free Shipping

      and then enabling the free shipping feature and setting a required minimum order amount:

      • http://www.eatgafftape.com/ BartNKCMO

        Ok then how would I assign the 15 fee if it is under that amount ???? Oh and yes that really is my melon lol had it done last year

        • http://nimrodflores.com/ Nimrod Flores

          Well, one way to do that is to follow what I described in the post above. Set a shipping class, assign your items shipping classes and assign prices to your shipping classes.

          • http://www.eatgafftape.com/ BartNKCMO

            So I would set up a free shipping class ? then a class called lets say class a ? for the 15 ? please keep in mind I am very new to this and this is my 1st venture into e-commerce and this is an opportunity for me to stay home and work instead of being on a concert tour bus pushing buttons on a lighting console and watching lights wiggle and change colors lol

          • http://nimrodflores.com/ Nimrod Flores

            Oh.. I see. :) Congrats on taking the leap man! I have kind of a similar story myself.

            Anyway, no, you don’t have to create a shipping class that charges nothing for shipping.

            What you have to do is to create your shipping class(es) and assign them the rates you need AND at the same time also enable the free shipping I described above.

            The free shipping has a condition and it will only apply when that condition is met. In your case, the condition would be the amount of the order.

          • http://www.eatgafftape.com/ BartNKCMO

            Dude you have saved me a huge amount of time I honestly wish I had found you sooner. I tried to send you a message on your contact form but it came up with an error saying to try again later just a FYI.
            Would like to do a quick follow up using that method rather than post in a public forum. Will try the method you described and try the contact form later

          • http://nimrodflores.com/ Nimrod Flores

            Thanks for the heads up! Something may have messed up my contact form. You can just email me directly if you like: contact@nimrodflores.com

          • http://www.eatgafftape.com/ BartNKCMO

            Sending an email now

  • Ilaria

    Thank you so much for this, Nimrod! You saved me the 250£ my developer asked me to implement this easy-but-hidden trick through an additional plugin, not to mention all the hassle and waiting time. What a satisfaction, thank you again for sharing :)

    • http://nimrodflores.com/ Nimrod Flores

      hi Ilaria, I’m glad to know you’ve found my article useful. even after more than a year already since I posted this. :)

  • AMK Custom Cycling

    Hi, Did you figure this out for International Shipping too? It works great for flat rate shipping but International Shipping always uses the ‘Cost’ entered on the International Delivery page and doesn’t add the extra amounts from the classes – or at least I can’t find a way to do it.

    Thanks

    • http://nimrodflores.com/ Nimrod Flores

      I haven’t actually tried doing exactly that, yet. But just thinking about it, I imagine the stuff I described in the above post wouldn’t really be applicable to international shipping.

      Because then, it’s more complicated. You’ll have to set different rates for different shipping classes and for shipping to different countries. For functions like these, I think the “overpriced” extensions will justify its cost already.

      Try looking into other extensions also, like the DHL, Fedex or USPS. I’m sure you’ll find what you want to do in one of those extensions.

      • AMK Custom Cycling

        Thanks. I really just want to have the same flatrate for International Shipping as for domestic but to add extra amounts for diffrent classes, exactly as you explained for flat rate shipping. I will have to explore the plug-ins.

  • Chris Humphrey

    Thank you!!!

    • http://nimrodflores.com/ Nimrod Flores

      You’re welcome! :)

  • Patricia

    Hi Nimrod, thanks so much for posting this. I am relatively new to woo commerce and could not figure this out but one question on google led me to your excellent answer. Much appreciated. Patricia, Ireland

    • http://nimrodflores.com/ Nimrod Flores

      You’re welcome Patricia. Thanks for the kind words. :)

  • Heather

    This has been a life-saver!!! Thanks so much :)

  • Boost Yourmin

    Hi Nimrod, Thanks so much for your article! I was just wondering if you knew of any way to show the customer how the shipping has been calculated?

    • http://nimrodflores.com/ Nimrod Flores

      I’m sure you can indicate it somewhere on your site how you calculate shipping charges. But when the actual amounts are displayed on checkout, only the breakdown can be automatically shown..

      just not sure if there are plugins that can show exactly how the computation is done on a per-transaction basis. Haven’t used one before, usually the breakdown is enough info for most people.

  • 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
    ???

    • http://nimrodflores.com/ 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 !

    • http://www.localbizranking.com.au Chris Vassiliou

      Hi Pako did you get an answer to this issue yet ?

  • Bob Cullison

    Hi,
    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

    • http://nimrodflores.com/ 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?

    • http://nimrodflores.com/ 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?

    • http://nimrodflores.com/ 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.

    Regards
    Sian

    • http://nimrodflores.com/ 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.

        • http://nimrodflores.com/ 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.

« »

You can enter your token in