Table Rates: Working with Multiple Shipping Groups


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


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.

NB: 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.

Please 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.

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.

Basic Configuration

With this example all of the products in the cart share the same shipping methods, though they have different rates between them. This is the simplest way to configure table rates carriers.


With the above configuration the shipping groups’ rates will add together when there are multiple shipping groups in the cart and using “Cumulative” as the “Totalling Algorithm”. For example, 1x Light plus 1x Bulky product will see a rate of 68 for “Next Day” and 20 for “Ground”. Similarly, these rates will be multiplied by the respective quantities in the cart when using “Per Item”. When using “Highest”, however, 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 this configuration different shipping methods should be displayed for the different shipping groups.


With this configuration the products not assigned to a shipping group have a different method when the cart price exceeds 100, which adds a layer of complexity, in addition to the name change for the “Bulky” shipping group. Now, if any of the groups are added individually all of the respective methods will be displayed. If a Light and a Bulky product are in the cart together then “Next Day”, “Ground” and “Heavy Goods” will be displayed and, 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”.


So, why does this happen?

The system always looks for matching rules within the table rates based on all of the products that are in the cart. In the above example, when all three shipping groups are in the cart it finds “Next Day” for products not assigned to a shipping group and for the “Light” shipping group but not for the “Bulky” shipping group. That method will, therefore, 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 carrier rules will need to be used to determine when that 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” shipping method will be displayed in addition to any other eligible shipping method, regardless of the shipping group in the cart so now a carrier rule will be required to hide that shipping method when there is a product assigned to the “Bulky” shipping group in the cart.

Create a new carrier rule and select “Next Day” from the “Applicable Shipping Methods” section then in the “Conditions” select “Bulky” in the “Includes these Shipping Group(s)” field. None of the other conditions are required for this particular rule as this rule should be applied under all circumstances when the “Bulky” shipping group is present in the cart. Next, under “Actions”, change the action to hide 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 carrier rule required for the “Free Shipping” method is very similar to the “Next Day” carrier rule so you can use the duplicate button on that carrie 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 configuration section to restrict the available shipping methods. However, this is a more definitive approach to the configuration.

For this approach, in the shipping groups tab, select the “Bulky” shipping group and, under the shipping methods restriction section select “Heavy Goods” and “Ground” methods. This will make it so that when any items from the “Bulky” shipping group are in the cart.

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.

Advanced Rules

Carrier Rules (Special Note)

Please note that carrier rules take effect after the table rate carriers have bee applied.

For example, from the above tables, if you have a carrier 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 configuration 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 carrier rule.

In the “Filters” tab, select “Whole Cart” under “Filter Applies to”. This will use the sum of all of the products in the cart, regardless of shipping group. 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”. A filter rule will also need to be created for a price from 100 with no maximum.
To note, if the filter is not created before the carrier rule there is an option to “Add new” in the filters drop-down field.

Next, create a new carrier rule, select “Free Shipping” as the applicable shipping method, select the “cart price <=100” filter as the condition and set the action to hide the shipping method. Note that no inclusions/exclusions were set for this particular example as the “Bulky” shipping group does not allow the “Free Shipping” method to be displayed. The includes/excludes section may need to be adjusted to your scenario.

Duplicate this carrier rule and change the applicable method to “Ground” and the filter to “cart price >100”. This time the “Bulky” shipping group should be set as an exclusion because the “Ground” method should be displayed when the “Bulky” group is in the cart, regardless of price.

For the Table Rates configuration remove the price filter from the “Ground” shipping method for the “Light” and “UNDEFINED” shipping groups and, for the “Free Shipping” shipping method, change the shipping group to an asterisk (*) if you are configuring this from a CSV or deselect all methods from the “Shipping group” field if you are manually editing this from the dashboard. This will make it so that the carrier rule controls the display of the “Free Shipping” method instead of the Table Rates configuration. An asterisk should then be presented in the Table Rates under the “Shipping Group” column, as below.


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