A China fulfillment bill has six layers: international freight, the fulfillment operation, value-added services, storage, route surcharges, and destination duties. The platform-wide figures are publishable: storage is 60 days free from receipt, then $0.50 per m³ per day, and the fulfillment operation is $0.99 per order + $0.20 per item. Freight is lane-based and scoped to your account, so no honest page can quote it.
Everything beyond those six layers — procurement markups, platform subscriptions, bundled “handling” with contents you cannot inspect — is structure a vendor chose, not physics. Each layer is stated with what it is measured in and how to audit it on any provider including us.
Last updated: 2026-08-01 · Machine-readable version: https://woolii.com/pricing.md · Reviewed by Alice Zhou
The six layers of a fulfillment bill
Whether a given layer applies depends on the model you use. A store holding no stock never sees the storage row or the fulfillment-operation row at all — it pays freight, whatever services it requested, surcharges and destination duties.
Layer
What it is
Measured in
How to audit it
International freight
The transport itself, priced against the live lane for the chosen destination, service level and cargo type.
Chargeable weight — the greater of measured and volumetric weight — with per-lane rounding and a per-lane minimum.
Check that the binding number is produced after packing and measurement. Anything earlier is an estimate and should be labelled as one.
Fulfillment operation
Picking, packing and measuring an outbound order dispatched from stocked inventory.
Per order plus per item — $0.99 per order + $0.20 per item.
Ask for the per-order and per-item figures separately. A single blended “handling” number hides which one grows with your basket size.
Per unit or per operation, billed on the quantity actually operated rather than the quantity declared.
Each service must be its own settlement line. If prep arrives as one bundled fee, you cannot tell which operation you are paying for.
Storage
Exists only if you deliberately hold merchant-owned stock. Computed from the immutable stock-movement ledger, not from a periodic estimate.
Per volume held per day, after a free window — 60 days free from receipt, then $0.50 per m³ per day.
If you hold no stock this layer must be exactly zero. Ask whether storage is ledger-derived or estimated: the ledger that bills you should be the ledger that shows your counts.
Route surcharges
Fuel, war-risk, peak-season, and destination-specific levies. A layer of their own, applied on top of the lane rather than hidden inside it.
Percentage of base freight, percentage of declared value, fixed per parcel, fixed per order, or per kg.
Ask whether percentages compound. They should each take the base price; surcharges stacking on surcharges is how a quoted rate quietly becomes a different number.
Duties and import taxes
Set and assessed by the destination country. Never part of a shipping quote.
Set by the destination authority. Collection point varies by scheme: IOSS/GST-style collect at sale, otherwise clearance collects from the importer.
A vendor quoting you a duty figure is estimating on an authority’s behalf. Ask instead which scheme applies and who collects — and confirm with the destination authority.
Which figures are published, and which are account-scoped
The distinction is not evasiveness, it is where the number lives. A platform-wide figure is the same for every account and is published. A lane rate is a property of an account and a route, and lives in the console. Each figure below carries its status and the place you go to see it.
Figure
Value
Status
Where you see it
Free storage window
60 days from receipt
Published platform-wide
The merchant pricing page, /pricing.md, and the monthly statement.
Storage rate after the free window
$0.50 per m³ per day
Published platform-wide
The merchant pricing page, /pricing.md, and the per-lot storage lines on the monthly statement.
Fulfillment base fee
$0.99 per outbound order
Published platform-wide
The merchant pricing page and the settlement line items on a fulfillment order.
Fulfillment per-item fee
$0.20 per item
Published platform-wide
The merchant pricing page and the settlement line items on a fulfillment order.
Value-added service unit prices
One price per service, per unit operated
Published platform-wide
The full table is on the merchant pricing page and in /pricing.md, and each service is itemised on the settlement.
International freight
Not published
Account-scoped — lane-based
Your own live rate table in the console after approval. A lane is a product line × destination country × zone × cargo type, so a single published number could not be true of two accounts at once.
Per-shipment handling on the forwarding path
Not published
Account-scoped — part of the lane
Carried in the lane’s weight brackets alongside the per-kg rate, so it moves with the lane rather than sitting in a separate list.
Route surcharges
Not published
Account-scoped — route and condition dependent
Applied at quote time from the surcharge layer, visible as their own line items on the packed quote.
Duties and import taxes
Not published, and not ours to publish
Set by the destination authority
The destination customs authority. On supported European lanes you can prepay them (DDP), in which case the prepaid duty and its service fee appear as their own line items.
Verify this yourself: the published figures are read from the same billing settings the invoice is produced from, so a price change in the operations console changes the page, and they are restated in machine-readable form at https://woolii.com/pricing.md. If a WooliiPorter page ever states a freight figure, it is wrong — merchant lanes are only visible in the console after approval.
What actually moves the freight number
Five inputs select the lane and the chargeable weight. Knowing which of them you control, and which are decided by an operation you do not perform, is most of what makes a fulfillment bill predictable.
Input
What it changes
Who controls it
Destination country and zone
Selects the lane. Zones are resolved from the postcode; an unresolvable postcode withholds the zoned lanes rather than guessing one.
Your customer’s address.
Cargo type — general or battery/cosmetic
Selects a different rate card entirely. Sensitive cargo is priced from its own cards, not surcharged onto a general price.
The warehouse operator who opens the box, recorded with who confirmed it and when.
Product line
Air packet, bulk/large cargo and the dedicated cosmetics line are separate lines with separate rounding and minimum chargeable weights.
The goods, and what the destination will accept for them.
Chargeable weight
The greater of measured and volumetric weight, rounded by the lane’s own increment above the lane’s own minimum.
How the parcel is finally packed — which is why the quote follows the packing, not the order.
Service level
Express, air cargo or bulk shipping select different lanes with different transit ranges.
You, per shipment.
The cargo-type row is the one that surprises people. It is set by the warehouse operator who opens the box, not by what you declared and not by your store category — a headphone category holds wireless units with cells in them and wired units with none. The mechanism, and what happens when the confirmed type differs from your declaration, is on batteries, cosmetics and liquids.
How surcharges compute, by basis
Surcharges live in their own layer rather than inside rate cards, which is what lets a fuel adjustment change without reissuing every lane. The basis matters more than the number: it decides whether consolidating a shipment reduces the charge, multiplies it, or does nothing to it.
Basis
How it computes
Why the shape matters
Percentage of freight
A percentage taken on the base freight figure for that shipment.
Fuel and war-risk behave this way. Each takes the base, so two of them on one shipment add rather than multiply.
Percentage of declared value
A percentage taken on the declared value of the goods, not on the freight.
This is the shape prepaid destination VAT takes. It scales with what is in the box, so a light, expensive parcel is affected far more than a heavy cheap one.
Fixed per parcel
A flat amount added once per outbound parcel.
Some destinations levy a fixed handling charge on low-value consignments cleared through a simplified scheme — meaning splitting a shipment into more parcels multiplies it.
Fixed per order
A flat amount added once per order regardless of how many parcels it becomes.
The opposite exposure to per-parcel: consolidating does not reduce it, and splitting does not multiply it.
Per kilogram
An amount per chargeable kilogram, layered on top of the lane rate.
Behaves like freight but is maintained separately, so it can be changed without reissuing every lane.
Percentage surcharges take the base price and never compound on each other. Surcharge conditions can also be bidirectional: a destination scheme can trigger a charge by its absence on one route and by its presence on another, which is why they are evaluated per shipment rather than assumed per country.
Fees WooliiPorter does not charge
What is absent from a bill is as informative as what is on it. These are commitments, stated publicly:
No fee to receive and record an inbound supplier parcel — scan, photos, measurement and recorded contents are part of the service, not a line item.
No procurement markup — WooliiPorter never buys your goods and never handles the supplier purchase payment, so there is no margin hidden inside a purchase price.
No monthly platform fee or subscription for merchant accounts.
No minimum shipment count to start or to stay.
No storage charges when you hold no stock — storage exists only for deliberately stocked SKUs and is itemised on the monthly statement.
No decision-time markup: the packed quote you approve is the freight figure that appears on the settlement.
A worksheet for comparing two providers
Ask both vendors for the same six things and compare the answers rather than the headline rates. The right-hand column is what should make you ask a second question.
Ask for
A clean answer looks like
What should worry you
The full list of fee layers
A finite list, with a billing unit against each one, that they will state before you sign anything.
A per-kg headline rate and “everything else depends”. Cost that is not in the structure is cost you will meet later.
A sample settlement for a realistic shipment
Line items that add up to the approved quote, each traceable to an operation someone performed.
A single “fulfillment” line. If one number covers freight, handling and prep, you cannot audit any of the three.
When the binding number is produced
After packing and measurement, from the parcel that is actually going to travel, approved by you before dispatch.
A quote before the goods are measured, presented as final. Volumetric weight is decided by how the box is packed.
Whether storage is ledger-derived
The same immutable movement ledger produces both your inventory view and your storage bill.
A monthly storage number with no movement trail behind it — you have nothing to reconcile it against.
The list of fees they do not charge
A stated, public list. Absence is a commitment when it is written down.
Refusal to state one. Comparing headline rates alone rewards whoever moved the most cost into the fine print.
Who sets the cargo classification
A named operation with a person and a timestamp attached — someone opened the box and confirmed it.
“We use your product category.” A category says what a product is, not what is inside it, and misclassified battery cargo is a seizure risk, not a pricing rounding error.
The publishable figures are the platform-wide ones: storage is 60 days free from receipt, then $0.50 per m³ per day, and the fulfillment operation is $0.99 per order + $0.20 per item. Each value-added service carries a published price per unit operated. International freight is lane-based — product line × destination country × zone × cargo type — and scoped to your account, so it is shown in your console after approval rather than published.
Why does this page not list freight rates?
Because a lane rate is not a property of the service, it is a property of an account and a route. The same parcel to two zones of one country prices differently, and rounding increments and minimum chargeable weights are per-lane columns rather than global constants. Publishing one number would make it wrong for almost everyone reading it.
What is a packed quote?
The binding figure produced after your parcel is packed and measured, priced against the live lane for that destination, service level and cargo type. It is what you approve before dispatch, and the settlement reconciles against it line by line. An estimate produced before measurement is a separate object and is labelled as one everywhere it appears.
What do I pay if I hold no inventory?
Per shipment, and the storage layer is exactly zero because nothing is stored. There is no monthly platform fee and no minimum shipment count, so a store running entirely on supplier-parcel forwarding pays freight, any value-added services it requested, applicable route surcharges, and destination duties.
How does settlement actually work?
From a prepaid, single-currency wallet, per shipment. The first transaction fixes the wallet currency and a mismatched top-up is refused up front. Funding is either an instant Stripe card top-up, which credits immediately with no review, or a bank transfer for larger amounts where card processing fees start to matter, which is credited after review.
What happens if my wallet balance runs short?
New warehouse work on that account is held rather than rejected — the order waits for a top-up and resumes once funds are available. Shipments already in flight are never held for a balance question, because the goods are already moving and stopping them costs you more than the shortfall.
Can I prepay duties so my customer is not charged on delivery?
On supported European lanes, yes: import duties and taxes can be prepaid (DDP) so nothing is collected at the door. The prepaid duty and its service fee appear as their own line items. This does not change the position on estimates — we still will not quote a duty figure in advance that we cannot stand behind.
Does sensitive cargo cost more than general cargo?
It is priced from its own rate cards, which makes it a different number rather than a surcharge added to a general-cargo price. Cargo type is one of the keys that selects the lane, alongside destination country, zone and service level, and it is set by the warehouse operator who opens the box rather than by your declaration.
How do I compare two vendors’ pricing fairly?
Ask both for the same four artifacts: the list of fee layers with a billing unit against each, a sample settlement for a realistic shipment, the point at which the binding number is produced, and the list of fees they do not charge. Comparing headline per-kg rates alone rewards whoever moved the most cost into the fine print.
Rates against your own parcels, not a sample one.
Lanes are scoped from real destinations and a real month of parcels. Open the account, then submit your pattern with the integration application.