Setting Up WooCommerce Shipping Without Extra Plugins for WordPress

September 5, 2019
eCommerce, Wordpress

WooCommerce, the free shopping cart plugin for WordPress, includes all the necessary functionality to run an eCommerce store. However, the number of options might be a little confusing.

Shipping & Taxes are the biggest hangups we’ve seen with clients. You can use “add-on” plugins for both options – additional plugins that automatically charge shipping and taxes correctly. But those plugins cost extra every month. Before you jump into buying another plugin, take a quick look at the included options for WooCommerce Shipping.

To find the settings for WooCommerce Shipping, go to Woocommerce -> Settings, and click on the “Shipping” tab at the top.

What Are Zones & Classes?

WooCommerce utilizes two different items that you can edit separately to get your ideal shipping costs based on customer and product information. These two work in conjunction to get to the final shipping charge for the customer, but are set up separately in the backend.

WooCommerce Shipping Classes

The WooCommerce Shipping Class is set under WooCommerce > Settings, Shipping (tab), Shipping Classes (sub-tab). There are no settings under here except the title of the class.

Any class listed here can be added to a Product, by going to Products > Specific Product, scroll down and choose “Shipping”. Under the dropdown, you’ll see all the Shipping Classes you added.

You use Shipping Classes to differentiate the cost of shipping based on the Product, not the Location.

Shipping Classes is how you group products that will have the same shipping cost, even if that cost will differ based on location. For each product, you’ll need to add the correct shipping class to it.

You don’t have to use shipping classes. If all your products have the same shipping costs (it can be different if the location changes), then you can leave out the shipping classes altogether.

WooCommerce Shipping Zones

The WooCommerce Shipping Zones are based on physical location. They can be separated by countries or by zip codes (“Regions” in WooCommerce). The zones is where you add the actual prices for the shipping. Each shipping zone can have prices set for each shipping class.

You use Shipping Zones to differentiate the cost of shipping based on the Location, not the Product.

Think of the zones as shipping “buckets”. In each zone/bucket, you can adjust the price based on a shipping class. Let’s say, you have purple, green, and blue products. Each one costs a different amount to ship throughout the US, and a different amount to ship throughout Canada. For the result below, you’d need to set up three shipping classes, apply those classes to the appropriate products, and then create two shipping zones (US and Canada).

map of us and canada, which shipping classes in each and different pricing

Start by going to WooCommerce > Settings, Shipping, Shipping Zones. Create your first shipping zone based on location (US). Within that shipping zone, you’ll have available Shipping Methods. Turn on or off as needed (ie. if you don’t have free shipping for those in the US, turn that off). If you click on one of the Shipping Methods, you’ll get a pop-up screen that allows you to set a price for that method. Scroll down a bit, and you’ll see every Shipping Class listed. While you can have a price for the entire shipping method (ie. “Flat Rate”), you can adjust that rate based on shipping classes.

screenshot of the woocommerce shipping classes

Inside a Shipping Zone (International countries), the base cost (Cost), and cost per shipping class.

With this setup, you’d set up no base price for the “Flat Rate” Shipping Method. Instead, in the “Flat Rate Shipping” popup under the US zone, you’d scroll down and set a price for each class.

Advanced WooCommerce Shipping Classes & Zones

The example above, while it takes a little planning, is fairly basic as far as what WooCommerce Shipping can do. You can also do the following within the Shipping Methods Section (under Shipping Zones):

The first two options can be set per class within that method. To see more information, go to the Shipping Methods (under Shipping Zones) and hover over the question mark before the field.


While WooCommerce Shipping can’t handle every desired shipping setup, and it doesn’t give you immediate Fedex cost for a product (check out the Fedex plugin for that), it is remarkably robust. Start by writing out your ideal shipping setup, and you might be surprised by what WooCommerce’s Shipping Settings can handle!

Join the Discussion

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>