webshopapps / module-matrixrate

webshopapps/module-matrixrate

Magento Shipping Multiple Table Rates - MatrixRate

magento2-module 2.4.6-2.4.9 Compatible Based on composer requirements only QA: failed OSL-3.0, AFL-3.0

MatrixRate for Magento 2

The MatrixRate shipping extension is the original Magento solution developed by ShipperHQ that enables you to offer multiple shipping options to customers based on their location. MatrixRate will enable you to define different shipping rates according to destination, shipping method and the weight, price or quantity of an item.

For businesses seeking even greater shipping customization and real-time carrier integrations, consider upgrading to ShipperHQ.


Features

  • Custom Shipping Rates: Define rates based on destination and weight or price or quantity. For advanced features like multi-origin shipping and in-store pickup, check out ShipperHQ.
  • Based on Magento Tablerate: MatrixRate is built on the Magento Tablerate module, providing a familiar interface for Magento users.
  • Flexible Configuration: Set up multiple shipping methods and rules to accommodate different scenarios. ShipperHQ expands on this by offering advanced packaging algorithms and delivery date options.
  • CSV-Based Rules: Use a straightforward CSV file to upload and manage shipping rules.
  • Localized Shipping Options: Tailor rates and methods to specific regions, countries, or postal codes.

Installation

Install using composer, you can find full instructions in the ShipperHQ documentation.


Requirements

  • Magento 2.4.4+
    • Compatibility with earlier editions is possible but not maintained
    • Supports both Magento Opensource (Community) and Magento Commerce (Enterprise)

Configuration

  1. Enable MatrixRate:

    • Log in to your Magento Admin.
    • Go to Stores > Configuration > Sales > Shipping Methods > WebShopApps Matrix Rate.
    • Set Enabled to Yes.
  2. Upload a CSV File:

  3. Test Checkout:

    • Add products to your cart and proceed to checkout to ensure the correct rates and methods appear.

Support

For further information on using Matrixrates, please refer to our online documentation.

As a free extension, WebShopApps MatrixRates is provided as-is without support.

WebShopApps MatrixRates is provided AS IS and we are not accepting feature requests at this time. Extended functionality and full support is available via ShipperHQ.


Frequently Asked Questions

1. Can I set up free shipping for specific conditions?

Yes, you can define a Shipping Price of 0.00 in the CSV file for specific conditions, such as orders over a certain amount.

2. What happens if no rules match?

If no rules match the customer’s criteria, MatrixRate will not display a shipping method. Ensure you have a fallback rule if needed.

3. How do I troubleshoot issues with rates?

  • Check our troubleshooting guide in the ShipperHQ documentation.
  • Check the Magento logs for errors: var/log/system.log and var/log/exception.log.

Credits

This extension borrows heavily from the Tablerate capability in Magento2. In order to keep codebase as bug-free and
conformant as possible the tablerate code is used in preference to writing from scratch. This hopefully also
allows for easier understanding by users.

We would like to acknowledge and thank the Magento 2 Development team for making their codebase open for such use.

The composer structure is taken from various sources, most heavily using structure from https://github.com/sjparkinson/static-review.

Assistance around composer, Magento2 structure, etc was also taken from these sources:


Contribution

Any contribution is highly appreciated. The best way to contribute code is to open a pull request on GitHub.


License

See license files.

We also dutifully respect the Magento OSL license.


Copyright

