What per-vendor shipping actually does
On a normal WooCommerce shop there is one seller, so one set of shipping rules is enough. A marketplace is different: the person posting a silk scarf from a flat in Leeds and the person shipping leather boots from a workshop in Glasgow have nothing in common except your website. Charging them the same postage makes one of them lose money on every order.
Per-vendor shipping gives each seller their own price, set on each individual listing. A vendor types a number into their product form — £3.50 for the scarf, £6 for the boots — and that is what the buyer pays for postage on that item. Nothing is shared, nothing is averaged, and you never have to touch it.
When someone buys several things from the same shop, BazaarKit charges one bundled rate for that shop rather than stacking postage per item, because a seller posting three scarves in one envelope should not be charging three lots of postage. You decide how that bundle is worked out — see your settings.
The short version: install the free BazaarKit core, and every vendor immediately has a “Shipping price” box on every listing. There is nothing else to switch on.
Why you need it (and why Dokan Lite does not have it)
Dokan Lite is a genuinely good free multivendor plugin, and this is not a criticism of it. But per-vendor shipping is one of the features held back for Dokan Pro. On Lite, shipping comes from WooCommerce's own zones, which are site-wide: one flat rate for everybody, or nothing at all.
That leaves marketplace owners with three bad options — absorb postage yourself, force every vendor onto one rate that suits nobody, or buy Dokan Pro for a bundle of features when shipping was the only thing you needed. BazaarKit exists for the third case. Per-vendor shipping is in the free core and always will be.
If you are weighing up the whole picture, the BazaarKit vs Dokan Pro comparison lays out what each one covers.
How it works, step by step
- A vendor sets a price on a listing. In their Dokan dashboard, editing a product, there is a “Shipping price” field. Whatever they enter is the postage for that item.
- A buyer adds items to their basket. Dokan splits the basket into one shipping package per vendor, so each shop is priced on its own.
- BazaarKit prices each package. For each shop it looks at the items in that package and works out a single rate — by default the highest per-item price in the basket.
- The buyer sees one shipping line per shop. Labelled “Shipping”, or “Bundled shipping (3 items)” when several items are being combined, or “Free shipping” when the total comes to zero.
- Payment splits as normal. Shipping is part of the order like any other line, so whatever you use to pay vendors handles it — including BazaarKit's Stripe Connect escrow if you have it.
What your vendors see
Vendors do not need training or documentation for this. When they edit a product in the Dokan dashboard, the field is simply there, with plain-English help under it:
A few behaviours worth knowing, because vendors always ask:
- Zero means free postage, not “unset”. A vendor who wants to absorb delivery types
0. - Leave it blank and your default applies — the fallback price you set in BazaarKit's settings.
- The price is per listing, not per shop. A seller can post a scarf for £2 and a coat for £8 from the same shop.
- It is in your store currency, and it is a flat price — not weight-based or per-kilo.
Your settings, and what they change
Everything lives on one screen: WordPress admin → BazaarKit → Settings. There are only two decisions.
| Setting | What it does | Default |
|---|---|---|
| Default shipping price | Used for any listing where the vendor has not set their own price. Set it to 0 and anything unpriced ships free. |
0.00 |
| Multi-item bundle rate | How a basket with several items from one shop is priced. Highest per-item rate acts as a bundle discount — the buyer pays the dearest line's postage and the rest ride along. Sum of per-item rates adds every line together. In both modes a line is that item's price multiplied by how many of it the buyer is taking, so two of the same jacket count as two lots of jacket postage. | Highest |
Which bundle mode should you pick?
Highest suits marketplaces selling small, light, similar things — secondhand clothing, jewellery, prints, books. Buying three items from one seller costs the same postage as buying one, which is exactly the nudge you want, and it is what shoppers expect from Depop and Vinted.
Sum suits marketplaces where items are genuinely bulky or awkward, and a seller really does pay twice to send two of them — furniture, plants, framed art, anything shipped on a pallet.
You can change your mind later; it takes effect on the next basket and nothing is stored against past orders.
What you need to set up in WooCommerce
For shipping itself, nothing. This is the part people expect to be fiddly and it is not — you do not build zones, you do not create methods, and you do not price anything. BazaarKit handles it, and your vendors set their own prices.
Two WooCommerce settings can nevertheless stop a delivery from ever being offered, and neither has anything to do with shipping rates. On a standard WooCommerce install both are already correct, so this is a check, not a change — but if someone has restricted your store in the past, they are where to look first.
WooCommerce will not offer any shipping at all unless at least one shipping method exists somewhere, so BazaarKit quietly adds a flat-rate method to WooCommerce's catch-all zone (“Locations not covered by your other zones”) the first time it runs. That method exists purely to make WooCommerce treat baskets as shippable — BazaarKit then replaces its rate with the vendor's own price at checkout, so the amount on that method is never charged.
Do not delete that flat-rate method. If you remove every shipping method from WooCommerce, WooCommerce decides your store does not ship anything and no rate can be shown — vendors stop earning postage and buyers see no delivery option. BazaarKit re-adds it if it goes missing, but it is simpler not to remove it.
Your own zones are safe. If you already have zones and methods set up, BazaarKit leaves them exactly as they are; it only adds the catch-all method when one is not already present.
The two settings that can silently block a delivery
- WooCommerce → Settings → General → Selling location and Shipping location. A fresh WooCommerce sells and ships to all countries, which is what you want. If either has been narrowed to specific countries, buyers outside that list are stopped before shipping is even considered — your vendors' prices will be perfectly correct and completely unused. This is WooCommerce's own gate and no plugin setting overrides it.
- Your vendors' store addresses (Dokan → vendor → Settings → Store). Every store address needs a country on it, because that country is what decides whether an order counts as domestic. A vendor with no country falls back to your store's base country, which on a marketplace with sellers in more than one country will treat some of their home deliveries as foreign.
Everything else in WooCommerce's shipping screens — zones, classes, “hide shipping costs until an address is entered” — carries on working as it always did and needs no attention for per-vendor shipping.
What buyers see at checkout
One shipping line per shop, named plainly:
- “Shipping” — a single item with a price.
- “Bundled shipping (3 items)” — several items from that shop being charged one rate.
- “Free shipping” — the rate came to zero, either because the vendor set
0or because no item in the basket has a price and your default is zero.
A basket with items from three different shops shows three shipping lines, one per shop, each priced by that vendor. That is what buyers already understand from every large marketplace, so it needs no explaining on your side.
How to check it is working
- Open BazaarKit → Settings. At the top you should see a green line reading “Shipping is ready.” If it warns you instead, follow the link it gives you.
- As a vendor (or as admin editing a vendor's product), put
3.50in the Shipping price field of one listing and save. - Add that item to a basket and open the cart or checkout. You should see a shipping line of £3.50 for that shop.
- Add a second item from the same shop priced at
6.00. On the default setting the total shipping becomes £6.00 — not £9.50 — and the label changes to “Bundled shipping (2 items)”. - Increase the quantity of that £6.00 item to two. Shipping becomes £12.00, because a line is the item's rate times the quantity in both modes.
- Add something from a different shop. A second, separate shipping line appears.
If you would rather poke at a working marketplace than build one, the live demo has all of this set up, and you can sign in as the store owner, a vendor or a buyer.
Troubleshooting
“No shipping options were available”
Almost always one of three things. First, the buyer's address is outside the vendor's country and you do not have the International Shipping add-on — the free core is domestic only, and blocking the checkout is deliberate rather than a fault. Second, every shipping method has been deleted from WooCommerce, so WooCommerce believes nothing ships. Third, the buyer has not entered enough of an address for WooCommerce to work out where they are.
The buyer is charged the wrong amount for multiple items
Check the Multi-item bundle rate setting. Most people who report this are on “highest” and expected “sum”, or the other way round.
A vendor's price is ignored
Confirm the price is saved on the listing, not in a Dokan store setting, and that you are looking at the right vendor's package in a multi-shop basket. If the field is empty, your default shipping price applies instead — that is the intended behaviour, not a bug.
Shipping shows as free when it should not
A rate of zero renders as “Free shipping”. If no item in that package has a price set and your default is 0.00, zero is the correct answer. Set a non-zero default if you would rather never ship free by accident.
Frequently asked questions
Does Dokan Lite support per-vendor shipping?
No — vendor shipping is a Dokan Pro feature, so on Lite you only have WooCommerce's site-wide zones. BazaarKit's free core adds per-vendor shipping back without Pro.
Do I need Dokan Pro as well as BazaarKit?
Not for shipping. BazaarKit's core works with Dokan Lite. If you already own Pro the two coexist, but you do not need Pro to give vendors their own shipping rates.
Can vendors charge different postage for different items?
Yes — the price is set per listing, so a seller can charge £2 to post a scarf and £8 to post a coat from the same shop.
Is shipping weight-based or per-kilo?
No. It is a flat price per listing, chosen by the vendor. That is a deliberate choice: flat pricing is what sellers on marketplaces actually understand and use, and weight tables tend to sit unfilled.
What happens with a basket from several vendors?
Each shop is priced separately and the buyer sees one shipping line per shop — the same pattern as Etsy, Depop or eBay.
Does this work with WooCommerce's own shipping zones and classes?
BazaarKit replaces the rates on a vendor's package with its own, so a vendor's price is what is charged. Your zones can stay in place; they simply stop deciding the price for marketplace packages.
Can a vendor ship abroad?
Not with the free core, which covers the seller's own country. International delivery is the International Shipping add-on, where a vendor adds a second price per listing — one worldwide rate, or a different rate per continent.
Is per-vendor shipping really free forever?
Yes. It is part of the free BazaarKit core, along with vendor holiday mode. The paid add-ons are separate and optional.
Where to go next
Per-vendor shipping is free. Start there.
Install the BazaarKit core, give your vendors their own postage rates, and add anything else only when you actually need it.
Get the free core Try the live demo