You’ve already followed my earlier tutorials on how to set up WooCommerce and integrate WooCommerce payments into your store. Now it’s time to explore shipping for physical goods. Strictly speaking, you can manage shipping entirely outside WooCommerce, but why would you want to? WooCommerce allows you to easily create shipping zones, classes, and labels, allowing you to specify the shipping weight and dimensions. Here’s how to get started.
Default WooCommerce Shipping Zones
When dealing with shipping, the first priority is to decide on the countries and areas to which you want to ship your product. It can be as narrow as a single zip code, or as broad as anywhere in the world. You can set different shipping options for various areas.
When setting up WooCommerce for the first time, it presents you with a very simple shipping default. Namely:
- Free shipping in the United States
- Unavailable to ship anywhere else
In the WooCommerce settings, after clicking the “Shipping” tab, here’s what you see when you access it for the first time:
For example, I set up a generic widget product in WooCommerce and added it to my card. At checkout, here’s what I see when I enter a US address:
And if I enter a Canadian address, this is what I see:
As you can see, because of the default shipping options in WooCommerce, you can’t ship to any address outside the United States. So let’s change that!
Adding New Shipping Zones to WooCommerce
For this example, I’m going to extend the shipping coverage area outside of the US – and into Canada. Here’s how to do it.
First, go to WooCommerce settings and click “Shipping”. Under “Shipping Zones” select “Add shipping zone” as shown here:
In the next screen, enter the details of the new shipping zone. The name needs to be memorable, so for this example I’m using “Shipping to Canada” like this:
Under “Zone regions” choose the country for which you want to enable shipping. When you start typing, you’ll see that you can choose not just individual countries, but areas within that country as well. For example, in Canada, you can limit shipping to specific provinces. This is useful when the product that you’re shipping is restricted in certain provinces, or not in others. Or if the shipping regulations for a certain province are too onerous for inclusion.
You can also limit your shipping to certain areas or zip codes. This kind of hyper-localization is rare but can be useful when considering certain shipping methods as shown below. When you’ve narrowed down your focus sufficiently, it’s time to select a shipping method.
Further, down the screen, choose “Add shipping method” as shown here:
Now you can choose from one of the options below:
- Flat rate
- Free shipping
- Local pickup
These options are specific to the shipping zone that you’re currently creating. The flat rate option means that all products shipped to this zone will cost a flat rate. Useful if your products are predictable in size, and there aren’t any unexpected costs. Free shipping, of course, is easy to understand – the customer won’t pay anything for shipping. That burden either falls on you, or you’ve found another way to deliver the product
Local pickup is an interesting option and is useful for products where you want the customer to come and pick up the product from you. It’s where the ability to limit the shipping zone to certain zip codes, areas, and provinces is the most valuable. If your customer is coming to you, then obviously it makes no sense to offer shipping to a state outside the one in which you reside.
In this example, I chose to offer flat-rate shipping to Canada. After adding the details, you can see that when I check out after providing a Canadian address, I get the option for flat-rate shipping:
Now that we’ve sorted out how to add shipping zones and methods, let’s see how to print the labels.
Creating Shipping Labels in WooCommerce
By default, WooCommerce installs a “Shipping” plugin when you enable shipping labels. But for your store to actually generate the labels, you need to ensure the following:
- Your store itself must be based in the United States
- Your store currency must be in USD
Without these two conditions, the option to generate a shipping label will be missing from the WooCommerce order screen after your customer has placed the order. If your store doesn’t meet these criteria, then you can’t use the in-built WooCommerce shipping label plugin to print the labels, so you’ll need another one.
Enabling WooCommerce Shipping Labels
To enable shipping labels, go to the WooCommerce settings page, click “Shipping”, then select “WooCommerce Shipping” as shown here:
Fill out the required details, including adding a credit card for purchasing the labels. This credit card is linked to your WordPress.com account via JetPack, so if you’re already a JetPack user, you should be good to go if you’ve added a credit card to your account. If you haven’t, then now’s the time to do it.
On this screen, you can also choose to add a package to WooCommerce shipping – you can choose between a box or an envelope:
Save your changes, and you’ve set up WooCommerce shipping.
In the next screen, I’ve gone ahead and made a test purchase on the new WooCommerce site:
Creating a Shipping Label
Once your customer places an order as above, you can go to WooCommerce -> Orders from the WordPress dashboard to see it:
Note that the order type is “Processing”. If an order has already been completed, you won’t be able to create the shipping label. Click the order for which you want to generate the shipping label, and you should see the option to create one as shown here:
Clicking this takes you to the label configuration screen where you configure the package. Here’s where you can sanitize the address that your customer entered, as the system will ensure that the address is valid, and you can configure the kind of package you want to send.
Unless the address that you enter is verified by the system, it won’t allow you to select the exact package that you want. After correcting and accepting the suggestions that your carrier provides, you can then choose the kind of shipping you want and purchase the label:
And that’s it. Make the payment using the credit card details you entered earlier, print the shipping label, slap it onto your product, take it to the nearest USPS store, and it’s off to the customer!
3rd Party Plugins for Other Shipping Labels
Obviously, since the above procedure for shipping labels is only applicable to US stores, it’s severely lacking for most of the world. Luckily, there are plenty of 3rd party shipping plugins for WooCommerce that cover alternative currencies and countries. One example is Table Rate Shipping – a paid plugin, but there are others as well. Make sure to check these out, along with their reviews, and find one that works for you.
I’m a NameHero team member, and an expert on WordPress and web hosting. I’ve been in this industry since 2008. I’ve also developed apps on Android and have written extensive tutorials on managing Linux servers. You can contact me on my website WP-Tweaks.com!
Leave a Reply