Three differently sized parcels, each tied to its own weighing scale, travelling along three rails that merge into a single shopping basket.

A single flat delivery fee is the first thing that breaks when a cart can hold products from more than one seller. In a multi-vendor marketplace each vendor ships from a different warehouse, on a different carrier contract, with a different free-shipping threshold — so one number can only ever be wrong for someone. This is how we charge shipping per vendor on a live marketplace, why we mirror each shop's real policy instead of guessing it, and how to keep the cart math transparent enough that shoppers trust the total.

The hidden tax of a flat marketplace rate

A flat rate means picking one delivery fee and applying it to every order. It is easy to build and impossible to get right, because it has two failure modes and both cost you money.

Overcharge the simple orders. A shopper buying one small item from a nearby vendor pays the same fee as a shopper filling a pallet. The honest single-vendor order subsidises everyone else, and your most common basket looks expensive next to the vendor's own shop — where the same item ships cheaper.

Undercharge the hard ones. A basket that pulls from three vendors in three locations costs three real parcels to deliver. Collect one flat fee and the marketplace eats the gap on exactly the orders that are most expensive to fulfil.

Take an illustrative €5 flat fee. One near-domestic item overpays; a three-vendor cross-border basket might cost €18 in real carriage against your €5 of revenue. There is no flat number that is fair to both, because they are not the same shipping problem.

A flat rate also destroys the single best conversion lever a vendor owns: its own free-shipping threshold. If a vendor offers free delivery over €40, a marketplace-wide flat fee quietly erases a promise the vendor is happy to fund — we cover the honest version of that in free-shipping thresholds that don't lie.

What per-vendor shipping actually means

Per-vendor shipping treats every vendor as its own shipping domain: its fee schedule, its free-shipping threshold, its carrier options, its country of origin. The cart is partitioned by vendor, delivery is computed independently for each partition, and the results are summed. A €60 basket that is €35 from vendor A and €25 from vendor B is two shipping calculations, not one.

DimensionFlat marketplace ratePer-vendor shipping
Single-item orderOverchargedCharged the vendor's real fee
Multi-vendor orderMarketplace absorbs the gapEach parcel priced correctly
Vendor free-ship thresholdErasedHonoured per vendor
Cross-border vendorWildly mispricedReal weight-based rate
Shopper trust"Why is delivery so much?"A breakdown they can follow

The mechanical requirement that trips people up: one calculator has to power both the cart drawer and the checkout. If the running total in the mini-cart and the final total at checkout come from two code paths, they will drift, and a one-cent disagreement between the cart and the invoice is a support ticket and a trust problem. Compute shipping in exactly one place and call it from everywhere.

Mirror each vendor's real policy — don't assume it

The governing rule is simple: a vendor's shipping policy is whatever that vendor's own store charges, verified against their live checkout — not a number you guessed during onboarding. Vendors join a marketplace precisely because it doesn't change how they work (the never-re-enter principle from vendor onboarding), and that has to include their delivery terms.

For vendors on standard platforms you can read shipping the same way their own storefront does. WooCommerce and Magento both expose a cart or checkout API; request a shipping quote for a representative destination and you get the vendor's real rates, tiers and thresholds — the source of truth, not a copy.

One gotcha will bite you here: WooCommerce's Store API returns shipping prices VAT-inclusive, while catalog prices are frequently stored ex-VAT. Mirror the shipping number without checking and you either double-count tax or understate it. Decide once whether your cart operates in gross or net figures, and convert every external number at that boundary. VAT handling for the whole order is its own discipline — see VAT for online marketplaces.

From production

On our live marketplace we mirror each vendor's shipping fees and free-shipping thresholds from that vendor's own shop and verify them against the live stores. One vendor ships cross-border with weight-based rates, so we crawl its own checkout for the real numbers rather than approximating them — the mechanics are in cross-border vendor shipping.

And never invent a threshold or a fee. "Free shipping over €X" is a promise; if you made up X, you are on the hook for a commitment the vendor never agreed to, and under EU consumer-protection rules an unsubstantiated price or benefit claim is a liability, not a marketing flourish.

Cart math the shopper can follow

