WooCommerce Docs

Documentation, Reference Materials, and Tutorials for your WooCommerce products

Search

Table Rate Shipping

Table Rate Shipping makes it possible for you to create complex rules for shipping your products worldwide.

You can define multiple rates based on the product’s destination, have multiple rates per zone, and add rules based on product weight, number of items, shipping class and price.

Every store is unique, with its own products and shipping needs, so every setup is different. This page introduces you to the concepts behind Table Rate Shipping, guides you through setup, and provides real-life examples that demonstrate its concepts in action.

Table Rates are a shipping method that can be added to Shipping Zones as of WooCommerce 2.6. Please see our Shipping Zones guide and create zones to get started.

How it works ↑ Back to Top

When a customer checks out items in their cart, the plugin looks at the destination of items and then uses the table of rates you created to calculate total shipping. Each destination can have its own rules, or multiple sets of rules, based on your shipping requirements.

To calculate shipping correctly, you need to create shipping zones and shipping rules. The plugin will take care of all the calculations for you from that point.

Setting up Table Rate Shipping requires some thought and planning on your part. Before getting started with the plugin, you need to do the following:

  1. Set up your shipping classes if you need different rules for different classes of product.
  2. Determine and set up your shipping zones.
  3. Get shipping rates from your chosen courier so you know how you want to charge.

Setting up Shipping Classes ↑ Back to Top

Shipping classes are used to indicate products that are similar for shipping. For example, you may have a shipping class called small to apply to bookmarks and medium for books. You may also wish to apply the small class to pencils and pens, as all are similar in size and weight, and can have the same shipping rules applied.

You can create tables of rates that apply to different shipping classes. This gives you considerable flexibility when creating shipping methods.

Product Shipping Classes guides you in setting up shipping classes.

Setting up Shipping Zones ↑ Back to Top

A shipping zone is a geographic region where a certain set of shipping methods and rates apply. You can add different tables of rates to each zone to charge different customers different amounts.

From WooCommerce 2.6 onwards, shipping zones are part of core. Please see our Shipping Zones guide. If you’re still using a version of WooCommerce lower than 2.6, the old zones (“legacy”) interface is covered at the end of this guide.

Add Table Rates to a zone

To use Table Rate Shipping, it must be added to a Shipping Zone.

. Go to: WooCommerce > Settings > Shipping.

2. Select the name of the Shipping Zone you wish to add rates for.

2016-05-19 at 14.41

3. Select the + icon on the right side of the row to Add shipping method. This opens a modal window.

selectflatboxes

4. Select Table Rate from the dropdown, and Add shipping method.

2016-05-19 at 14.42

5. Save changes.

 

Setting up a Table Rate ↑ Back to Top

After the shipping method has been added to the shipping zone, settings for Table Rate need to be applied.

1. Select the name of the Shipping Zone. This takes you to a different screen.

tableratename

2. Select Settings for Table Rate.

2016-05-19 at 14.44

This opens a Settings screen for you to configure.

3. Enter your preferences for this shipping method.

2016-05-19 at 14.50

  • Method Title Name of shipping method displayed to customers. For example, 1st Class and 2nd Class, if there are two methods for a zone.
  • Tax Status — Define whether or not tax is applied to the shipping amount.
  • Handling Fee — Additional fee, excluding tax. Can be a fixed amount (2.50) or a percentage (3%). Leave blank for no handling fee.
  • Maximum Shipping Cost — Can assign a maximum cost to a method. For example, if the total calculated is greater than the maximum cost, the price is decreased to maximum cost amount.

5. Enter Rates – Calculation Type.

Rate Settings

rate settings

Calculation Type — Tells plugin how to calculate shipping on customer’s cart. Choices are:

  • Per order – calculates shipping for the entire cart. If there are varying shipping classes in the customer’s cart, the class with the highest priority will be used. These can be set in the table that appears underneath the rate table when per order is selected.
  • Calculated rates per item – calculates the rate by checking each item in the customer’s basket against the table of rates.
  • Calculated rates per line – looks at each line in the basket and checks that against the table. Multiple of the same item are on the same line, so the customer will only be charged once for multiples of the same item.
  • Calculated rates per shipping class – each shipping class in your basket is totalled and offered at a final rate.

Example:

A customer has the following items in their cart:

Number of item Item Shipping class
2 red t-shirt small
1 green t-shirt small
1 black jumper medium

The following costs are set for medium and small shipping classes.

Cost for shipping class Cost Priority
medium 10 2
small 5 1

Total for each calculation type is:

Per order Per item Per line Per class
5 25 20 15

5. Enter Handling fees per item.
Add a flat additional fee to the cost of each calculated item (this could be an individual item, line or shipping class based on the above settings).

6. Enter Minimum cost per item.
Set the minimum cost per calculated item (this could be an individual item, line or shipping class based on the above settings).

7. Enter Maximum cost per item.
Set the maximum cost per calculated item (this could be an individual item, line or shipping class based on the above settings).

8. Enter Table Rates.

