One of the attractions of WooCommerce is that as well as being free, it’s very easy to setup and start selling products online with. If you are just selling a few products of a similar type then the basic shipping options in WooCommerce should be more than enough to ensure you are able to add the correct amount in costs to your customers’ orders to cover the shipping fees. Google Ads partner helps you to boost your business. A Google ads management agency also knows all the strategies to implement in order to generate more traffic to your site.
However, if your inventory grows, or includes a wide range of products of all shapes and sizes from the start, then you will soon have to delve deeper into the way you can setup varied shipping options in WooCommerce. In this post we will give a quick rundown of the varied shipping options that are included in the core plugin, as well as showing you how you can use the shipping classes feature of WooCommerce to add varied shipping costs to specific products or groups of products in your store. At King City Northway shipping service you will get best transport shipping service.
As the shipping handling properties of this eCommerce toolkit can be greatly enhanced by the extensions available for it, we will also give a quick overview of some of the add-ons which might be able to help you configure the varied shipping options of your store to best suit your product range and the needs of your customers.
WooCommerce Shipping Options
Out of the box, the free WooCommerce plugin gives you a few decent options for defining shipping costs for your WordPress eCommerce store and its products.
As standard the plugin includes these shipping options, each with their own settings to be configured:
- Restrict shipping locations
- Enable flat rate shipping costs
- Enable free shipping
- Enable international delivery
- Enable local delivery
- Enable local pickup
- Create shipping classes
All the above are optional and can be enabled or disabled as per the requirements of your store.
Setting Shipping Costs According to Shipping Class
One option for setting up shipping charges for individual or groups of products in your online store is to use the Shipping Classes feature of WooCommerce. This is included in the standard version of the plugin so it doesn’t require the purchase and installation of an extension.
By using Shipping Classes you can create a class and then set a shipping cost for that class. Once this is done, you can then apply that class to any products to which that shipping cost applies to.
An example of this could be a shipping class titled ‘large products’ with a set shipping cost. The class would then be applied to each product that would incur this shipping cost when being purchased. If you ever need to change the cost, you can change it via the shipping class, which will then see that change applied to all products in that class.
To give you a better idea of how this feature works and to help you apply it to your eCommerce store, here is a quick walkthrough covering how to use shipping classes and charges with the core WooCommerce plugin.
From the admin dashboard of your site, click on the Products menu and then click on Shipping Classes.
Then from the Shipping Classes screen, enter a name for your class and then hit the ‘Add New Shipping Class’ button. As you will most likely be creating multiple shipping classes, give each of them a descriptive name so you can tell them apart when assigning them to products.
Now we need to go back into the WooCommerce settings and then click on the Shipping tab, and then on the Flat Rate sub-page.
If you scroll down the page until you get to the Additional Costs section and then click on the ‘Add Cost’ button, you can then enter a shipping cost for each of the shipping classes you created earlier.
When setting these costs you have three options for how they are applied:
- Per Order: shipping charge applied to the entire order as a whole
- Per Item: shipping charge applied to each item in the order individually
- Per Class: charge shipping for each shipping class in an order
Once you’ve entered the cost for each class, you can then hit the ‘Save changes’ button.
Now when you create a new product or edit an existing one, you can apply one of these shipping classes to it, and then when a customer checks out, the cost will be applied to their total bill.
Advanced Shipping Options
The above is a quick and easy way to apply different shipping costs to products according to what shipping class you have assigned them to. However, it’s still a fairly basic way of determining how much to charge users for having their purchased items shipped to them.
If you want to get more advanced with how you assign shipping costs to individual items and orders, there are a number of extensions available for WooCommerce to give you more options:
- Table Rate Shipping: highly customizable shipping options
- UPS Shipping Method: calculate quotes to ship with UPS
- USPS Shipping Method: calculate quotes to ship with USPS, including a box packing tool
- FedEx Shipping Method: calculate quotes to ship with FedEx
- Shipping to Multiple Addresses
- Shipment Tracking: provide customers with a way to track their shipments
To view all the shipping extensions available for WooCommerce visit the plugin homepage.
For those starting out with a small eCommerce store the core shipping features of the WooCommerce plugin should be enough for you to get started, however as your inventory and customer base grows, you may need to turn to one of the premium extensions, or even a WordPress developer who can provide you with a custom solution to match your specific needs.
This can be especially true if your products vary considerably in size and weight, and you have customers from around the world, requiring shipping to many different locations.
If you want to discuss any issues related to shipping or other features of an online store, then please get in touch to discuss your needs.
Wondering if you could point me in the right direction.
I am trying to limit a products ‘purchaseability’ based on region.
Drew Poland says
I don’t know of anything off the shelf like a plugin that could be configured, but if you’re a developer this looks like a good starting point: http://stackoverflow.com/questions/21354964/woocommerce-restrict-product-download-by-country-or-region
Coming from 3dcart, I’ve been very disappointed in the shipping options thru woocommerce.
I have specific products that need to be available for local pickup, delivery and flat rate shipping. But delivery is an all or nothing – it’s either available for all products or none. But only some of my products can be delivered. And it can’t be contained by zip code – it needs to be limited by product.
Woocommerce has some great flexibility. But it’s still way far behind other carts like 3dcart.
I’ve had to spend $900 so far on a developer to get basic features.
Drew Poland says
Looks like 3dCart is an all-in-one solution, rather than a WordPress plugin. So these are wildly different.
It’s not going to fit perfectly for everyone of course. Sounds like Local Pickup plugin ($79) would do what you need. There are also a few plugins to extend your shipping options.
Thanks for this article Drew. I don’t set up too many of these carts and your explanation helped me finally “get it”. (:
Drew Poland says
Glad you liked it, Lena! :)
Is it possible to set up a free shipping method for products over lets say over $100.00 and if a product under 100 there would be a $15 charge for shipping using the basic shipping module in woocommerce?
I am racking my brain over this trying to figure out shipping.
Any step by step procedures to accomplish this would be greatly appreciated.
Drew Poland says
Sorry for the slow reply, just saw your comment.
You can setup free shipping to trigger by setting a minimum amount spent. See here: http://docs.woothemes.com/document/free-shipping/
Then just setup a flat-fee shipping cost for anything under $100.
Michael Ash says
We represent in multiple projects over 20 artists around the world. They all ship our print orders from different locations.
Do you know a method or plug-in to set multiple shipping origins?
And then having them applied to any order based on where the products are being shipped from. We would need of course rates applied appropriate to the artist for a single vendor order, or calculated from multiple sources for a multi-artist order.
I am looking at shipping classes, but have yet to come across a method to apply this to any shipping calculations. Appreciate any tips or solutions you may be able to suggest!
Drew Poland says
Unfortunately I don’t think theres anything out of box or in plugin form that will do what you’re looking for. I know there were previously talks about building this type of functionality but not sure it gained any traction.
One way you might consider is Vendor Stores, when products get added to a cart it should break up shipping based on each seller shipping origin. I haven’t used this plugin so I’m not 100% – but it should get you going and in the right direction.
We are trying to correct some shipping issues with our site and one of the challenges we are facing is this: Assume there are three types of products that each have a shipping class assigned to them that has a flat cost i.e.
Products a,b and c ship weigh under 1 lbs each and shipping cost is for any item under 1 lbs is $10
Product d weighs 9 lbs and anything over 1 and under 10 lbs can ship for $15
Products e and f weigh 16 and 19 lbs respectively and anything over 10 but under 20 lbs can ship for $20
I have selected shipping by class and if a buyer orders one product from each class (eg. one a, one d and one f) it – correctly – calculates the shipping to be $10 + $15 + $20 = $45.
But if a second product of the same class is added to the order e.g. two of a or one a and one b, the total shipping remains $45.
What we need to happen is to either add one more shipping cost of the class of the additional product or – if the weight takes the products to the next weight class – change the shipping cost to that class (the second option is better but I would be happy with the first one too).
Any ideas if I can do that in WC directly or through some plugin?
Thanks for your help.