When it comes to calculating shipping costs, it’s not just about distance traveled—the weight and size of the items to be shipped are also part of the cost equation. Unless your products are all of the same weight (lucky you, if that’s the case!), you’ll need to ensure your store is equipped to adjust the shipping rate for items of different weights. That’s where setting up WooCommerce Shipping Classes comes in.
WooCommerce Shipping Classes are a great way for you to charge different shipping rates depending on the products purchased. That way, if you sell really heavy products (which tend to be more expensive) and lightweight products (which tend to be cheaper), you can automatically adjust your shipping rate during checkout to cover those costs.
So, for example, let’s say your store sells candles and t-shirts. If your candles are all roughly the same size and weight, you can create a WooCommerce Shipping Class for them with their specified shipping prices. Same goes for t-shirts—they can all be grouped into another WooCommerce Shipping Class with a new set of shipping rates.
One thing to note is that not every store is a good candidate for using Shipping Classes—if your customers typically order multiple products at once, package weights (and the resulting shipping rates) will vary too much to be reliably grouped into one class. (We’ll cover what to do if your customers typically order a lot of products in a future blog post.) However, if your store is more of a “one-and-done” kind of place, creating Shipping Classes is a great way to easily calculate WooCommerce shipping per item.
Here are step-by-step instructions on how to set up WooCommerce Shipping Classes.
Table of Contents
- Step 1: Add Your Product Groupings as WooCommerce Shipping Classes
- Step 2: Assign Your Products to the Appropriate Shipping Class
- Step 3: Determine the Shipping Rate for Each Product
- Step 4: Identify Your Shipping Zones
- Step 5: Build a Table with Shipping Class, Zone, and Rate for Each Product
- Step 6: Add Your Shipping Information to WooCommerce
- Step 7: Use Shippo to Generate Shipping Labels
WooCommerce Shipping Classes are especially useful when your shipping costs vary significantly from item to item, whether it’s due to package weight, service level, etc.
You can also consider creating WooCommerce Shipping Classes specifically by the weight limits for carriers’ service levels. Group all of your items that weigh less than 16 ounces together in one Shipping Class (which would then ship via USPS First Class Package Service) and then create another for items one pound or heavier (which would ship via USPS Priority Mail).
Another option is to create a WooCommerce Shipping Class for expedited orders. For example, if you sell perishable goods, you may want to create a Shipping Class for those items that will require faster shipping (likely USPS Priority Mail Express or similar).
Determine Your WooCommerce Shipping Classes
For our example today, we’ll create two WooCommerce Shipping Classes, because our store example only sells two items:
- Candles that weigh five pounds with packaging.
- T-shirts that weigh 14 ounces with packaging.
Create the Shipping Classes in WooCommerce
Once inside your WordPress dashboard, go to WooCommerce > Settings > Shipping > Shipping Classes.
- Next, click Add Shipping Class, and add the relevant details for the item you’d like to create a class for. Click Add Shipping Class again to add additional Classes, as necessary.
- Click Save shipping classes.
Now that your Shipping Classes are added to WooCommerce, it’s time to assign your products to the appropriate Shipping Class. Once your products have been assigned a Shipping Class, then they will trigger the appropriate shipping price when they’re added to your shopping cart.
- In your WordPress dashboard, go to Products
- Now click the blue hyperlink of one of your products (we’ll use T-Shirt for this example) > Shipping > Shipping Class
Then, select the appropriate Shipping Class for that item from the dropdown menu.
Now that your Shipping Classes are set up in WooCommerce, you’ll want to set up your Shipping Zones and prices, which will determine the shipping cost that should display in the checkout process.
First, you’ll need a clear understanding of your shipping costs. If you already know your rates, skip this step. Otherwise, we’ll walk you through how to figure out what your carrier will charge to ship your items.
Determine the Package Weight for Each Product
Figure out how much each product weighs with all of the packaging materials included.
In this post, we are assuming our store has two different products: a candle that weighs five pounds and a t-shirt that weighs 14 ounces, with packaging included for both.
Select Your Service Level
Next, decide which carrier and service level to use. For more information, check out our guide on all of the common USPS service levels for domestic packages.
Today, we’ll use two popular USPS service levels:
- USPS Priority Mail — great option for packages weighing more than one pound with a delivery date of 1-3 business days. This will be our service level when we ship our candles.
- USPS First Class Package Service — great option for packages weighing less than 16 ounces with a delivery date of 1-3 business days. This will be the service level we use for our t-shirts.
Note Your Rates for Each Zone
Most of the carriers’ prices are based on the package’s weight, dimensions, and distance it travels. That distance—from the origin address to the destination address—is categorized into different Zones. The longer the distance, the higher the Zone, and the more expensive the package will cost.
Here are the price charts for our candle and t-shirt example:
Candle (Total weight: 5 pounds)
USPS Priority Mail
|Weight (pounds)||Zone 0,1,2||Zone 3||Zone 4||Zone 5||Zone 6||Zone 7||Zone 8||Zone 9|
|T-shirt (Total weight: 14 ounces)|
|USPS First Class Package Service
|Weight (ounces)||Zone 0,1,2||Zone 3||Zone 4||Zone 5||Zone 6||Zone 7||Zone 8||Zone 9|
Next, you’ll want to identify and set up WooCommerce Shipping Zones.
It’s critical that you’re using WooCommerce Shipping Zones to charge your customers for shipping during the checkout process. Here’s why: the major carriers have different shipping rates based on the distance the package will travel from the origin and destination addresses. These distances are broken up into Shipping Zones. By setting up WooCommerce Shipping Zones in your WooCommerce shopping cart, you’re able to pass along the correct shipping rate to your customer.
For step-by-step instructions on how to set up your Shipping Zones, check out this blog post.
Today, we’ll assume that you’ve already set up your Shipping Zones in WooCommerce.
Using the info you gathered above, create a table that lists each product and the rate for shipping per item to each zone. Here’s the table we created using our sample items.
|Zone 0, 1, 2|
Now use the table you created above so that you can add these rates to the Shipping Classes for each Shipping Zone. Here’s how:
- Go to WooCommerce > Settings > Shipping > Shipping Zones.
- Click the blue hyperlinked Zone Name. We’ll set up Zone 1 for this example.
- Click the blue hyperlinked Shipping Method to edit (USPS).
- Now, referencing your table, add the appropriate rate in the field for each Shipping Class. For Zone 1, we add $7.81 for the candle Shipping Class and $4.94 for the t-shirt Shipping Class. On this screen you will also choose a calculation type–we’re using “per class” so that all items are charged individually and totaled at checkout.
- Save your changes.
- Do this for all nine Shipping Zones.
Once you’ve set up your WooCommerce Shipping Classes, you’ll want to sync your store with a shipping software like Shippo that offers a WooCommerce shipping plugin to create shipping labels that cost the same amount as the price you’re charging your customers.
Shippo is a free, out-of-the-box integration with WooCommerce. Here’s how it works:
- Shippo automatically imports your WooCommerce orders into the Shippo dashboard.
- You can then select your orders and create labels (either one at a time or in a batch).
- When you create a label in Shippo, it automatically updates the fulfillment status in WooCommerce.
- When you change your address or order status in WooCommerce, the change will sync with Shippo.
- Sync your WooCommerce store with Shippo in just three easy steps. Check out our Help Center article for instructions.
Congrats! Once you complete these steps, your WooCommerce Shipping Classes will be set up and you’ll be ready to ship orders to your customers. Test it for yourself by creating a few new orders and selecting unique ZIP codes.
Questions? Contact our shipping experts at firstname.lastname@example.org.