The Ultimate Guide to WooCommerce Shipping

Ultimate Guide to WooCommerce Shipping
Author Piotr Jabłonowski
Updated:
2016-07-28
Reading time:
5 minutes read

Shipping is an immensely crucial option that we offer our clients. It’s been our competitive advantage and it may be the decisive part of a client’s decision to purchase. We have already configured many things, but there are more steps ahead. At the moment, we will be focusing on the settings in the WooCommerce Shipping tab, where you can go by choosing:

WooCommerce → Settings → Shipping.

WooCommerce Shipping: Shipping Zones
WooCommerce Shipping

WooCommerce Shipping Zones

Shipping Zones
Shipping Zones

The very first section is the heart of WooCommerce shipping. Here, you will be able to configure all shipping options. To begin with, however, you need to add the first zone. What is a shipping zone? According to the description in the settings, it is a geographic region, e.g. Europe, but it can also mean one country, e.g. Poland.

Add shipping zone
Add shipping zone

Add shipping zone – click to add the first zone, then name it and select the regions within the zone, e.g. Poland. You can also limit the region to specific postal codes (click the link below the region selection), which may prove useful when you want to offer local delivery or pickup. Remember to save the changes when you’re done.

Using quick links (hover the cursor over the name of the zone) you can edit a zone, remove a zone, or browse through the shipping methods added to a zone.

You can also sort the zones, but remember that the client will be given the first shipping zone matching the delivery address. If you configure a couple of zones with overlapping regions, set their order.

Do you want to know more about shipping zones? Check out our article: WooCommerce Shipping Zones Explained →

WooCommerce Shipping Methods

Creating a shipping zone is just the beginning. Then, you’ll be able to add and configure shipping options. Click on the plus icon in the column Shipping Method(s) to add one of the available methods.

Add shipping method
Add shipping method

Out-of-the-box, there are 3 shipping methods available in WooCommerce: Flat rate, Free shipping and Local pickup.

You are able to add every method multiple times, which makes it possible to offer shipping methods quite freely. Unfortunately, this functionality is rather restricted, because the client will see all the created methods in the cart, and the contents of the cart will influence only the visible shipping prices.

To manage the added shipping methods, click on the name of the zone chosen.

Shipping zones settings
Shipping zones settings

Similarly to the zones, the shipping methods can be sorted, which is important when you want to set the order in which the client sees them.

The settings of the method and its removal are available via quick links or just by clicking the name of the method.

Flat rate

Flat rate settings
Flat rate settings

Method Title – decide which payment method the user will see.

Tax status – decide whether the shipping method is taxable or not.

Cost – enter the cost of shipping for the entire order.

Additional cost – in Cost, you may also add the cost for the number of products in the cart. Here are the available options:

  • [qty] – the number of items in the cart,
  • [fee] – additional cost with two parameters:
    • percent – the percentage of the entire order,
    • min_fee – the minimum additional cost, useful when using percentage,
    • max_fee – the maximum additional cost, useful when using percentage.

Examples:

  • 10 + ( 1 * [qty] ) – the shipping will cost 10 USD plus 1 USD for each item in the cart,
  • 20 + [fee percent=”10” min_fee=”4” max_fee=”10”] – the shipping will cost 20 USD plus 10% of the order, but not less than 4 USD and not more than 10 USD.
Shipping Class

If you have configured your shipping classes, you will see additional fields in Flat rate settings.

Flat rate settings with classes
Flat rate settings with classes

Shipping Class Cost – there will be a separate field with shipping cost for each class. The order is done according to the order in Shipping Classes tab. Additional cost may be set for classes.

No Shipping Class Cost – applicable when using Per Class calculator (below).

Calculation Type – when it comes to calculating shipping cost for shipping classes, you can choose one out of two options:

  • Per Class – the shipping cost will be the sum of costs for each shipping class.
  • Per Order – out of all the items in the cart, the most expensive shipping class will be used.

Free Shipping

Free Shipping Settings
Free Shipping Settings