Per-vendor shipping means more lines in the cart, but more lines cause fewer surprises. Group the cart by seller and, for each group, show the subtotal, the delivery fee, and the distance to that vendor's free-shipping threshold. A shopper who can see why they are being charged rarely disputes the charge.

Three practical rules keep the math honest:

  • Show shipping early. Surprise delivery fees revealed only at the final step are among the most-cited reasons carts get abandoned. Per-vendor lines mean nothing is hidden.
  • Recompute on every change. Add, remove or change a quantity and every affected vendor's fee and threshold meter recalculates immediately from the same calculator the checkout uses.
  • Pick one rounding convention. Sum net and apply VAT once, or sum gross throughout — but be consistent, or the cart total and the invoice will disagree by a cent and someone will notice.

Edge cases that flat rates quietly hide

The reason per-vendor shipping is worth the extra code is that real fulfilment is full of cases a single number cannot represent:

  • Cross-border vendors. A vendor shipping from another country charges weight- and destination-based rates with discontinuous jumps. A flat fee under- or over-charges by large margins; the fix is to mirror the real carrier rate.
  • Parcel lockers. In locker-first markets shoppers pick a pickup point per vendor parcel, and locker delivery is often priced differently from courier-to-door. Per-vendor shipping is what makes per-parcel locker choice possible.
  • Heavy and bulky goods. An equipment retailer hits pallet pricing that no flat parcel fee survives; the machine that weighs 40 kg cannot ship for the same €5 as a tub of powder.
  • Interacting thresholds. Two vendors each with their own free-shipping threshold produce two independent meters; a cart-wide meter would lie to the shopper about both.

Every one of these lives naturally in the per-vendor model and is impossible in the flat one. That is the whole argument.

A per-vendor shipping checklist

  1. Partition the cart by vendor and compute delivery independently per partition.
  2. Source each vendor's fees and thresholds from their own store, verified against the live checkout.
  3. Normalise VAT at the boundary — know whether each external number is gross or net.
  4. Run one shipping calculator for both the cart drawer and the checkout.
  5. Show a per-vendor breakdown with a real threshold meter, updated on every cart change.
  6. Handle cross-border, locker and bulky-goods cases explicitly rather than averaging them away.

Key takeaways

  • A flat marketplace fee is always wrong for someone — it overcharges simple orders and undercharges multi-vendor ones.
  • Treat each vendor as its own shipping domain: partition the cart, price every parcel independently, then sum.
  • Mirror real policies, never assume them — read each vendor's own store API and verify against their live checkout.
  • Normalise VAT at the boundary; platform shipping numbers are often gross while catalog prices are net.
  • One calculator powers both cart and checkout so the running total and the invoice can never disagree.
  • Never fabricate a fee or threshold — an unsubstantiated shipping promise is a consumer-protection liability.

Frequently asked questions

Why not just charge one flat shipping fee on a marketplace?
Because a multi-vendor cart is several shipments, not one. A flat fee overcharges simple single-vendor orders and undercharges multi-vendor ones, so the marketplace loses money on the expensive baskets and looks expensive on the cheap ones. It also erases each vendor's own free-shipping threshold.
How do you know each vendor's real shipping cost?
Read it from the vendor's own store. WooCommerce and Magento expose a cart or checkout API that returns real rates and thresholds for a destination, so you mirror the number the vendor actually charges rather than assuming one. We verify each mirrored policy against the vendor's live shop.
Do product prices and shipping use the same VAT basis?
Often not, and that is a common bug. WooCommerce's Store API returns shipping VAT-inclusive while catalog prices are frequently stored ex-VAT. Decide whether your cart works in gross or net figures and convert every external number at the boundary, or the cart total and the invoice will disagree.
How should per-vendor shipping appear in the cart?
Group the cart by seller and, for each group, show the subtotal, the delivery fee, and the distance to that vendor's free-shipping threshold. Recompute on every change from the same calculator the checkout uses, and show shipping early rather than as a surprise at the final step.

Per-vendor shipping, done right, without building it yourself.

We run the cart math, the vendor-policy mirroring and the split checkout on a live marketplace so your vendors' real delivery terms just work.

Request early access See the live marketplace →