Setting up Table Rates for Multiple Shipping Groups


When using multiple shipping groups with Table Rates carriers, often different shipping groups will have different methods. This article will cover how the different shipping groups will affect the outcomes.

Pre-requisites: This article assumes you already have a Table Rate Carrier and understand how the setup of Table Rates works. It also assumes that you will be using Shipping Groups to affect rates for certain products. See the Shipping Group  Configuration article for details on how to create a shipping group and the Table Rates Configuration article for the general overview of how to create a Table Rates carrier.


This article will use the following product configuration throughout these examples:

Red Sofa Piece, price 45, weight 4, not assigned to a shipping group.
Dark Wood Desk, price 145, weight 25, assigned to a “Bulky” shipping group.
Mobile Phone, price 32, weight 1.4, assigned to a “light” shipping group.

NOTE: Products not assigned to a shipping group may show as “UNDEFINED” in the Table Rates configuration section. This is normal.

For simplicity all shipping addresses will receive the same rates.

It is important to ensure that the “Maximum Per Package Weight” and “Maximum Carrier Shipment Weight” options are adequately high enough for the weights of the products that will be handled by the Table Rates carrier.

TIP! Click on the images for larger displays.

Shipping Groups on One Row


This section details what happens when multiple shipping groups are defined on a single row, as illustrated below.


There are two ways in which the system matches on multiple shipping groups when defined on the same row, “Legacy Version” and “Version 2.0”, the version of which is illustrated in the top-right corner, as illustrated above. This version denotes the behaviour of multiple shipping groups on a single row in the table.

The Legacy Version denotes that the table row must match any of the shipping groups in the row. In the above screenshot, for example, the rule will match if there is a product assigned to either the “Alpha” shipping group or the “Beta” shipping group in the cart.

Version 2.0 denotes that all shipping groups must be present to match on the table. In the above screenshot, for example, the rule will only match if both the “Alpha” and the “Beta” shipping groups are present in the cart. It will not match if only one or the other are in the cart.

The dashboard also illustrates the behaviour of the shipping groups via a tooltip, as illustrated below, which changes to “ALL” if you are using Version 2.0:

If you add rows to the table via the “Add New+” button this is also illustrated above the field:

Same Shipping Methods

The example image below shows rates for different shipping groups. All of the products share the same shipping method names, though they have different rates between them. This is the simplest way to configure table rates carriers.

With the above configuration, the table is using the “Cumulative” totalling algorithm. This means the shipping group rates will add together when there are multiple shipping groups in the cart.

For example, 1x Light plus and 1x Bulky product in the cart will see a rate of 68 for “Next Day”, and 20 for “Ground”.

When using the “Per Item” totalling algorithm, rates will be multiplied by the respective quantities in the cart.

When using “Highest”, ShipperHQ will choose the greater rate of the two groups. In this case for the example above, the rates will be 50 for “Next Day” and 20 for “Ground” as they are the greater rates of the two groups.

Different Shipping Methods


With the configuration examples below, different shipping method names will be displayed for the different shipping groups.

If any of the groups are alone in the cart, all of the respective methods for that group will be displayed. For example, the products not assigned to a shipping group (UNDEFINED) will show “Next Day” and “Ground” as the method until the cart exceeds 100. When the cart exceeds 100, the methods shown will be “Free Shipping”, and “Next Day” will still be offered.

If a Light and a Bulky product are in the cart together, then “Next Day”, “Ground” and “Heavy Goods” will be displayed. If a product not assigned to a shipping group that is over a price of 100 then “Free Shipping” will be displayed as well.

Hierarchically, in this scenario, when all of the different shipping groups are in the cart together, “Free Shipping” should not be displayed because it only applies to one shipping group and “Heavy Goods” should be displayed instead of “Next Day”.

Note: If multiple shipping groups are present in the cart, there must be a common shipping method assigned to all of the shipping groups in order to return a rate. Any rate returned represents a shipping method that can fulfill the entire order.


Why does this happen? The system always looks for matching rules within the table rates based on the products that are in the cart.

In the above example, when all three shipping groups are in the cart, it will display the “Next Day” method. This is because it matches on the “Next Day” method products not assigned, and for the “Light” shipping group, but not for the “Bulky” shipping group. That method will be displayed because it applies to at least one of the shipping groups in the cart.

One way to think of this would be to check for any one time that these match

Unassigned <=100 Unassigned >100 Light Bulky Method shows?
Ground X
Next Day X
Free Shipping X Only if Unassigned <=100
Heavy Goods X X X


To achieve the desired results shipping rules will need to be used to determine when a method name is displayed.

The best way to configure these would be to modify the groups one at a time. This prevents the rules being too complicated too quickly. First, the “Bulky” shipping group’s name change will be addressed as it only entails a name change. The “Free Shipping” method name is based on the cart price so that will require a little extra.

As the rules are currently configured, the “Next Day” shipping method will be displayed in addition to any other eligible shipping method, regardless of the shipping group in the cart. So a shipping rule will be required to hide the unwanted shipping method when there is a product assigned to the “Bulky” shipping group in the cart.

To resolve this, you would:

  1. Create a new shipping rule and give it a name
  2. Add your “Next Day” method under the  “Shipping Methods” section
  3. In the “Conditions” tab, select the “Bulky” shipping group under the “Shipping Group(s) Include One or More” field. None of the other conditions are required for this particular rule.
  4. Next, under “Actions”, change the action to “Hide my selected Shipping Methods” and save the rule.