Adding Rates to a Table Rate ↑ Back to Top

Adding Rates
Adding Rates

Once you’ve chosen how to calculate rates, it’s time to start adding rates. The plugin will compare items in the customer’s cart against the table of rates to calculate shipping costs.

Shipping Class

Choose the shipping class to which this rate will apply. You can also choose to apply the rate to items in any shipping class or in no shipping class.

Condition

This column tells the plugin what product information it should use to calculate rates. Your options are:

  • None – you don’t wish to use product information to calculate the total
  • Price – the price of the items
  • Weight – the weight of the items
  • Item Count – the number of an individual item
  • Item Count (same class) – the number of items in the shipping class

Remember that the calculation is determined by the Calculation Type dropdown.

Min/Max

The minimum and maximum amounts for your chosen condition. These will be:

  • Price – the minimum and maximum price
  • Weight – the minimum and maximum weight. The weight unit used is determined in WooCommerce > Settings > Products
  • Item Count – the minimum and maximum number of an individual item. For example, you may wish to have one price for 1-50 items and another for 50+ items
  • Item Count (same class) – the minimum and maximum number of items in a specific class
If you are filling in minimum and maximum amounts for your item, ensure that you account for as many items as a person would conceivably order. For example, for item count, it’s good practice to have a row that has a maximum up to 999. This will ensure that shipping rates will always be calculated.

Break

When you check this option, you’re telling the plugin: If you reach this row of the table, stop the calculation from going any further. Meaning, you’re telling the process to break.

This is used for:

  • Per order – to tell the plugin to offer a specific rate and no others
  • Calculated – to stop any further rates being matched, with priority given to the top of the list. This is particularly important when merging shipping (see below).

Abort

Enable this option to disable all rates or the shipping you are editing if the row you are editing matches any item/libe/class being quoted.

Shipping Prices

This is where you set the cost for your shipping. You can add the following figures:

  • Row Cost – the base cost for shipping this item. This could include the cost of your packaging
  • Item Cost – the cost for each individual item. This is in addition to the cost
  • Cost per kg – the cost per kg for the items
  • Cost % – the percentage of the items’ total should used to calculate shipping.

Label

If you are creating a per-order table of rates, you can add a label for each individual rate.

Merging Shipping

There are times you may wish to merge shipping of a specific product. For example, imagine you have a bookmark and a book. The bookmark is in the small shipping class, and the book is in the medium shipping class. If a customer orders a book and a bookmark then you can simply bundle this shipping together. There’s no need to charge to customer for shipping the book and the bookmark separately.

If shipping for the bookmark is usually £2.50 and shipping for the book is £5, then you want to offer a shipping cost of £5, not £7.50.

To properly merge items for shipping, you need to ensure that the table is set up with the highest rate at the top and the lowest rate at the bottom.

What you need to do is to tell the plugin: Go down this table of rates and stop when you get to the first condition that matches.

To merge rates in a simple setup, you would:

  1. Choose Calculated rate (per shipping class) for your calculation type.
  2. Create rates on the table, with the highest rate at the top. In our example of books and bookmarks, the medium shipping class is above the small shipping class.
  3. Ensure that the Break option is checked.

Let’s take a look at the difference when the order and the break checkboxes are used.

In the first example, the table is set up correctly. Medium is above small on the table, and the break checkbox tells the plugin to stop its calculation when the first condition is met. The shipping price for the customer is £5. i.e., The bookmark is correctly bundled with the book.

Table Rate Merging Shipping Example 1

In the second example, medium is correctly above small, but the break checkbox hasn’t been checked. This means that the plugin continues to calculate through the table for all of the items, calculating separately for each item and offering a final price of £7.50.

Table Rate Merging Shipping Example 2

In this example, the break checkbox is checked, but small is above medium in the table. As the plugin calculates down through the table stopping at the first row in which its condition is met, it stops at small. The customer is offered the price of £2.50, which is the shipping cost for the bookmark, not the book.

Table Rate Merging Shipping Example 3

In the final example, small is above medium in the table and the break checkbox is not checked. This time, the plugin checks every item in the basket against the table without stopping. It offers the price of £7.50 for shipping, totaling the cost for each line item, rather than combining.

Table Rate Merging Shipping Example 4

All fine adjustments made to the table of rates will affect your final total. Below are working examples of calculations for an online t-shirt store. These should help demonstrate the practical application of the plugin.

Working examples ↑ Back to Top

Sending Multiples of Similar Items

Dave has a t-shirt shop. People often buy multiples of his t-shirts. His base rate of shipping is £2, and then each t-shirt adds £1 to shipping. To create his shipping rules, Dave does the following:

  1. Creates a shipping class, small, to apply to all of his t-shirts
  2. Creates a shipping zone, Zone 1
  3. Chooses the Calculated rate (per shipping class) calculation type
  4. Creates the following rules:
    • Shipping Class – small
    • Condition – item count (same class)
    • Min:1 Max:1000
    • Cost – 2
    • Item Cost – 1

