Octolize shipping plugins for every scenario

Shipping illustration Explore plugins

The Ultimate Guide to WooCommerce Shipping

Ultimate Guide to WooCommerce Shipping
Author Lucyna Polok
Updated:
2025-09-03
Reading time:
8 minutes read

Setting up shipping is one of the most critical steps in launching a WooCommerce store. Get it right, and you create a seamless checkout experience for your customers. Get it wrong, and you risk losing sales to high costs or confusing options. While WooCommerce provides a powerful set of tools out of the box, navigating them for the first time can be a challenge.

This guide will walk you through every essential shipping setting, from creating your first shipping zone to organizing products with shipping classes. Let’s build a shipping strategy that works for your business.

In this article, you will learn:

  • What are WooCommerce Shipping Zones and how to set them up,
  • Which Shipping Methods are available by default in WooCommerce, and how to configure them,
  • The possibilities offered by WooCommerce Shipping Settings,
  • What are WooCommerce Shipping Classes, and why and how to create them,
  • Tips and tricks for advanced WooCommerce shipping rules,
  • A useful tool for configuring more complex shipping scenarios than what WooCommerce’s built-in features allow.

Step 1: WooCommerce Shipping Zones

A shipping zone is a geographical region to which you ship your products. It can be a continent, e.g. Europe or North America, a country, e.g. Poland or the United States, or a smaller area, e.g. California. 

How large or small your shipping zones are is entirely up to you and depends on your business size and characteristics. 

WooCommerce Shipping Zones

Shipping zones are necessary due to the various shipping methods available in different regions. For example, if you ship your products to North America and Europe, you may be offering very different shipping options and carriers for both continents. Or maybe you would like to enable free shipping in America, but not in Europe. 

The video below explains the concept of WooCommerce Shipping zones in detail:

 

How to add a Shipping Zone in WooCommerce?

Go to WooCommerce > Settings > Shipping. Click “Add zone”, then name it and select the region(s) within the zone.

WooCommerce Add Shipping Zone

You can also limit the region to specific postal codes by clicking on the link below the region selection. It may prove useful when you want to offer local delivery or pickup. However, it can be very time-consuming to add zip codes manually, and then configure the shipping methods for each zone. The task is much easier and faster with our Flexible Shipping Locations plugin:

Flexible Shipping Locations WooCommerce
£30.00

Extend Flexible Shipping with custom locations and create shipping costs based on weight, order totals or item count.

View Details or Add to cart
Plugins used by 245,658+ shops
30-day money back guarantee
Last Updated: 2025-08-11
Works with WooCommerce 9.7 - 10.2.x

By default, WooCommerce allows you to edit a zone, remove a zone, or browse through the shipping methods added to a zone using the “Edit” and “Delete” buttons on the right. 

You can also sort the zones, but remember that the client will be given the shipping zone that is the closest match to their delivery address. If you configure a couple of zones with overlapping regions, make sure to set their order.

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

Step 2: WooCommerce Shipping Methods

Creating shipping zones is just the beginning. Once they’re set up, you will be able to add and configure the shipping methods. Click on “Edit” in the column Shipping Method(s) to add one of the available methods.

WooCommerce Shipping Methods

The are 3 shipping methods available in WooCommerce by default: 

  • Flat rate, 
  • Free shipping,
  • Local pickup.

To manage the added shipping methods, click on the “Edit” button on the right. 

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

The methods’ settings and their removal are available via the “Edit” and “Delete” buttons on the right. 

Looking for more details on shipping methods? Watch our comprehensive video:

Flat rate

Flat rate is the most basic shipping method in WooCommerce. It allows you to set a fixed shipping rate for all products, with the possibility to apply a few more complex conditions based on the number of items and/or percentage. 

WooCommerce Add Flat Rate

 

WooCommerce Flat Rate Edit

Method Title – the shipping method’s name displayed to customers at checkout.

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

Cost – the fixed price for shipping. 

The fixed price set at Cost can be straightforward, but there are ways to apply more complex conditions. 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 a percentage,
    • max_fee – the maximum additional cost, useful when using a 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.

Free Shipping

Free shipping is a great way to increase sales, reduce cart abandonment, and grow customer loyalty. Customers are more likely to spend more in your store if you offer free shipping above a certain threshold. 

WooCommerce Free Shipping Setup

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 clients, regardless of their order value.
  • A valid free shipping coupon – create a coupon that entitles clients to make use of the free shipping. Coupons are available in the WooCommerce menu → Coupons.
  • A minimum order amount (most common) – enter the minimum order value entitling customers to 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

The local pickup option is great for brick-and-mortar stores. Customers living nearby can save up on shipping costs by dropping by to collect their order in person.

WooCommerce Local Pickup Setup

Local pickup settings

Configuring the local pickup is no different from setting the Flat Rate. Simply set the method title. If picking up an order at the location is free of charge, you can skip the tax status and the cost.

Extra method: 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 more complex solution for advanced shipping cost calculations. 

This is where the Table Rate Shipping method comes in. It is an easy way in which a store can set rules to calculate advanced shipping costs.

Rules can be based on:

  • cart weight,
  • cart total,
  • and much more in the premium version of the plugin (such as product dimensions, cart volume, or shipping classes).

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: 2025-08-18
Works with WooCommerce 9.7 - 10.2.x

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

  • If all items from the order weigh from 1 lb 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, add $8 to the shipping cost.

Such conditions will be shown in Table Rate like this:

Rule based on Conditions Shipping class? Cost to add
weight 1-5 lbs no, every product $10
items any item yes, XYZ -$3
items 5 or more items no, every product $8

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

Step 3: WooCommerce Shipping settings

