Magento shipping for South Africa, sorted.
A Composer-installed module that speaks Magento's own vocabulary — sources, stocks, shipments, tracks — and hands the courier problem to a single API underneath.
Connect MagentoHow it works with Magento
No developer, no data migration, no downtime on your store.
Install via Composer
Require the module, run setup:upgrade and compile as usual. It ships DI configuration only — no core rewrites, no layout hijacking, no observers on checkout.
composer require motho/module-shipping
Configure the integration token
Create a Magento integration with order and shipment access, then paste the Motho API key under Stores → Configuration → Sales → Delivery Methods.
Magento_Sales::shipment, Magento_Sales::sales_order
Map sources to collection addresses
With MSI enabled, each source maps to a collection address so rates and pickups reflect the warehouse that's actually shipping the item. Single-source stores map once and forget it.
inventory_source_code → motho_collection_id
Shipments and tracks written back
Booking creates a real Magento shipment with the courier as carrier and the waybill as the track number, so order state, invoices and the customer account all stay correct.
POST /V1/order/:id/ship
Four things you stop doing by hand.
Rate comparison at fulfilment
Compare the network per shipment, per source. Because rating happens at fulfilment rather than in a checkout carrier plugin, there's no page-load cost and no cached-rate drift.
Booking and waybills over the API
Everything the admin UI does is available on the REST API underneath, so agencies can drive booking from an ERP or a bespoke fulfilment screen instead of the Motho dashboard.
Branded tracking pushed back
Tracks land on the Magento shipment, and the branded tracking page covers every courier so the customer never sees a courier-portal dead end.
Returns tied to RMAs
Create the inbound leg against the order and reference your RMA number on the waybill so the receiving team can match parcels to authorisations.
The module registers no checkout carrier and makes no external calls during quote collection, so Magento's checkout timings are untouched.
Magento shipping questions
Which Magento versions are supported?
Magento Open Source and Adobe Commerce 2.4.4 and later, on PHP 8.1 or 8.2. Magento 1 is end of life and is not supported.
Does it support Multi-Source Inventory?
Yes. Sources map to collection addresses, partial shipments per source are rated and booked separately, and the Magento shipment records reflect each leg individually.
Can we call it from our own code instead of the admin UI?
Yes — the module is a thin client over Motho's REST API. Quote, book, label, track and return are all available directly, with idempotent booking and signed webhooks for tracking events.
How does it behave in a multi-store or multi-website setup?
Store views and websites can each carry their own collection address, branding on the tracking page and courier preferences, while billing stays on one Motho account.
What about B2B orders and road freight?
Palletised and bulk consignments route to the road-freight carriers in the network rather than the parcel couriers, using the same booking flow with weight and dimension thresholds you control.
Does the module affect checkout performance?
No. Nothing runs on the checkout request path — no carrier collection, no external call during rate estimation. Rating happens after the order exists.
Connect Magento in minutes.
Free to start, no courier accounts to open, no contract.
Start shipping with Motho