BazaarKitDocs → Per-Vendor Shipping

Free core · Included forever

Per-vendor shipping for WooCommerce and Dokan

Every vendor sets their own shipping price on each listing, and each shop charges the buyer one bundled rate at checkout. It is the piece Dokan Lite leaves out — and in BazaarKit it is free.

Free core Works with Dokan Lite No shipping zones to configure
Without BazaarKit WooCommerce cart totals showing a single site-wide “Flat rate — FREE” shipping line for a basket of three items from one vendor
WooCommerce on its own: one site-wide rate for everybody. This vendor earns nothing towards postage.
With the free core The same cart totals showing “Bundled shipping (3 items) £6.00”, the highest per-item rate from that vendor
The same basket with the free core installed: the vendor’s own prices, bundled into one rate per shop.

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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:

The BazaarKit shipping price field in a Dokan vendor's product editor, showing a domestic shipping price box and the optional international shipping section with per-continent prices
The vendor's product editor. The top box is the free core's domestic shipping price. The “Offer international shipping” section below it appears only when the International Shipping add-on is active.

A few behaviours worth knowing, because vendors always ask:

Your settings, and what they change

Everything lives on one screen: WordPress admin → BazaarKit → Settings. There are only two decisions.

BazaarKit per-vendor shipping settings in WordPress admin, showing the default shipping price field and the multi-item bundle rate options
BazaarKit → Settings → Per-Vendor Shipping.
SettingWhat it doesDefault
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

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:

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

  1. 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.
  2. As a vendor (or as admin editing a vendor's product), put 3.50 in the Shipping price field of one listing and save.
  3. Add that item to a basket and open the cart or checkout. You should see a shipping line of £3.50 for that shop.
  4. 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)”.
  5. 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.
  6. 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