This section is rather straightforward. It allows you to set basic rules for shipping costs calculations and display, or the shipping destination. It is also where you can enable or disable debug mode, which will help you solve possible configuration errors.

WooCommerce Shipping Settings

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:

WooCommerce Checkout Page Shipping Cost 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.

Step 4: WooCommerce Shipping Classes

Shipping Classes are a crucial tool for businesses that sell products of different sizes. They help group together products with similar shipping characteristics.

WooCommerce 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 with the “Edit” and “Delete” buttons on the right.

Setting up shipping costs for shipping classes

Once you have created your shipping classes, you need to configure the shipping costs for them. The process is very similar to setting up Flat Rate – just go back to Shipping Methods. You will notice that a new section has appeared:

WooCommerce Shipping Classes Flat Rate Setup

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

No Shipping Class Cost – applicable when using the 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.

Assigning shipping classes to products

To assign a shipping class that you’ve created to a product, go to Products. Select a specific product from the list and click “Edit”. Then, go to product data and choose Shipping.

WooCommerce Assign Shipping Class to 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. 

  1. Go to Attributes in the product data tab. 
  2. Once you add attributes to your products, a Variations tab will appear. 
  3. Access it to assign the appropriate shipping classes.

Assigning shipping classes to products in bulk

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

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

WooCommerce Edit Products in Bulk

 

  1. Select a Shipping Class from the list.
  2. Bulk edit shipping classes for products
  3. Finally, click Update, and it’s all done!

 

WooCommerce Assign Shipping Class to Products in Bulk

Conditional Shipping Payments

Let’s say you would like the customers who selected Free shipping to get Cash and Bank transfer payment methods only. However, the customers who chose a courier should be able to pay using Bank transfer, Cash, and online transfer. That’s Conditional Shipping Payments.

Read our Quick Guide on Conditional Shipping Payments  to learn more about the setup.

Summary

Configuring shipping in WooCommerce doesn’t have to be complicated. By mastering the core concepts of Shipping Zones, Methods, and Classes, you can build a solid foundation for your store. 

When your needs grow beyond the basics, Octolize is here to help. With the Flexible Shipping plugin, you can easily create advanced, conditional shipping rules that scale with your business, ensuring your shipping is both customer-friendly and profitable.

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: 2025-08-18
Works with WooCommerce 9.7 - 10.2.x

 

FAQs

 

How does WooCommerce calculate shipping?

There are different ways to calculate shipping costs in WooCommerce. You need to set up Shipping Zones for geographical shipping settings, create Shipping Classes for different categories of products, select appropriate shipping methods, and adjust the shipping settings. You can also integrate your WooCommerce shipping with carriers to display shipping rates directly taken from their websites.

 

What are shipping classes in WooCommerce?

Shipping classes are categories of products you can create based on similar characteristics. For example, you can divide your products into big or small if you run a furniture store, or durable and perishable if you sell food. This helps assign the right shipping category for them, as different groups of items need different shipping conditions. 

 

What does the ‘Flat Rate’ shipping method in WooCommerce mean?

The Flat Rate shipping method is the most basic way to calculate shipping costs in WooCommerce. It allows you to set a fixed shipping rate for all your products, regardless of their size or cart total. You can also use it to perform some basic calculations, such as adding an extra fee per item in the cart or a percentage-based insurance fee. 

 

What is Table Rate Shipping?

Table Rate Shipping allows WooCommerce store owners to configure more complex shipping scenarios. Where Flat Rate shipping lets you set a fixed shipping rate for all your products with only basic configurations, with Table Rate, you can set up scenarios based on cart weight, cart total, and much more with the PRO version of Flexible Shipping

 

How to set up international shipping in WooCommerce?

In order to offer international shipping in your WooCommerce store, you first need to sign a deal with international carrier(s). Once you have such a deal in place, you need to set up Shipping Zones for the different geographical regions you deliver to. This will allow you to offer different shipping rates and carriers for clients in different countries. 

Lucyna Polok is an SEO and content specialist passionate about crafting effective strategies and creating engaging content. She has worked across a variety of industries, both in-house and as a freelancer. A strong believer in the power of storytelling, she believes that good content not only delivers business results, but also resonates with customers through an emotional connection with a brand.

At Octolize, she is responsible for aligning the content strategy with business goals and increasing visibility, trust, and authority of the brand via data-based SEO efforts. On the blog, she focuses mostly on topics for those only beginning their adventure with e-commerce, explaining scenarios and terms in an approachable way.

Comments
Subscribe
Notify of
guest
12 Comments
Inline Feedbacks
View all comments
Solène Chiche
Solène Chiche
5 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
3 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
3 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
3 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
3 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
3 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
1 year 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
1 year 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
1 year 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
1 year 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.

Paul White
Paul White
4 months ago

Can I use your plugin to display alternative shipping supplier rates depending on the product Class?
I have some Outsize products which can only be picked up or towed to the customer on a flat rate + petrol allowance per km basis provided the address is <= 200Km
For everything else I have two different shipping suppliers – Post and Courier.
Post offers Basic and Express Rate for small items up to 1M long
Courier is used for everything longer than 1m or weighing more than 22Kg
I have set up Classes for groups of items depending on how they can be shipped (e.g. Post or Courier, Courier Only, Pickup or Tow)
I have plugins from both the Post and Courier company that can show live rates.

Mateusz Kot
Mateusz Kot
Admin
Reply to  Paul White
3 months ago

Hi Paul,
Thank you for your message.

Can I use your plugin to display alternative shipping supplier rates depending on the product Class?
Yes, you can use our Conditional Shipping Methods. It allows defining the rules when the specific shipping methods, e.g., live rates should be available to pick and when not to. It is based on certain conditions – including shipping class.

Kind regards,
Mateusz