His table is set up as follows:

Table Rate Shipping Example 1

When customers purchase his t-shirts, they are charged as follows:

  • 1 t-shirt: £3
  • 2 t-shirts: £4
  • 3 t-shirts: £5, etc

Applying multiple rules to the same shipping class

It’s all going well for Dave, but he realized that the basic shipping rate goes up when people buy more than 50 t-shirts. He needs to add another rate. The original rate is edited to a Minimum of 1 and a Maximum of 49. And he adds the following rule:

  1. Shipping Class – small
  2. Condition – item count (same class)
  3. Min:50 Max:1000
  4. Cost – 10
  5. Item Cost – 1

His table is set up as follows:

Table Rate Shipping Example 2

When customers purchase his t-shirts, they are charged as follows:

  • Purchasing 49 t-shirts costs £51 for shipping (49*1)+2
  • Purchasing 50 t-shirts costs £60 for shipping (50*1)+10

Merging shipping for different shipping classes

Dave’s been pretty successful with t-shirts, so he decides to get into selling jumpers. When a customer buys a jumper and a t-shirt, he knows that he can package the t-shirt and jumper together, so he doesn’t want to charge shipping for each separately. His base rate for shipping a jumper is £5, and each jumper costs £3 to ship. To create rules for shipping jumpers, he does the following:

  1. Creates a shipping class medium to apply to all of his jumpers
  2. Opens his Zone 1 shipping
  3. Creates the following rules:
    • Shipping Class – medium
    • Condition – item count (same class)
    • Min:1 Max:1000
    • Cost – 5
    • Item Cost – 3

His table is set up as follows:

Table Rate Shipping Example 3

As described in the section on Merging Shipping, the most expensive shipping class needs to be at the top of the table. This will ensure that the customer is only charged the rate for shipping the jumper.

Sending by weight

Dave decided to move to a new courier company. It’s more cost efficient for him to ship by weight, so he needs to rethink his shipping rates. The new rates provided by the courier are:

  • 0-750g: £2.70
  • 751-1000g: £4.30
  • 1000g-2000g: £8.30

This time the calculation type is Per Order. This will calculate the total based on the weight of the entire order. He needs to create three rows, one for each rule he wishes to create. These will apply to any shipping class, with the weight condition, and a minimum and maximum weight applied.

If your courier quotes you a cost per kilo, you could set your condition to None, and use the Cost per KG option.

Offering Multiple Shipping Options

Dave wants to give his customers as much flexibility as possible, so he decides to offer customers in the shipping zone both 1st and 2nd class mail options. To do this, he does the following:

  • Calls his original rate 1st class
  • Navigates to the Shipping Zone, and clicks Add Shipping Method
  • Calls his new table 2nd Class
  • Creates a per order table with the 2nd class rates

WooCommerce 2.5 and below ↑ Back to Top

Before WooCommerce 2.6 was released, Shipping Zones were not part of core, and included in Table Rate Shipping.

WooCommerce 2.6 will handle the migration process from “legacy” former zones to core zones. There are new table names, where the data will be moved across. Your table rates will continue to function after updating.

If you’re still using a version lower than 2.6, it’s possible to continue using the Table Rate Shipping version of shipping zones by following the below instructions.

Creating shipping zones

Shipping Zones are different geographical regions that your products are shipped to. These are different, depending on where you are in the world. If you’re based in the UK, for example, you may set up your zones as follows:

  • Zone 1: UK and Northern Ireland
  • Zone 2: EU Countries
  • Zone 3: Rest of the World

Once zones have been defined, Table Rates can be created for each. To set up zones:

1. Go toWooCommerce > Shipping Zones.

2. Name the Shipping Zone.

3. Select the Type of zone. Options are:

  • One or more countries
  • One or more states or countries
  • One or more zip or post codes.This field accepts wildcards so that you can include a postcode region. For example, SW* would include the south-west London region, while NE* would include the Newcastle-upon-Tyne region. You can also use ranges. An example for zipcodes would be 451…459. Each range or wildcard needs to be on its own line.

4. Click Add Shipping Zone.

5. Save changes.

Create as many shipping zones as you require. A table of Shipping Zones will look similar to this:

Table Rate Shipping Zones

Example setup with zip codes

If you wish to have a zip codes setup as Zone 1 and the rest of the country as Zone 2, the first zone needs to be set up with ‘One or more zip or post codes’:

Edit Table Rate Shipping Zone

Zone 2 also needs to be set up as ‘One or more zip or post codes’ with the country selected and an asterisk “*” to catch the rest of postcodes:

Edit Table Rate Shipping Zone 2

Note: In this example, if you set Zone 2 based on country, it will ignore Zone 1.

Add a shipping method

To add a shipping method to a Shipping Zone:

1. Click the name of the Shipping Zone you wish to add rates for.

Table Rate Shipping Zones

2. Select Table rates from the dropdown.

Adding Table Rates to Shipping Zone

3. Select Add To Zone.

Back to the top