webshopapps / module-matrixrate
webshopapps/module-matrixrate
Magento Shipping Multiple Table Rates - MatrixRate
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
-
Enable MatrixRate:
- Log in to your Magento Admin.
- Go to
Stores > Configuration > Sales > Shipping Methods > WebShopApps Matrix Rate. - Set
EnabledtoYes.
-
Upload a CSV File:
- Prepare your shipping rules in a CSV file. You can find examples and instructions in our documentation.
- Go to the MatrixRate settings page and upload your file.
-
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.logandvar/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:
- https://github.com/Genmato/MultiStoreSearchFields
- https://alankent.wordpress.com/2014/08/03/creating-a-magento-2-composer-module/
- https://github.com/SchumacherFM/mage2-advanced-rest-permissions
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
| 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.
| 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 |
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.