https://github.com/etechflow/module-shipping-table-rates
Flexible shipping table rates for Magento 2 with a visual rule builder, live cart simulator, versioned rate sets, conflict detection, native MSI, and Hyvä support. Designed to be the merchant-friendly alternative to Amasty / MageWorx Shipping Table Rates.
https://github.com/etechflow/module-shipping-table-rates
carrier checkout ecommerce etechflow hyva hyva-compatible magento-2 magento-module magento2 magento2-module php shipping table-rates
Last synced: 24 days ago
JSON representation
Flexible shipping table rates for Magento 2 with a visual rule builder, live cart simulator, versioned rate sets, conflict detection, native MSI, and Hyvä support. Designed to be the merchant-friendly alternative to Amasty / MageWorx Shipping Table Rates.
- Host: GitHub
- URL: https://github.com/etechflow/module-shipping-table-rates
- Owner: etechflow
- Created: 2026-05-20T12:25:20.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-22T06:42:40.000Z (about 1 month ago)
- Last Synced: 2026-05-22T14:58:03.272Z (about 1 month ago)
- Topics: carrier, checkout, ecommerce, etechflow, hyva, hyva-compatible, magento-2, magento-module, magento2, magento2-module, php, shipping, table-rates
- Language: PHP
- Homepage: https://etechflow.com
- Size: 165 KB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Shipping Table Rates for Magento 2
**Flexible shipping table rates without the spreadsheet horror.**
Visual rate management. Live cart simulator. One-click rollback. Conflict detection. Native MSI + Hyvä. Designed as the merchant-friendly alternative to Amasty / MageWorx — matching their feature surface, beating them on day-to-day admin UX.
| | Amasty | MageWorx | **eTechFlow** |
|---|---|---|---|
| Community / Open Source | $229/yr | $149/yr | **$129/yr** |
| Adobe Commerce | $529/yr | +$149/yr | **$299/yr** |
| Magento Cloud | $829/yr | n/a | **$399/yr** |
| Live cart simulator in admin | ❌ | ❌ | ✅ |
| Versioning + one-click rollback | ❌ | ❌ | ✅ |
| Conflict detection on save | ❌ | ❌ | ✅ |
| Human-readable CSV columns | ❌ (PPP/FRPP/FRPUW) | partial | ✅ |
| Native MSI | bolt-on package | partial | ✅ |
| Hyvä Checkout | ✅ | partial | ✅ |
| CLI smoke-test command | ❌ | ❌ | ✅ |
---
## What it does
Adds an unlimited number of shipping methods to your Magento 2 / Adobe Commerce checkout, each driven by table rates with rich conditions:
- **Destination**: country, region, city, postcode range (alphanumeric — UK / Canada / Netherlands work)
- **Cart**: weight range, qty range, subtotal range
- **Customer**: customer group(s)
- **Product**: a `shipping_type` attribute (seeded with Standard / Fragile / Oversized / Hazmat / Cold Chain — extensible)
- **Rate formula**: base + per-product + per-kg + percent of subtotal, combined freely, with method-level min/max clamps and per-multi-type-cart aggregation (sum / min / max)
## Requirements
| | |
|---|---|
| **Magento** | Open Source 2.4.4+ OR Adobe Commerce 2.4.4+ |
| **PHP** | 8.1, 8.2, 8.3, or 8.4 |
| **Compatible themes** | Luma + Hyvä + Hyvä Checkout |
| **MSI** | Supported transparently via standard carrier contract |
## Installation
### Option A — Composer (recommended)
```bash
composer require etechflow/module-shipping-table-rates:^1.0
bin/magento module:enable ETechFlow_ShippingTableRates
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
```
### Option B — Manual (from zip)
1. Unzip `etechflow-module-shipping-table-rates-1.0.0.zip` into:
```
/app/code/ETechFlow/ShippingTableRates/
```
**The directory MUST be named `ETechFlow` (capital E, capital T, capital F) — case-sensitive on Linux servers.**
2. Enable and set up:
```bash
bin/magento module:enable ETechFlow_ShippingTableRates
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
```
3. Verify:
```bash
bin/magento module:status | grep ShippingTableRates
```
## After install — 4-step setup
### Step 1 — Enter your licence key
Admin → **Stores → Configuration → eTechFlow → Shipping Table Rates → License**
Paste the key from your purchase email.
> **Don't have a key yet?** Free on dev/staging environments — any host matching `localhost`, `*.test`, `*.local`, `staging.*`, `*.magento.cloud`, ngrok, or RFC 1918 IPs runs at full features without a licence. For non-standard dev domains, set **Production Environment = No** instead.
### Step 2 — Verify the module is active
The "Module Status" banner at the top of the config section will show ✅ **Module is active** (or one of 5 other diagnostic states with what-to-do guidance).
### Step 3 — Create your first method
Admin → **Sales → Operations → Shipping Table Rates → Add New Method**
Fill in:
- **Code**: stable machine identifier (`uk_standard`, `eu_express`)
- **Name**: customer-facing label at checkout
- **Active**: Yes
- **Sort Order**: 10 (lower = higher up in checkout list)
- **Min / Max Rate**: optional clamps
- **Multi-Type Handling**: `sum` (default) / `min` / `max` — only matters when rates target specific `shipping_type` values
Save. The Rate Rules + Versions + Simulator + CSV panels appear below.
### Step 4 — Add rate rules
**Option A — Inline editor** (best for a few rules):
Click **Add Rate Rule** on the method edit page. Fill in the conditions you want (leave blank for "any"), the rate components, and Save.
**Option B — CSV import** (best for bulk):
Click **Download CSV** to get the column template, edit in your spreadsheet editor, upload via **Upload + Import**. Choose **Replace** or **Append**.
## Key admin features (all on the method edit page)
| Panel | What it does |
|---|---|
| **Rate Rules** | List + add + edit + delete individual rules. Each row shows conditions in a compact view + the formula + per-row Edit / Delete. |
| **CSV Import / Export** | Bulk-edit via spreadsheet. Round-trips cleanly — export, edit, re-import. Per-row validation with all errors collected before any rows are written. |
| **Live Cart Simulator** | Type a hypothetical cart (country / weight / qty / subtotal / shipping types), click Simulate. See exactly which methods match, the total cost, which rate row contributed, and the formula breakdown. Replaces the "drive a real checkout to debug" workflow. |
| **Version History** | Lists the 25 most recent snapshots with one-click Restore. Every save / import / delete creates a snapshot. Rollback itself snapshots first — undo-the-undo works. |
## CLI verification
```bash
bin/magento etechflow:str:simulate \
--country=GB \
--postcode="SW1A 1AA" \
--weight=5 --qty=3 --subtotal=100 \
--customer-group=1 \
--shipping-types=fragile,standard
```
Prints structured output showing which methods matched, total cost, winning rate IDs, formula breakdown. Exit code 0 on match, 1 on no match — drop into CI / monitoring.
## Documentation
| File | Read when |
|---|---|
| `README.md` (this file) | First — overview + install + 4-step setup |
| `docs/USER_GUIDE.md` | Full reference: every field, every condition, every CSV column, troubleshooting |
| `CHANGELOG.md` | What changed in each version |
| `LICENSE.txt` | Licence terms |
## Bundle pricing
Paired with **Next Day Eligibility** + **Backorder ETA Display** in the **eTechFlow 3-Module Bundle** — one licence key activates all three.
## Support
- **Email**: support@etechflow.com — typically responds within one business day
- **Website**: https://etechflow.com
## License
Proprietary — see `LICENSE.txt`. Licensed per Magento installation, with unlimited dev/staging environments under the same business entity.
To change your production domain (e.g. site migration), email `support@etechflow.com` with your old + new domain and order number. New key issued same business day.