After July 2021, the 2.3.x release line no longer received quality updates or user guide updates. PHP 7.3 reached end of support in December 2021, and Adobe Commerce 2.3.x reached end of support in September 2022. We strongly recommend upgrading to Adobe Commerce 2.4.x to help maintain PCI compliance.

Table Rates

This site contains archived merchant documentation for a version of Adobe Commerce and Magento Open Source that has reached end-of-support. The documentation available here is intended for historical reference only and is not maintained. The Adobe Commerce Merchant Documentation for current releases is published on the Adobe Experience League.

The table rate shipping method references a table of data to calculate shipping rates based on a combination of conditions, including:

  • Weight v. Destination
  • Price v. Destination
  • Number of Items v. Destination

For example, if your warehouse is in Los Angeles, it costs less to ship to San Diego than to Vermont. You can use table rate shipping to pass the savings on to your customers.

The data that is used to calculate tables rates is prepared in a spreadsheet and imported into your store. When the customer requests a quote, the results appear in the shipping estimate section of the shopping cart.

Only one set of table rate data can be active at a time.

Table Rate shipping in the shopping cart

Step 1: Complete the default settings

The first step is to complete the default settings for table rates. You can complete this step without changing the scope of the configuration.

  1. On the Admin sidebar, go to Stores > Settings > Configuration.

  2. In the left panel, expand Sales and choose Shipping Methods.

  3. Expand the Table Rates section.

  4. Set Enabled to Yes.

    Table Rates

    To change any of the current settings, you must first clear the Use Default checkbox.

  5. Enter the Title that you want to appear for table rates section during checkout.

    The default title is Best Way.

  6. Enter the Method Name that you want to appear as a label next to the calculated rate in the shopping cart.

  7. Set Condition to one of the following calculation methods:

    • Weight v. Destination
    • Price v. Destination
    • Number of Items v. Destination
  8. For orders that include virtual products, set Include Virtual Products in Price Calculation to Yes if you want to be able to include the virtual product(s) in the calculation.

    Because virtual products—such as services—have no weight, they cannot change the result of a calculation that is based on the Weight v. Destination condition. However, virtual products can change the result of a calculation that is based on either the Price v. Destination or # of Items vs Destination condition.

  9. (Optional) Configure the handling fee:

    • If charging a handling fee, set Calculate Handling Fee to one of the following:

      • Fixed
      • Percent
    • Enter the Handling Fee rate according to the method used to calculate the fee.

      If the handling fee is based on a percent, enter the whole number without the percent sign.

  10. In the Displayed Error Message box, enter the message that appears when this method is not available.

  11. Set Ship to Applicable Countries to one of the following:

    All Allowed Countries Customers from any country specified in your store configuration can use table rate shipping.
    Specific Countries After choosing this option, the Ship to Specific Countries list appears. Select each country where customers can use table rate shipping.
  12. If you offer multiple shipping methods, enter a number for Sort Order to determine the sequence in which Table Rate appears when listed with the other methods.

    This is relative to the other shipping methods. (0 = first, 1 = second, 2 = third, and so on.)

  13. When complete, click Save Config.

Step 2: Prepare the table rate data

  1. At the top-left of the configuration page, set Store View to Main Website, or to any other website where the configuration applies.

    When prompted to confirm, click OK.

    The Export and Import options now appear in the Table Rates section, with Use Default checkboxes to the right of each option.

    To change any of the current settings, you must first clear the Use Default checkbox.

  2. Change the Condition as needed.

    This determines the condition upon which the calculation is based. The format of the CSV file that is uploaded is specific to each condition. Options: Weight vs. Destination, Price vs. Destination, or # of Items vs. Destination

  3. Click Export CSV.

  4. Save the table-rates.csv file to your computer.

    Export CSV

  5. Open the file in a spreadsheet application.

  6. Complete the table with appropriate values for the shipping calculation condition.

    • Use an asterisk (*) as a wildcard to represent all possible values in any category.
    • The Country column must contain a valid three-character code for each row.
    • Sort the data by Region/State so the specific locations are at the top of the list, and the wildcard locations at the bottom. This will process the rules with the absolute values first, and the wildcard values later.

    Weight vs. Destination (Australia)

  7. Save the table-rates.csv file.

Example 1: Price v. destination

This example uses the Price v. Destination condition to create a set of three different shipping rates based on the amount of the order subtotal for the continental United States, Alaska, and Hawaii. The asterisk (*) is a wildcard that represents all values.

COUNTRY REGION / STATE ZIP / POSTAL CODE ORDER SUBTOTAL (and above) SHIPPING PRICE
USA HI * 100 10
USA HI * 50 15
USA HI * 0 20
USA AK * 100 10
USA AK * 50 15
USA AK * 0 20
USA * * 100 5
USA * * 50 10
USA * * 0 15

Example 2: Weight v. destination

This example uses the Weight v. Destination condition to create different shipping rates based on the weight of the order.

COUNTRY REGION / STATE ZIP / POSTAL CODE WEIGHT (and above) SHIPPING PRICE
AUS NT * 9 39.95
AUS NT * 0 19.95
AUS VIC * 9 19.95
AUS VIC * 0 5.95
AUS WA * 9 39.95
AUS WA * 0 19.95
AUS * * 9 29.95
AUS * * 0 9.95

Example 3: Restrict free shipping to the continental United States

This example uses the Price v. Destination condition to determine if free shipping is available based on the destination.

In the table-rates.csv file, include all the state destinations to which you are willing to provide free shipping. Complete the table rate configuration with the following settings:

Setting Value
Condition Price v. Destination
Method Name Free Shipping
Ship to Applicable Countries Specific Countries
Ship to Specific Countries Select only United States
Show method if not applicable No

Step 3: Import the table rate data

  1. Return to the Table Rates section of your store configuration.

  2. At the top-left of the configuration page, set Store View to the website where this method will be used.

  3. Next to Import, click Choose File and select your completed table-rates.csv file for import.

    Import table rates

  4. When complete, click Save Config.

  5. In the message at the top of the page, click Cache Management and refresh each invalid cache.

Step 4: Verify the rates

To make sure that the table rate data is correct, go through the payment process with several different addresses to make sure the shipping and handling rates are calculated correctly.