Guide · Multi-carrier routing
Multi-carrier shipping from China, decided one parcel at a time
Multi-carrier shipping from China means each parcel is assigned its carrier channel at dispatch time rather than the merchant committing to one carrier. WooliiPorter decides in three fixed layers: a compliance gate that fails closed, a transit-band match against the promise the merchant chose, then cost selection among the channels that survived both.
The alternative is doing it yourself: one contract, one rate card and one integration per carrier, renegotiated as lanes change. A network moves that work to the routing layer — the merchant integrates once, and the per-parcel decision is run, and recorded, by the system that also operates the warehouse.
Last updated: 2026-08-09
Why the layers run in this order
Three layers could be combined into one weighted score, and that would be a mistake: a score lets a very cheap channel outbid a compliance problem. Keeping the layers ordered and absolute is what makes the decision explainable — every elimination has exactly one reason.
Compliance runs first because its failures are terminal
A parcel on a channel that cannot legally carry it does not arrive late — it gets returned, seized or destroyed. No price and no speed compensates for that, so the gate runs before either is considered.
The promise runs second because you already made it
The transit band is chosen by the merchant at booking and frozen on the parcel. Routing’s job is to honor a commitment that already exists, so only channels banded at or inside that range remain candidates.
Cost runs last because it is the only layer allowed to be greedy
Among channels that are compliant and keep the promise, cheaper is simply better. Cost decides the tie — it never overturns the layers above it.
Layer 1 — the compliance gate
Every check runs against measured and confirmed facts: the packed parcel’s weight and dimensions as the warehouse recorded them, and the cargo type as the operator confirmed it at receiving. A channel that fails any single check is eliminated regardless of price or speed.
Layer 2 — the transit band you chose
At booking you choose a transit band — a destination-and-time-range product such as 8–12 working days — and that choice is frozen on the parcel. Routing keeps only the channels whose band honors it. Channels are assigned to bands by their upper bound, conservatively: a channel is banded by the slowest delivery it still stands behind, never by its best day. The full methodology, including why a single day-count promise is not one, is in the transit-bands guide.
Layer 3 — cost, inside the band
The surviving channels are all compliant and all keep your promise, so the remaining difference that matters is cost, and the routing engine takes the cheaper channel. This is also where the network earns its keep over time: more connected channels on a lane means more survivors at layer 3, which means the cost selection has more to choose from — without you renegotiating anything.
Fail closed, never guess
The routing principle that does the most work is the least glamorous one: when an input is missing or ambiguous, the decision closes rather than guesses.
Every elimination is recorded
The decision does not just produce a winner — it produces a record: which channels were candidates, which layer eliminated each one, and why the survivor won. That record stays attached to the parcel. When a shipment raises an exception, the conversation starts from the logged decision, not from a reconstruction — and when you ask why a lane offers what it offers, the answer is readable rather than folklore.
One connection, every channel
The network property worth restating as a plain mechanism: each fulfillment provider WooliiPorter connects adds its full channel set to every shipment you book, with zero changes on your side. Your integration surface — plugin, API or MCP — does not change when the network grows. The routing decision simply has more candidates to screen.
Common questions
What is multi-carrier shipping from China?
A fulfillment model where the carrier channel is chosen per parcel at dispatch time, from every channel available on the parcel’s lane, instead of the merchant contracting and integrating carriers one by one. The routing system screens channels for compliance, matches them to the delivery promise the merchant chose, and then picks on cost.
How does WooliiPorter choose the carrier for my parcel?
In three fixed layers: first a compliance gate — declared value, measured weight, dimensions, confirmed cargo type, destination coverage — which fails closed; then a transit-band match, keeping only channels whose banded range honors the promise frozen on your parcel; then cost selection among the survivors. Cost never overrides the first two layers.
What happens when data is missing — say the declared value?
The decision fails closed. A parcel without a declared value is treated as over every ceiling, and a postcode that does not resolve to a rate zone yields no rate rather than a guessed one. Missing data narrows the candidates; it never widens them.
Do I need to integrate carriers one by one?
No — that is the point of the network. You integrate once (store plugin, Merchant API or MCP), and each fulfillment provider WooliiPorter connects adds its full channel set to every shipment you book, with zero changes on your side. WooliiPorter is the only carrier identity you deal with; the channel selection stays inside the network.
Can I see why a channel was not chosen?
The routing decision is recorded per parcel, including the elimination reason for each rejected candidate — failed the gate, missed the band, or lost on cost. When an exception is raised, your operator and ours read the same decision record instead of reconstructing it from memory.
See what a lane offers right now.
The public calculator prices lanes against the live rate table — the same engine routing quotes from.