Magento 2 Table Rate Shipping: Setup Guide & Examples
Vinh Jacker | 03-14-2025

Shipping costs in an online store aren’t always the same. They can change depending on the product’s weight, size, price, or even where the customer lives. Magento 2 helps you handle this with the Table Rates Shipping method. With it, you can set up flexible rules—for example, charge more for heavier items, or apply different rates for certain regions.
All these rules are stored in a table file (CSV), which you can easily upload to your store. When a shopper checks their cart, Magento will automatically show the right shipping cost. This makes the process clear for customers, saves your team time, and creates a smoother buying experience. In this guide, we’ll show you step by step how to configure Table Rates in Magento 2.
💡 Key Takeaways
- Magento 2 Table Rate Shipping helps you set custom shipping fees based on order weight, price, item quantity, or destination.
- Learn how to configure it in 4 simple steps: enable the method, prepare the sample CSV file, import it, and test the setup.
- The default Table Rate method covers basic needs, while the Mageplaza Magento 2 Table Rate Shipping extension offers advanced features to handle more complex shipping requirements.
What is Table Rate Shipping in Magento 2
In Magento 2, Table Rate Shipping is a default method that calculates shipping costs based on a set of predefined rules stored in a table (CSV file). These rules can be applied under different conditions, such as:
- Weight vs Destination: charge based on the total order weight and shipping address.
- Price vs Destination: calculate fees depending on the order value and where it is delivered.
- Number of Items vs Destination: apply rates according to how many products are in the cart and the shipping region.
For example, you might:
- Charge $5 for orders under 5 kg and $10 for heavier orders shipped to farther locations.
- Offer free shipping for orders above $200, while smaller orders are charged $10.
- Apply $5 shipping for 1–3 items within the city, and $8 for 4 or more items.
This flexibility makes Table Rate Shipping more powerful than other default shipping methods. Here’s how it compares:
With this approach, Table Rate Shipping helps you create more accurate and customer-friendly policies while keeping control over your shipping expenses.
4 Steps to Configure Shipping Table Rates Method in Magento 2
Step 1: Configure the Table Rate Shipping Method
- On the Admin Panel,
Stores > Settings > Configuration
. - On the left panel, under
Sales
, selectDelivery Methods
. - Open the
Table Rates
section,Enable
the shipping method by choosing Yes for that.- Set the
Title
for the table rate shipping on the checkout page. You can use the default value - “Best Way” for the table rate title. - Choose
Conditions
by the calculating methods: Weight v. Destination, Price v. Destination, or # of Items v. Destination. - If the order includes virtual products for the price calculating, choose Yes in the
Include Virtual Products in Price Calculation
field.- If you calculate by weight, virtual products don’t affect the result.
- If you calculate by price or items, they do affect the result.
- If you ask to charge an additional handling fee, set
Calculate Handling Fee
to fixed or percent, and then enter the number you want to set in theHandling Fee
field. - In the
Displayed Error Message
field, enter the message you want customers to see when Table Rate Shipping is not available at checkout. - Set
Ship to Applicable Countries
to one of two options:- All Allowed Countries : Free Shipping is supported for every country.
- Specific Countries: Table Rate Shipping is only supported for selected countries.
- Set the
Sort Order
on the Shipping Method on the checkout page. Save Config
to complete.
📌 Note: Before making the changes listed below, if needed, clear the box that says "Use system value".
Step 2: Prepare the Table Rate Data
-
In the upper-left corner, select the
Scope
where the configuration is active, you can chooseMain Website
or any website you need. -
Then, the Import and Export option will appear, and the Use as Default checkbox will be next to each field in the Table Rate Shipping section.
- Click on the
Export CSV
button and you will receive a Table Rates CSV Data file with the nametablerate.csv
on your computer.
Here’s an example of how shipping rates can be set up in the CSV file. In the table below, orders sent to California (CA) and Utah (UT) have lower rates than the rest of the country, and prices decrease as the order subtotal increases.
📌 Note:
- The * symbol is a wildcard, meaning the rule applies to all values in that column (e.g., all ZIP codes within a state).
- You can adjust the amounts in your CSV to reflect your own shipping policy, this table is just an example of how rules might be structured.
- Complete the CSV file in a spreadsheet
- 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.
- Save the file on your computer after finishing it.*
Step 3: Import the Table Rate Data
- Go back to the Table Rate Shipping section.
Import
the “tablerate.csv” file by tapping theChoose File
button and then upload the file from your computer.Save Config
to complete.
💡 Pro Tip:
- Regularly update rates to reflect shipping cost changes.
- Keep pricing accurate and competitive.
Step 4: Test and Verify the Rates
After importing your CSV file, it’s important to test the setup to make sure the rates work as expected.
- Go to the storefront and add products to your shopping cart.
- Then, navigate to the checkout page.
- Enter a valid shipping address that matches one of your CSV rules.
- Select the
Table Rates shipping method
from the available shipping methods. - Verify that the correct shipping fee appears based on your rules.
💡 Pro Tip:
- Test with different scenarios (e.g., low vs high order totals, different states, multiple items) to confirm every condition works.
- If the rates don’t display correctly, double-check your CSV formatting. Common issues include typos, extra spaces, or incorrect country/state codes.
- Monitor abandoned carts to identify if shipping costs are causing drop-offs.
To see how Table Rates work for customers at checkout, here are some simple real-world use cases:
Example | Use Case | CSV Data | Resulting Shipping Options |
---|---|---|---|
Change shipping rates based on subtotal & destination region | Set different shipping prices depending on order subtotal tiers & shipping region |
- USA,UT,,100,5.00 - USA,UT,,50,7.50 - USA,UT,,0,10.00 - USA,NY,,200,5.00 - USA,NY,,100,10.00 - USA,NY,,0,20.00 |
- Orders to UT over $100 cost $5 shipping - Orders to UT $50-$99.99 cost $7.50 shipping - Orders to UT under $50 cost $10 shipping - Orders to NY over $200 cost $5 shipping - Orders to NY $100-$199.99 cost $10.00 shipping - Orders to NY under $100 cost $20 shipping |
Rates based on weight tiers & destination | Charge different shipping prices by order weight ranges & shipping destination |
- USA,,,10,5.00 - USA,,,20,7.50 - USA,,,30,10.00 - USA,CA,,,7.00 - USA,UT,,,8.00 - USA,,,*,9.00 |
- Orders to USA under 10 lbs cost $5 shipping - Orders to USA 10-20 lbs cost $7.50 shipping - Orders to USA over 20 lbs cost $10 shipping - Orders to California, USA cost $7 shipping - Orders to Utah, USA cost $8 shipping - Orders to the rest of USA cost $9 shipping |
Restrict free shipping to specific regions | Provide free shipping only to certain areas |
- CAN,AB,,30,0.00 - CAN,BC,,30,0.00 - CAN,,,30,5.00 |
- Orders over $30 to Alberta, Canada: Free shipping - Orders over $30 to British Columbia, Canada: Free shipping - Orders over $30 to the rest of Canada: $5 shipping |
Magento 2 table rates example
Limitations of Magento 2 Default Table Rates
The default Table Rates method in Magento 2 is a good starting point if you want to set up flexible shipping fees without coding. However, as your store grows, you may find some limitations:
- Only one condition can be applied at a time, which may not cover complex shipping needs.
- No option to set different rates for specific customer groups or products, making it harder to customize.
- Managing large CSV files can be time-consuming and prone to errors.
💡 Tip: If you need more flexibility, such as combining multiple conditions, applying rules to certain products or customer groups, or managing shipping settings more easily, consider using the Table Rate Shipping extension to fill in the gaps.
FAQs
1. How can I configure table rates for different store views or websites in Magento 2?
Magento 2 allows you to set different table rates for each store view or website. You can specify unique CSV files for each store view by changing the configuration scope to the desired store view before uploading the rates.
2. What should I do if my shipping rates aren’t showing at checkout?
Run this quick check:
- Table Rates are enabled and applied to the correct website.
- The shipping address matches your CSV rules (Country/Region/ZIP).
- The condition you chose matches your CSV (Weight, Price, or Items).
- CSV values are clean and sorted logically (no typos, extra spaces, or wrong codes).
- Clear Cache (
System > Cache Management
), then test again.
3. Can I set different table rates for different countries?
Yes, Magento 2 allows you to set table rates specific to regions or countries. Check the Magento table rates CSV examples and use cases we mentioned earlier for a deeper understanding on how it works to set up multiple table rates.
4. Is it possible to set shipping rates based on product categories?
No, the default Magento 2 Table Rates method doesn’t support category-specific rates. However, you can achieve this through third-party extensions or custom development.
5. What are the maximum file size limits for table rates CSV files in Magento 2?
While there is no strict limit, larger CSV files with thousands of entries may affect performance. It’s important to keep the file size manageable to ensure smooth operation.
6. Can I add multiple delivery methods?
Yes, Magento 2 allows you to set up multiple shipping methods so you can offer many delivery options to meet your customer needs.
7. Can Magento 2 table rates calculate prices based on the number of items and destination?
The Magento 2 table rate enables shipping cost calculations based on the number of items in each order and their destination. This system ensures that every customer receives a shipping quote suitable to their order’s characteristics. Therefore, you can improve overall pricing accuracy and customer satisfaction.
8. What happens if I receive an error message after setting up my shipping rates?
If an error message appears after configuring your shipping fees, it indicates there might be issues with the entered absolute value data or other aspects of the configuration steps. You need to double-check all the details you’ve entered.
The bottom line
Table Rate Shipping in Magento 2 is a practical way to give customers clear and flexible shipping options. By displaying rates in a simple table format, you make it easier for shoppers to compare choices and select the method that suits them best. This not only improves the checkout experience but also reduces hesitation that can lead to cart abandonment.
Related Topics