As the name suggests, this shipping method is used to set the cart total required to make the shipping free. You can choose one of the following options:

  • N/A – if you want the shipping to be free of charge for all the clients.
  • A valid free shipping coupon – create a coupon that entitles clients to make use of the free shipping. Coupons are available in WooCommerce menu → Coupons.
  • A minimum order amount – enter the amount of money spent, entitling to the free shipping.
  • A minimum order amount or a coupon.
  • A minimum order amount and a coupon.

Please note that coupons will also be used when the minimum order for free shipping has been set.

Local Pickup

Local pickup settings
Local pickup settings

Configuring the local pickup is not different from setting the flat rate. Simply set the title of the method. The shipping will probably be free of charge, so you can skip the tax status and the cost.

Table Rate Shipping

Many stores sell products of different sizes and weights. Therefore, Flat Rate Shipping is just not good enough for them. They need a solution for advanced shipping cost calculations. There comes Table Rate Shipping method. It is an easy way in which a store can set rules to calculate advanced shipping cost.

Rules can be based on:

  • weight
  • totals
  • item and cart line item
  • shipping classes etc.

Let’s take a look at an example. The conditions are following:

  • if all items from the order weight from 1 lbs to 5 lbs, then add $10 to the shipping cost,
  • if items from shipping class XYZ appear in the cart, then subtract $3 from the shipping cost,
  • if there are more than 5 items in the order, then add $8 to the shipping cost.

Such conditions will be shown written in Table Rate like this:

Do you want to implement Table Rate Shipping in your WooCommerce store? Check out: What is Table Rate Shipping →

WooCommerce Shipping Options

Shipping options
Shipping options

Here you can set the general options regarding the shipping.

Enable the shipping calculator on the cart page – check this option if you want the client to be able to calculate the shipping cost depending on the shipping zone.

Shipping calculator
Shipping calculator

Hide shipping costs until an address is entered – check if you want the shipping cost to be visible only upon the summary of the order.

Shipping Destination – decide which address is the default shipping address.

WooCommerce Shipping Classes

Shipping Classes is a very important tool when you sell products of different sizes.

Shipping classes
Shipping classes

Click Add shipping class and fill out Shipping Class Name and Description for your reference. Slug is a unique identification; it will be automatically filled out if you leave this field empty.

Editing and deleting shipping classes is possible when you hover the cursor over the name of the class.

You have created shipping classes. What’s next? Configuring the shipping costs for shipping classes has been discussed when describing how to configure the Flat rate. Below you’ll find information on assigning classes to products.

Assigning shipping classes to products

To assign a shipping class that you’ve created to a product, go to menu Products → Edit a select product → Product Data → Shipping.

Edit shipping class for product
Edit shipping class for product

All you need to do is select the shipping class you’ve created and update the product.

If there are variations of the product, you can assign separate shipping classes for each product. Go to Variations in Product Data tab.

Assigning shipping classes to products in bulk

You can also assign the selected shipping class to many products at once.

Go to menu Products and select a couple of products, then from the Bulk Actions list select Edit and click Apply.

Products list
Products list

Select Shipping Class from the list.

Bulk edit shipping classes for products
Bulk edit shipping classes for products

Finally, click Update and it’s all done!

Conditional Shipping Payments

Let’s say you’d like the customers who’ve chosen Free shipping to get Cash and Bank transfer payment methods only. However, the customers who’ve chosen a courier should be able to pay using Bank transfer, Cash, as well as online transfers. That’s Conditional Shipping Payments.

Unfortunately, standard WooCommerce does not support such a feature. This option is only available when it comes to Cash on Delivery, which can be displayed along with selected shipping method.

However, there is a method to implement it in your WooCommerce store. Read our Quick Guide on Conditional Shipping Payments →

Summary

Ever since the shipping zones were introduced in WooCommerce 2.6, configuration possibilities regarding shipping have become really convenient. Now, there are many options of differentiating the prices according to particular countries or groups of countries.

Flexible Shipping WooCommerce

The best Table Rate Shipping for WooCommerce. Period. Create shipping rules based on weight, order totals or item count.

Go to WordPress.org or Download for free
100,000+ Active Installations 30-day money back guarantee
Last Updated: 2024-09-02
Works with WooCommerce 9.0 - 9.4.x