Copyright (c) 2015 Zowta LLC & Zowta Ltd. (http://www.ShipperHQ.com)

Change Log

All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning(http://semver.org/).

1.2.1

Fixed composer file

1.2.2

Removed version from composer so just uses tagged version on packagist

1.2.3

SHQ16-911 resolved shipping carrier validation in cart and checkout

1.2.4

M2-19 modified js validation

1.2.5

SHQ16-1346 make address fields not mandatory and include region for support for text field region

1.2.6

SHQ16-1335 updated docs links in readme and configuration header, SHQ16-1346 make address fields not mandatory and include region for support for text field region, M2-19 modified js validation

1.2.7

SHQ16-1617 remove csv from url params

20.0.6

M2-20 account for php configuration temp dir

20.0.7

M2-23 remove crontab file, not required

20.0.8

M2-20 account for upload when no upload_tmp_dir setting in php config

20.0.9

M2-23 remove crontab file, not required, M2-20 account for upload when no upload_tmp_dir setting in php config, Updated readme with latest M2 issues and updated support statement

20.1.0

M2-23 remove crontab file

20.2.3 (2019-05-09)

SHQ18-1978 Trim postcode and ensure condition value is not null

20.1.5 (2019-05-09)

SHQ18-1978 Trim postcode and ensure condition value is not null

20.1.6 (2020-05-05)

MNB-3 Fix MatrixRate unit tests

20.1.7 (2020-06-30)

MNB-455 Submitted by JeroenVanLeusden. Extract condition codes to own method

20.1.8 (2020-07-16)

MNB-472 PR from JeroenVanLeusden - Accept -1 in condition from value in CSV import

20.1.9 (2020-12-21)

MNB-566 Clear down old date when upload new CSV

20.2.0 (2021-02-08)

MNB-923 Move DB install to XML. MNB-922 Fix unit tests

20.3.0 (2022-02-23)

MNB-2125 added support for BR postcode with hyphen

20.4.0 (2022-05-30)

MNB-2539 Add support for Magento 2.4.4

20.4.3 (2022-06-21)

MNB-2539 Add support for Magento 2.4.4

20.4.4 (2023-08-23)

SHQ23-433 Better handling of zero conditions

20.4.5 (2023-12-21)

SHQ23-1431 Update readme

20.4.6 (2024-01-23)

SHQ23-1381 Remove table on module uninstall

20.4.7 (2025-01-07)

SHQ23-4085 Update readme

20.4.9 (2025-01-31)

INFRA-893 Added missing mp release step

20.5.0 (2025-05-07)

SHQ23-4872 PHP8.4 and Magento 2.4.8 compatibility

20.5.1 (2025-08-27)

SHQ23-4872 PHP8.4 and Magento 2.4.8 compatibility

20.5.2 (2026-05-29)

ENG26-1125 Updates for Magento 2.4.9 and PHP 8.5 compatibility

Versions
Version Stability QA Status Released
20.5.2 stable Fail 2026-05-29 11:24:47
20.5.1 stable Not tested 2025-08-27 09:05:06
20.5.0 stable Not tested 2025-05-07 15:46:12
20.4.9 stable Not tested 2025-01-31 08:52:08
20.4.8 stable Not tested 2025-01-30 16:54:37
20.4.7 stable Not tested 2025-01-07 17:11:07
20.4.6 stable Not tested 2024-01-23 09:50:35
20.4.5 stable Not tested 2023-12-21 13:00:53
20.4.4 stable Not tested 2023-08-23 16:20:40
20.4.3 stable Not tested 2022-06-21 10:51:27
20.4.0 stable Not tested 2022-05-30 15:01:55
20.3.0 stable Not tested 2022-02-23 16:41:35
20.2.0 stable Not tested 2021-07-28 13:44:41
20.1.9 stable Not tested 2020-12-21 11:43:03
20.1.8 stable Not tested 2020-07-16 11:46:16
20.1.7 stable Not tested 2020-06-30 08:46:07
20.1.6 stable Not tested 2020-05-05 15:54:29
20.1.5 stable Not tested 2019-05-09 16:33:32
20.1.4 stable Not tested 2018-08-08 09:14:55
20.1.3 stable Not tested 2017-11-01 13:00:58
20.1.2 stable Not tested 2017-08-17 09:07:31
20.1.1 stable Not tested 2017-03-28 15:41:22
20.1.0 stable Not tested 2017-03-24 11:20:54
20.0.9 stable Not tested 2017-01-19 15:42:23
20.0.8 stable Not tested 2017-01-13 17:05:53
20.0.7 stable Not tested 2016-11-22 14:50:31
1.2.7 stable Not tested 2016-10-03 09:25:27
20.0.6 stable Not tested 2016-10-03 09:25:27
20.0.5 stable Not tested 2016-08-02 06:51:27
20.0.4 stable Not tested 2016-08-01 04:18:29
20.0.3 stable Not tested 2016-05-12 15:01:29
20.0.2 stable Not tested 2016-05-03 01:59:12

No dependencies declared

This package's composer.json doesn't declare any required, suggested, replaced, or conflicting packages.

QA results
Tool Status Findings Summary
PHPCS Pass 0
PHPStan Fail 25 25 errors (level 4, ruleset: phpstan + bitexpert/phpstan-magento)
Cpd Pass 0
Security Pass 0
License
OSL-3.0, AFL-3.0
Authors
Make it pay

Turn an existing module into recurring revenue.

If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.