What this add-on does
Start from what you already have. The free BazaarKit plugin gives every vendor their own flat postage price on every listing, charges the buyer one bundled rate per shop, and quotes that rate wherever the buyer is — an address down the road or an address in Osaka. That is per-vendor shipping, and on its own it will sell abroad perfectly well.
What it cannot do is charge a Spanish buyer differently from an Australian one. One price goes everywhere, which is generous to the far customer and expensive for the seller.
This add-on gives a listing a second set of prices, one per continent — or a single worldwide figure that replaces the flat rate once the parcel leaves the country. It also lets a vendor say they do not post to a region at all, which the flat rate has no way of expressing. Vendors set it in the product form they already use, directly beneath the ordinary shipping price.
The short version: without this add-on, a vendor's postage price is quoted to every country. With it, a vendor can price Europe and North America separately, and leave Oceania blank to say they do not post there.
Installing this add-on must never lose a vendor a sale the free plugin would have made. So a listing whose vendor has not set any continent prices is not treated as “declined” — it keeps being quoted at their ordinary flat rate, exactly as if this add-on were not installed. Only a listing that has been given continent prices can decline a region, because only that vendor has actually said so.
Why a vendor has to ask for per-continent pricing
A first-time seller posting a knitted jumper from Sheffield has a domestic shipping account, a book of stamps and no appetite for a customs form. Rearrange their postage without asking and they either under-price a parcel to Australia and lose money, or quietly stop listing.
So this add-on changes nothing until a vendor opens a listing and fills something in. Until then that listing keeps the behaviour it already had — the vendor's flat price, quoted to every country. Nothing is switched off by installing this, and nothing is switched off by removing it.
The consequence worth knowing: if the licence lapses, regions a vendor declined become shippable again at their flat rate, because the add-on simply stops having an opinion and the free plugin's own behaviour — post anywhere — returns. That is a change in what vendors are charged for, so BazaarKit tells you rather than letting you find out on an order.
How “international” is worked out
An order is international when the buyer's delivery country differs from the seller's own country — an exact country match, not a trade bloc. A seller in France posting to Germany is international, because Germany is not France.
The seller's country comes from their Dokan store address, falling back to your store's base country if that address has none. If either country is unknown — a guest who has not typed an address yet — the order counts as domestic, so a home-country checkout is never blocked by accident.
The two pricing modes
A vendor who has opted a listing in picks one of two modes. They are mutually exclusive, so what you see on the edit screen is what the buyer is charged.
One price worldwide
A single figure for every country outside the seller's own. Right for small, light things where postage does not change much with distance.
Example. A seller in Manchester puts 8.00 in the worldwide box on a silver bracelet. A buyer in Dublin pays £8, and so does a buyer in Tokyo.
Different prices per region
A price for each continent, one row at a time. There are six: Europe, North America, South America, Asia, Africa and Oceania. Each can be given a price or left empty.
Example. The same seller lists a heavy wool coat. They put 4.00 against Europe, 9.00 against North America, and leave the rest blank. A buyer in Spain pays £4. A buyer in Canada pays £9. A buyer in New Zealand is offered no delivery at all, because that seller does not post to Oceania — which is precisely what they said.
The continents are WooCommerce's own, so the country list is the one your store already uses. Antarctica is not offered, and WooCommerce counts Europe geographically, so Great Britain, Russia and Türkiye fall under Europe.
Blank is not zero
This is the one thing to make sure your vendors understand.
Leaving a region blank means you do not post there. No shipping price is offered to buyers in that part of the world, and they cannot buy the item. That is a normal, respectable answer.
Typing 0 means you post there free of charge. The buyer pays nothing for delivery and the parcel still has to be sent. Zero is a real price, not an empty box.
A seller who means “not Asia, thank you” must leave the Asia row empty. A seller who types 0 into it has promised free postage to Asia, and will find out when the order arrives.
A blank row is dropped when the listing is saved; a zero is kept. The same goes for the worldwide box — an opted-in listing with a blank price stores no international shipping at all, rather than free worldwide postage.
Say this plainly in your seller guidance. “Leave it blank” is an unusual instruction; most forms treat an empty box as an oversight. Here it is a choice, and the safest one available.
What your vendors see and do
Everything appears in the product form vendors already use, beneath the free plugin's Shipping price box. There is no separate screen to find.
- Tick “Offer international shipping”. Until it is ticked the listing still sells abroad at the vendor's ordinary flat price; ticking is what gives it prices of its own.
- Choose a mode. “One price worldwide” uses the single price box; “Different prices per region” uses the continent rows.
- Fill in what applies, in your store's currency. A comma decimal is accepted, so
12,50gives £12.50 rather than an error. - Save. The price takes effect on the next basket.
Untick the box and save to remove a listing's international prices. Note what that does and does not do: it takes away the per-continent pricing, and the listing goes back to being quoted at the vendor's ordinary flat rate everywhere. It does not stop the listing selling abroad — nothing in BazaarKit does that, because the free plugin posts anywhere by design. A vendor who wants to refuse a region must keep the box ticked and leave that region's row blank.
Three details worth knowing:
- The site-wide default price has no international equivalent. The fallback in BazaarKit → Settings fills in a blank domestic price; it never fills in a blank continent row. On a listing with continent prices, a blank row means refused, and no default quietly overrides that.
- Listings priced before the continent rows existed still work. An older single price is read as a worldwide price; there is no migration to run.
- WooCommerce's own product editor shows the checkbox and worldwide price only. Editing there will not wipe per-continent prices a vendor has set.
What buyers see
A buyer abroad whose continent has a price sees one shipping line for that shop, labelled “International shipping”, at the vendor's price for their part of the world. A buyer whose continent the vendor left blank gets no shipping option for that shop, and WooCommerce stops the checkout there.
Why refusing is the correct behaviour
It looks severe the first time you see it. But if a vendor has said they do not post to Oceania, the alternatives are to invent a price they never set, or to take the buyer's money for a parcel nobody is going to send. Both are worse than a checkout that politely declines.
Inside a basket the rule is: every item that has continent prices must reach the buyer's destination, or the whole shop's package is refused. A partial rate covering some of the basket would be worse than none. The buyer can remove the item that does not travel, and other shops in the basket are unaffected.
An item with no continent prices is not part of that decision. Its vendor has never refused anything, so it cannot veto a parcel — it is priced at the flat rate the free plugin would have charged, and bundled in with the rest. This matters more than it sounds: without it, one untouched listing beside one carefully priced listing would have refused a basket that the free plugin on its own would have sold.
Baskets going abroad
When an overseas buyer takes several things from one shop, the rule that governs domestic postage governs the international rate too. Set it once, in BazaarKit → Settings → Multi-item bundle rate:
- Highest per-item rate (the default). Two items priced £4 and £9 to North America come to £9.
- Sum of per-item rates. The same two come to £13.
Quantities count either way. There is deliberately no separate international bundle setting, so domestic and overseas pricing cannot drift apart. The reasoning for picking one is on the per-vendor shipping page.
Your settings
There is very little here, and that is honest rather than coy: the add-on has no settings screen of its own. Every decision is either a vendor's, taken on the listing, or one you have already made for domestic shipping. Three things govern it:
- The on/off switch on BazaarKit → Add-ons. It must be installed, licensed and switched on. Switch it off and continent pricing stops applying — every listing goes back to the free plugin's flat rate to every country, including regions a vendor had declined. Their saved prices stay on their listings and come back when you switch it on again.
- Multi-item bundle rate in BazaarKit → Settings, shared with the free core.
- Each listing's own prices, set by the vendor.
What to change in WooCommerce
One thing, and it catches almost everybody at least once.
Check WooCommerce → Settings → General → Selling location and Shipping location. If either is limited to specific countries, foreign buyers are stopped before shipping is even considered, and your vendors' international prices will be perfectly correct and completely unused.
Set Selling location to sell to all countries (or a list including the ones you want), and Shipping location to ship to all countries you sell to. This is WooCommerce's own gate; no plugin setting overrides it.
Beyond that, nothing. The free core already keeps a flat-rate method in WooCommerce's catch-all zone so baskets count as shippable, and BazaarKit replaces its rate with the vendor's own. Do not delete that method, and do not build zones per country or per continent.
Check one thing on your vendors instead: every store address needs a country on it (Dokan → vendor → Settings → Store). That country decides which of their orders count as international.
Advising your vendors on pricing
This decides whether international shipping is good for your marketplace or a slow drain on the sellers who try it. Under-pricing overseas postage is the commonest way a small seller loses money on a sale, and they usually find out at the counter.
Price it before listing, not after
The honest number is the one on the courier's website today, for the real weight of the real parcel, to the furthest country in that region. A seller guessing from memory is remembering a domestic price.
Remind them what the price covers
Postage, yes — but also the box, the padding, the tape, the time queuing, and the greater chance of a long journey going wrong. A £9 rate that leaves 40p in a seller's pocket is not a rate, it is a favour.
Per-continent is usually kinder than one worldwide figure
A single worldwide price has to be high enough for the furthest destination, so it over-charges the nearest and quietly loses those sales. A seller in Ireland pricing Great Britain and Australia alike is either subsidising Australia or has priced Britain out.
Blank is a perfectly respectable answer
Nobody has to post everywhere. A seller comfortable with Europe should price Europe and leave the other five rows empty. Say so out loud: six empty boxes read like homework, and sellers who feel obliged to fill them all in are the ones who guess.
Revisit prices, do not set and forget
Postage rates rise, usually once a year. A rate typed eighteen months ago is a discount the seller never agreed to.
How to check it is working
- Confirm the add-on is on in BazaarKit → Add-ons, and shows as active rather than padlocked in BazaarKit → Settings.
- Check WooCommerce → Settings → General allows selling and shipping to the country you are testing with.
- Edit a listing as a vendor: tick “Offer international shipping”, choose Different prices per region, put
4.00against Europe, leave the rest blank, and save. - Add it to a basket with an address in Spain. You should see “International shipping” at £4.00.
- Change the address to Australia. The option should disappear and the checkout should refuse to proceed — the blank Oceania row doing its job.
- Change it back to the seller's own country. The ordinary domestic rate should return.
- Add a second item priced
9.00to Europe and return to Spain. On the default rule the total should be £9.00, not £13.00.
To try it on a marketplace that already exists, the live demo has vendors, listings and a checkout you can sign into as owner, vendor or buyer.
Troubleshooting
“No shipping options were available”
WooCommerce's exact wording varies by version and by checkout, but this is the message people search for. On a BazaarKit marketplace it almost always means one of four things:
- The vendor does not post there. The commonest cause by far, and not a fault — the region was left blank on purpose. Open the listing and look at the continent rows.
- WooCommerce is not selling or shipping to that country in Settings → General, which stops the address before shipping is ever considered.
- One item in the basket declines that region though the others allow it. The shop's whole package is refused; remove the item that does not travel.
- Nobody has set a shipping price on any of those listings. BazaarKit only prices a shop's parcel once a vendor has put a number on at least one of its listings; until then WooCommerce's own rates apply, and if you have none configured there is nothing to show.
Note what is not on that list: the add-on being switched off. Without it every foreign address still gets the vendor's flat rate, so “no shipping options” is never caused by not owning this.
A buyer abroad is offered free shipping unexpectedly
Someone typed 0 where they meant to leave the row empty. Clear the box and save.
A vendor ticked the box but buyers abroad still cannot check out
Check a price was actually saved: ticking the box and leaving the price blank stores nothing, on purpose. Then check the mode — “Different prices per region” ignores the worldwide box, and vice versa.
Neighbouring countries are priced as international
That is correct. Every country is its own, so Belgium to the Netherlands is international, priced under Europe. If you want that cheap, the vendor should set a low Europe rate.
A seller's parcels to their own country are blocked
Their store address is probably missing a country, so BazaarKit falls back to your store's base country and treats their home orders as foreign. Add the country to their Dokan store address.
Frequently asked questions
Does every vendor have to set continent prices?
No. A vendor who never ticks the box carries on exactly as before: their one flat postage price, quoted to every country, which is what the free BazaarKit plugin does on its own.
What happens if a vendor leaves a region blank?
That listing is not posted there. No shipping rate is offered to buyers in that region, so WooCommerce will not let them check out with that item.
Is entering 0 the same as leaving a region blank?
No. Zero means you post to that continent free of charge. Blank means you do not post there at all.
Can a vendor charge a different price to Europe and to Australia?
Yes. Choose “Different prices per region” and price each continent — £4 to Europe, £9 to North America, nothing to Oceania. The six are Europe, North America, South America, Asia, Africa and Oceania.
Can a vendor set a price for one individual country?
No. Pricing is per continent, or one flat price worldwide. Continents keep the form short enough that sellers actually fill it in.
An EU seller is posting to another EU country — is that domestic or international?
International. It compares the buyer's country with the seller's own, and every country is its own. France to Germany is priced under Europe.
Does this handle customs, duty or import charges?
No. It sets the postage price and nothing else — no customs paperwork, no commercial invoice, no duty calculation.
Are live carrier rates or tracking included?
No. This is flat per-listing pricing: the price the vendor types is the price the buyer pays. No carrier account, no live rates, no weight tables, no tracking.
What happens when someone abroad buys several items from one shop?
The same bundling rule as domestic postage, set once in BazaarKit → Settings. By default the buyer pays the highest item rate in that shop's basket; you can switch it to the sum.
What does the add-on cost?
£5 / $5 per month, cancel anytime. Per-vendor shipping stays free, to every destination, whether or not you buy this.
Where to go next
Let your sellers post abroad, on their own terms.
£5 / $5 per month, cancel anytime. Per-vendor shipping stays free either way — start there, and add this when a seller needs to price two continents differently.
See pricing Try the live demo