Magento 2 Shipping Table Rates

Magento 2 shipping table rates with UK postcode zones and restriction rules for every carrier, plus a rate simulator that shows why a method was hidden.

  • Magento 2.4.7 – 2.4.9
  • PHP 8.2 – 8.5
  • Hyvä and Luma
  • Version 1.2.0
$249

One-off payment, with 12 months of updates.

What is included

  • Install with Composer, or download a zip from your account
  • Licence for one production domain, staging and development copies included

No subscription or automatic renewal. Keep using the versions included in your update period. Update and licence details

Key features

  • Unlimited delivery methods and rate rows
  • Weight, subtotal and quantity ranges
  • UK postcode areas, outward codes, sectors and ranges
See all features

Composer package commercegears/module-shipping-table-rates

Shipping Table Rates is a Magento 2 extension for running table rate shipping in your store, with UK postcode zones, restriction rules for every carrier and a rate simulator.

Magento 2 shipping table rates by weight, price and destination

Create as many delivery methods as you need and price each one with rate rows by country, region and postcode, and by weight, basket subtotal and quantity. A row can combine a base rate with a charge per item, per weight unit and a percentage of the subtotal, and each method can have a free shipping threshold. Ready-made UK zones cover Northern Ireland, the Channel Islands, the Isle of Man, the Isles of Scilly, BFPO and the Scottish Highlands and Islands (DPD's list). Rates can be imported from CSV with a dry run first.

Restriction rules for every carrier

Use restriction rules across every carrier to control which shipping methods are offered at checkout.

Rate simulator

The admin rate simulator shows every method offered for a test basket, the rate row used, how the price was worked out, and which restriction rule hid a method. This makes it easier to check your shipping rates and rules.

At a glance

  • Table rate shipping for Magento 2
  • Rate rows by destination, weight, subtotal and quantity, with ready-made UK zones
  • Restriction rules for every carrier
  • Rate simulator that explains why a method was hidden
  • Prices that match your costs

    Base, per item, per kg and percentage charges by country, region and postcode, with the most specific row winning.

  • Hide what you cannot deliver

    Restriction rules hide any carrier's methods by address, basket, products, customer group, coupon, weekday or time.

  • See why, not guess

    The rate simulator shows every method, its price, the rate row used and the rule that hid a method.

All features

What is included

Methods and rates

  • Unlimited methods with names per store view
  • Store views and customer groups per method
  • Subtotal excluding or including tax, before or after discount
  • Minimum and maximum rate, free shipping threshold
  • Estimated delivery text with {days}

Destinations

  • Country, region and postcode patterns
  • UK areas, outward codes, sectors, full postcodes and ranges
  • Numeric ranges and starts with patterns
  • Zones: Northern Ireland, Channel Islands, Isle of Man, Isles of Scilly, BFPO, Highlands and Islands (DPD UK list)

Restrictions

  • Hide methods of any carrier
  • Address inside or outside an area
  • Weekdays and time windows
  • Coupon used or not, basket and product conditions
  • Custom message at checkout

Tools

  • Rate simulator in the admin and on the command line
  • CSV import with dry run, export and sample file
  • Own ACL resources for every page

Feature tour

Everything your shoppers and your team see

01 / 06

Your methods at checkout

Each method shows its price and estimated delivery days. A hidden method can show your message instead.

02 / 06

One grid for every rate row

Country, region, postcode patterns and zones, shipping group, weight, subtotal and quantity ranges and charges.

03 / 06

Test a basket in seconds

Enter SKUs and a postcode to see every carrier's methods, the price calculation and which rule hid what.

04 / 06

Rules for any carrier

Hide Flat Rate, a carrier module's service or your own methods for an area, a basket, a coupon or a time of day.

05 / 06

CSV import that checks first

Every line is checked before anything is written. Dry run, append or replace, and export in the same format.

06 / 06

Hyvä cart estimate

Methods and restriction messages in the Hyvä cart shipping estimate.

Live demo

Try it before you install it

A full Magento store with the module installed, on Luma and on Hyvä. The admin demo signs you in with one click.

Compatibility

Requirements and compatibility

Compatibility of Shipping Table Rates
Magento2.4.7 – 2.4.9
PlatformsMagento Open Source and Adobe Commerce (one price)
Storefront themes Luma Blank Hyvä
PHP8.2 – 8.5
Latest version 1.2.0
composer.json requires php ~8.2.0||~8.3.0||~8.4.0||~8.5.0 magento/framework ~103.0.7 commercegears/module-core ^2.0 free, installed by Composer with this module magento/module-backend * magento/module-catalog * magento/module-catalog-rule * magento/module-config * magento/module-customer * magento/module-directory * magento/module-eav * magento/module-quote * magento/module-rule * magento/module-sales-rule * magento/module-shipping * magento/module-store * magento/module-tax * magento/module-ui *

Installation

Up and running in minutes

After you buy, create a Composer key in your account. Then, in the root of your Magento project:

  1. 01Add the repository and your key (once per project)

    composer config repositories.commercegears composer https://repo.commercegears.com
    composer config --auth http-basic.repo.commercegears.com PUBLIC_KEY PRIVATE_KEY
  2. 02Install the module

    composer require commercegears/module-shipping-table-rates
  3. 03Enable it

    bin/magento setup:upgrade
    bin/magento setup:di:compile
    bin/magento setup:static-content:deploy
    bin/magento cache:flush

    The last three are only needed in production mode.

Prefer a zip? Every version you are entitled to can be downloaded from My modules. More about Composer access

User guide

Setting up Magento 2 Shipping Table Rates

The user guide has its own page: how to install Magento 2 Shipping Table Rates, what each option does and how to use it in your store. Written for version 1.2.0; a copy ships with the module.

In the guide

Read the user guide

Changelog

Release notes

1.2.0

Latest

New: German translation of the delivery time texts.

1.1.2

  • Improvement: the rate simulator opens with an example basket from your catalogue and a UK postcode, so Show Rates works straight away.

1.1.1

  • Improvement: demo links start the guided tour; Hyvä demo link added.

1.1.0

  • New: Highlands and Islands postcode zone following DPD UK's published list.

1.0.0

  • New: first release with table rate methods, UK postcode zones, CSV import, restriction rules and a rate simulator

FAQ

Questions, answered

Something else on your mind? The developers who wrote the module answer before and after you buy.

Ask a question →

Already installed it? Open a support ticket

How many delivery methods and rate rows can I have?

As many as you need. Each method is one choice at checkout under the carrier title you set, and each method has its own rate rows. Rates are loaded for the delivery country only, so large tables stay quick.

Can I charge by weight and by basket value at the same time?

Yes. A rate row can have a weight range, a subtotal range and a quantity range, and its price is a base rate plus a charge per item, per weight unit and a percentage of the subtotal. Use one row per band.

How do I price the Scottish Highlands, Northern Ireland or the islands differently?

Add rows with postcode patterns for those areas. Northern Ireland, the Channel Islands, the Isle of Man, the Isles of Scilly and BFPO are ready-made zones (zone:northern-ireland and so on). For the Highlands and Islands there is zone:highlands-islands-dpd: the list DPD UK publishes (checked 2026-10-12). Carriers use different lists, so if you ship with another carrier, enter its list of districts instead, for example HS, ZE, KW, IV1-IV28.

Which row is used when several rows match?

Rows for the product's shipping group come first, then the most specific destination (full postcode, sector, outward code, range, area, starts with, zone, any), then the older row. The rate simulator shows the row that was used.

How do mixed baskets work, for example a sofa and a cushion?

Give the sofa a shipping group such as bulky. Each group in the basket is priced with its own row, and the method adds the group prices up or uses the highest or the lowest, as you choose per method.

Can I offer free delivery from a basket value?

Yes, per method with Free Shipping From Subtotal, on the subtotal excluding or including tax and before or after discounts. Free shipping from cart price rules is respected too, unless you switch that off on the method.

Can a restriction rule hide another carrier's methods?

Yes. Restriction rules work on the rates of every carrier, including Magento's own carriers and carrier modules, for example "no Flat Rate to Northern Ireland" or "no next day delivery on Fridays after 14:00".

What can a restriction rule check?

Store views, customer groups, delivery countries and postcode areas (inside or outside), weekdays and a time window, whether a coupon (or a listed coupon) is used, and Magento's cart price rule conditions such as subtotal, weight, quantity and products in the basket.

Can customers see why a method is missing?

Yes, if you enter a message on the rule. It is shown under the carrier at checkout, and on the Hyvä cart page below the shipping estimate.

How do I check my set-up without placing orders?

Use the Rate Simulator in the admin (or bin/magento commercegears:table-rates:simulate). Enter SKUs, quantities and an address and you see every method with its price, how it was worked out and which rule hid what. The test basket is deleted afterwards.

What happens if my CSV file has a mistake?

Nothing is imported. The report lists every line with its problems (unknown country, overlapping range, text in a price column and so on). Use Dry run to check a file before importing it.

Does it work with Hyvä and several currencies?

The checkout is Magento's Luma checkout, which Hyvä stores use through Hyva_LumaCheckout, and the Hyvä cart estimate is supported. Rates are entered in the website's base currency and converted for the customer's display currency.

Support

Help from the developers who wrote it

From the blog

Guides and articles