Test this rule on the frontend by adding a “Light” and a “Bulky” product to the cart and requesting a shipping rate. The “Next Day” method will not be displayed.

The shipping rule required for the “Free Shipping” method is very similar to the “Next Day” shipping rule. You can use the duplicate button on that carrie rule to copy the rule. Instead of selecting “Next Day” from the applicable methods, select the “Free Shipping” method and, in the includes one or more of these groups, select “Light” and “Bulky”.

Alternative Approach

Due to the simplicity of the above scenario it is possible to use the restrictions on the shipping group settings to restrict the available shipping methods. However, this is a more definitive approach to the configuration and can cause conflicts if not careful.

For this approach:

  1. In the shipping groups tab, select the “Bulky” shipping group
  2. Under the shipping methods restriction section, highlight the “Heavy Goods” and “Ground” methods.
  3. Save the Shipping Group.

This will make it so that when any items from the “Bulky” shipping group are in the cart, the whole cart will show only Heavy Goods or Ground methods.

This configuration is fine for when the shipping group being configured is at the top of the hierarchy and is completely unconditional.

An example of where this would not be appropriate would be the configuration of the “Light” shipping group to prevent the “Heavy Goods” shipping method from being displayed. In that scenario, if you add a product that is assigned to the “Light” shipping group to the cart then the “Heavy Goods” method would not be displayed, as expected but, if you then add a product from the “Bulky” shipping group to the cart then the “Heavy Goods” shipping method would still not be displayed because the “Light” shipping group is preventing that method from being displayed.

Cumulative Totalling with Different Methods

When the shipping methods are different between the shipping groups in the cart the system will not take the combined rate between the two groups; the rates will only surcharge when the shipping groups are the same.

From the example below if a product assigned to the “Heavy” shipping group is in the cart together with a product not assigned to a shipping group the rate for “Heavy” will be 50.

To ensure that the “Heavy Shipping” rate is 62 when both products are in the cart together you’ll need to add a rule for the other products too:

When using Legacy mode, to note, you’ll also need to create a new shipping rule to hide “Heavy Shipping” unless the “Heavy” shipping group is in the cart:

Create a new shipping rule and set an appropriate name such as “Hide heavy shipping unless heavy group is in the cart”. Under applicable methods select “Heavy Shipping” and in the conditions select “Heavy” in the “Shipping Groups Do NOT Include” field then save.

Advanced Rules

Shipping Rules (Special Note)

Please note that shipping rules take effect after the table rate carriers have been applied.

For example, from the above tables, if you have a shipping rule that sets free shipping to the LIGHT shipping group and there is a product assigned to LIGHT group, together with a product assigned to the BULKY shipping group this will not take effect as expected. Instead, the rule will need to be incorporated within the table.

Filtering Based on Subtotal

From the above configuration, if the “Light” shipping group products should also receive free shipping when the cart is over 100, then some changes would need to be made to the configuration.

With the above table, if there are 3x Red Sofa Pieces and 1x Mobile Phone in the cart, then the “Free Shipping” method will be displayed in addition to “Ground” and “Next Day”, rather than replacing “Ground”. This is because the filters defined within the table configuration apply to the respective shipping groups.

To make it so that the subtotal between the shipping groups is used, instead of the separate shipping groups’ prices, a filter will need to be created for use with a shipping rule:

  1. Go to the “Filters” tab on the lefthand nav > Add New
  2. Select “Whole Cart” under “Filter Applies to”. This will use the sum of all of the products in the cart, regardless of shipping group.
  3. Next, set the price range of 0 to 100. This filter will be referred to as “Cart price <=100” as the “Maximum” represents “equal to or less than”.
  4. A separate filter rule will also need to be created for a price from 100 with no maximum.
  5. Save the Filter

Next, create a new shipping rule:

  1. Go to Shipping Rules > Add New
  2. Under the Applicable Shipping Methods panel, select your “Free Shipping” method
  3. Under the Conditions panel, select the “cart price <=100” filter you made above under Weight/Price/Quantity Filters dropdown.
  4. Under the Actions panel, set the action to “Hide my selected Shipping Methods”
  5. Save and Duplicate the Rule to make an exact copy (you will adjust this copy via steps below)

In the duplicate rule:

  1. Change the Applicable Shipping Method to “Ground”
  2. In Conditions, and the filter for “cart price >100” (remove the “cart price <=100” filter).
  3. Also in Conditions, set the “Bulky” shipping group under the Excludes these Shipping Groups dropdown. You are excluding this here because the “Ground” method should be displayed when the “Bulky” group is in the cart, regardless of price.
  4. Under the Actions panel, set the action to “Hide my selected Shipping Methods”
  5. Save and test the rule

Go back to your Table Rates configuration:

  • Remove the price filter from the “Ground” shipping method for the “Light” and “UNDEFINED” shipping groups.
  • For the “Free Shipping” shipping method, deselect all methods from the “Shipping group” field. If you are using a CSV to import the table, you’ll change the shipping group column to an asterisk (*).
  • This will make it so that the carrier rule controls the display of the “Free Shipping” method instead of the Table Rate.
  • These adjustments made to the table should look like the below screenshot:

This will then provide the desired results using the combined total of the “Light” shipping group and products not assigned to a shipping group.

Test Your Rates

Verify that your carriers and rules are working and see how they will display in your checkout right from the ShipperHQ dashboard.

Learn More

Was this doc helpful?