If these options prove insufficient, our own plugin is worth mentioning. Flexible Shipping is available in the WordPress.org plugin repository for free. It offers additional possibilities of differentiating prices based on cart weight and order totals. When you add this to the shipping zones, you have immense possibilities – absolutely sufficient for most stores to configure WooCommerce shipping in the most effective way.

That is it as far as shipping methods go. If something is not clear enough, please let us know in the comments.

Comments
Subscribe
Notify of
guest
10 Comments
Inline Feedbacks
View all comments
Solène Chiche
Solène Chiche
4 years ago

Hi, quick question, I have two zones with overlapping zone codes but only the default option is displayed at the cart, is there a way to show all option? THANKS

Łukasz Spryszak
Łukasz Spryszak
Admin
Reply to  Solène Chiche
2 years ago

Hi Solène, could you please clarify what do you mean by “default option”? Is only the one shipping method being displayed in the cart instead of all of them? If so, I suppose it might be caused by the shipping zones’ ranges overlapping one another other. In such case, only the shipping zone located higher on the zones list will be matched and the shipping methods configured within will be used. The zone placed lower won’t be even considered, so I believe you should start the whole troubleshooting from fixing the shipping zones configuration and prevent them from overlapping one another.

Jenny Glow Skincare
Jenny Glow Skincare
2 years ago

my site cant detect internation shipping cost bwhile i configured it to be table rate. what is the challenge

Łukasz Spryszak
Łukasz Spryszak
Admin
Reply to  Jenny Glow Skincare
2 years ago

Hi Jenny, to be honest there might be many reasons of such behaviour. In most cases it is caused by the incorrect shipping zones’ or shipping methods’ configuration. Have you enabled the Debug mode at WooCommerce → Settings → Shipping → Shipping options to check if the shipping zones are matched properly after entering the shipping address in the cart?

Peter
Peter
2 years ago

Hi. how do I give customers the option of ordinary (non-tracked) post or opting for paying a bit more and having tracked post?

Łukasz Spryszak
Łukasz Spryszak
Admin
Reply to  Peter
2 years ago

Hi Peter, have you tried setting it up simply by adding two separate shipping methods, each with different shipping cost your customers may choose from?

Deanna
Deanna
10 months ago

Can someone explain how to discount shipping via the shipping class edit? I’ve tried using formulas such as (5 * [qty]) but they never add up to what I want them to be. It’s very frustrating and there are no helpful plugins i’ve found for this issue.

Łukasz Spryszak
Łukasz Spryszak
Admin
Reply to  Deanna
8 months ago

Hi Deanna, could you please provide us with some more details on your specific scenario? Do you want the shipping cost to vary depending only on the shipping classes or the shipping classes and item quantity combined?

Rory
Rory
9 months ago

Hi,
We deliver newspapers across the UK to peoples homes through a network of independent newsagents
Each newsagent has its own shipping zone because they charge different daily delivery rates
Smaller newsagents have quite a small delivery footprint, so can set their delivery area down to a few hundred postcodes and even a wildcard LL13 9* could be too big
bigger operators can cover whole counties so wildcards can work
Can shipping zones cope with 3000+ Shipping Zones i.e individual newsagents?
Can it cope with a table of all 1.8 million postcodes?
I am looking for an alternative solution such as postcode lookup or address finder if this is too tricky or slow
Your help would be appreciated

Łukasz Spryszak
Łukasz Spryszak
Admin
Reply to  Rory
8 months ago

Hi Rory, since matching the shipping zone based on the entered postcode is handled by the WooCommerce itself, I’m afraid that checking the 1.8M postcodes, if not optimized, might indeed slow down your site and negatively affect the shopping flow in your store, not to mention configuring so many shipping zones for individual agents. What I may advise here is either using some sort of 3rd party Google Maps API-based shipping address matching and autocompleting at the checkout or I’ve heard some time ago about the plugin allowing to visually ‘draw’ on the map the areas the certain shipping zone should cover, which might be useful as well. Nevertheless, I would also consider hiring a developer to prepare a dedicated solution since it might be much more effective than using and/or adapting the existing ones to your specific use case.