BazaarKitDocs → Disputes & Resolution

Paid add-on · £5 / $5 per month

Order disputes and admin mediation for Dokan marketplaces

A buyer reports a problem with their order. The seller has 48 hours to put it right or argue their case. If they say nothing, it lands on your desk with everything you need to decide — and a ruling for the buyer issues the refund for you.

Works with Dokan Lite Escrow optional One setting
Without the add-on A buyer’s completed order page showing the order details and billing address only
A buyer whose order arrived damaged has no route to tell anyone, so they email you — or charge it back.
With the add-on The same order page with a “Report a problem” link added at the bottom
With Disputes: “Report a problem” opens a case the seller must answer, and that escalates to you if they do not. (“Leave a review” comes from the Reviews add-on, also active here.)

What this add-on does

On a single-seller shop a complaint is simple: the customer emails you, and you decide. On a marketplace there are three people in the room. The buyer says the jacket never arrived. The seller says they posted it. And you, who never touched the jacket, have to work out who gets the money.

This add-on gives that conversation a shape. The buyer opens a dispute from their own order page, picking from a set list of reasons. The seller sees it on that order in their dashboard, with a deadline, and can accept it — which refunds the buyer straight away — or contest it. If they do neither, it escalates to you after 48 hours.

Your side is a queue: the order, the seller, the reason, what both parties said, and two buttons — Refund buyer or No refund. Ruling for the buyer issues the refund through WooCommerce there and then.

The short version: buyers get a way to complain that is not your inbox, sellers get a fair chance to answer, and you get a decision queue. It runs on Dokan Lite, with or without the Escrow add-on.

Why a marketplace needs this

A marketplace without a dispute process does not avoid disputes — it handles them badly. Complaints arrive in your inbox, because you are the only party with a contact form, and you end up relaying messages between two people who cannot see each other. Nothing is recorded, so a seller who feels hard done by has nothing to look at, and nor do you six months later. And with no visible route to a resolution, buyers go to their bank instead — a chargeback costs you the money, the fee and the relationship, and is decided by someone with less information than either of you.

What Dokan gives you

Dokan Lite has nothing here. No disputes, no mediation, no structured returns — there is no setting to switch on, because the feature does not exist in the free plugin.

Dokan's answer is its Vendor RMA module, return and warranty requests, which sits in the paid Dokan Pro tiers. It is a good feature, but it is a returns workflow — a buyer requesting a return under a vendor's policy — not a mediation workflow where you rule on a contested claim. WC Vendors has no dispute module at all. So the options for a Dokan dispute resolution alternative really are that thin. This one is £5 / $5 per month, cancel anytime, and runs on Lite — the full comparison shows where the two overlap.

How a dispute flows, step by step

  1. The buyer opens it. On their order page in My Account there is a “Report a problem” panel. They choose a reason, describe what happened, and submit. The seller is emailed.
  2. The seller has 48 hours. The dispute appears on that order in their dashboard, with the buyer's message and the exact deadline. They can accept and refund, or disagree and escalate.
  3. Accepting refunds immediately. The refund is issued on the spot — that seller's items plus postage — and the buyer emailed. You are not involved, which is the outcome you want most often.
  4. Contesting, or silence, escalates to you. A disagreement goes straight to your queue; silence is caught by an hourly check once the 48 hours are up. Silence never refunds the buyer by itself.
  5. You decide. Refund buyer returns the money through WooCommerce immediately; No refund closes the case with nothing moved. The buyer is emailed the outcome either way.

Every step writes a plain-English note on the order, prefixed [BazaarKit] — who claimed what, when it escalated, what you ruled, how much moved.

What the buyer sees and does

Nothing is added to your storefront, menus or checkout. The dispute lives on the standard WooCommerce My Account → Orders → View order screen, so it works with any theme and buyers find it where they already look.

They open a “Report a problem” panel and pick one of nine reasons: item condition not as described · wrong size delivered · item may be counterfeit · I never received it · package was empty or wrong contents · damaged in transit · I received a different item · item didn't match the photos · something else. A short description is also required, which spares everyone the “it's wrong” report nobody can act on.

The form is then replaced by a status panel: Open — awaiting seller, Under review, Resolved — refunded, Resolved — no refund, or Resolved. The seller's reply shows there too, and the buyer is emailed at each turn.

Two limits. A buyer can only dispute an order that is processing, on hold or completed, and can hold one open dispute per seller per order.

What the seller sees and does

The seller is emailed as soon as a dispute is opened, and it appears on that order in their Dokan dashboard, below the order notes: the reason, the buyer's message in full, and the date their window closes. They get a message box and two buttons — Accept & refund buyer and I disagree — escalate. Nothing to learn, and no way to quietly delete a complaint. With the Notifications add-on they get a dashboard bell too.

Sellers cannot rule on their own disputes. Accepting refunds the buyer — giving money back is always allowed. Disagreeing closes nothing; it hands the decision to you.

Your mediation queue

Disputes needing a decision appear in two places, with the same cases and the same two rulings: WordPress admin → BazaarKit → Disputes, and /dashboard/disputes/ — the same queue inside the Dokan dashboard, so you can triage without leaving the storefront.

Both are admin-only, including the one inside the Dokan dashboard. The tab requires the manage_woocommerce capability, so only you and your shop managers see it. Vendors get no “Disputes” tab and cannot reach the queue by typing the URL.

Each row gives you the order number, the seller, the reason, the status, how long ago it was opened, and a trimmed view of what each party said. Anything past 48 hours with no seller response is flagged.

Refund buyer issues the refund immediately — that seller's items plus postage — through WooCommerce's own refund, so the money goes back to the card or account the buyer paid with. No refund closes the case with nothing moved. Both email the buyer and write the outcome onto the order.

With Escrow installed, a dispute refund also reverses that seller's held or already-released payout. One honest limit: opening a dispute does not by itself freeze a payout due for release, so on a slow case the seller may already have been paid. The reversal still recovers it.

Your settings

There is one, at WordPress admin → BazaarKit → Settings, in the Disputes & Resolution section. The add-on is deliberately opinionated: the parts of a dispute process people get wrong are the parts you cannot configure.

The Disputes and Resolution section of the BazaarKit settings screen in WordPress admin, showing the Seller response window field set to 3 days
BazaarKit → Settings → Disputes & Resolution. One field, one save button.
SettingWhat it doesDefault
Seller response window (days) How long a case may sit unresolved in your mediation queue before BazaarKit emails you a reminder that it is still waiting on your decision. One reminder per escalation, sent by a daily check — it never repeats and never moves money. Range 1–30 days. 3

Worth knowing: the seller's own window — the time they have to answer before a dispute escalates to you — is a fixed 48 hours and is not configurable today. The field above governs the reminder that chases you once a case has escalated.

The rest is fixed on purpose. Silence never auto-refunds, or ignoring a dispute would be the cheapest way for a buyer to get their money back. A refund covers items and postage but never a platform fee. And rulings are per seller, so one bad seller on a three-shop order does not refund the other two.

What an unlicensed site sees

The Disputes section appears whether or not you hold a licence — padlocked, with a line saying what the setting controls.

The BazaarKit settings screen on a site without a licence, showing padlocked add-on sections including Disputes and Resolution
Padlocked sections on an unlicensed site.

What you need to change in WooCommerce

Nothing. No page to create, no shortcode to place, no template to override, no email to configure. The buyer's form is added to the standard WooCommerce order page and the seller's panel to the standard Dokan order detail page, whatever theme you run.

Three things do need to be true, and all three are one-time:

  1. The free BazaarKit core is active. It draws the settings screen and holds the licence.
  2. The module is switched on at BazaarKit → Add-ons, with an active licence. Both must be true for disputes to run.
  3. WordPress scheduled tasks are running. Escalation is an hourly job, the reminder a daily one. If you have disabled WP-Cron in wp-config.php, make sure a real server cron job calls it, or nothing will ever escalate.
The BazaarKit Add-ons screen in WordPress admin, listing each module with its price and an on or off switch
BazaarKit → Add-ons. Every module is a switch; nothing runs until you turn it on.

Emails go through WordPress's own mail, so they use whatever you already have — an SMTP plugin, a transactional service, or the server's mailer. No external service, no API key.

How to actually be a fair mediator

The software gets a decision to your desk. It cannot make the decision, and nobody writes down how, so here is what works.

Know what you are ruling on

You are not ruling on who is nicer, but on one narrow question: did the buyer receive what the listing promised? Rudeness is a separate matter, handled separately. The moment you weigh tone, your rulings stop being predictable — and predictable is the only thing that makes sellers accept the ones they lose.

Ask for the evidence that matches the claim

One practical note: a dispute carries one written message from each side, not file uploads. Ask for photographs by email, or through the Messaging add-on, which does take images.

Give a real deadline, then hold it

Ask for what you need in one message, say when you will decide without it, and then decide. Three days is usually right for photographs, five for a postage receipt. Sellers learn quickly whether your deadlines are real.

When it is genuinely 50/50

Two rules of thumb. The party who could have prevented it carries the loss — a seller who posted without tracking chose to have no proof, and a buyer who gave an incomplete address chose the same. Then look at history: a seller with two hundred clean sales and one odd complaint is probably telling the truth; one with three disputes this month probably is not. Use it as a tiebreaker, never as an opening assumption.

Say why, in one sentence

Write the reason on the order. “Refunded: tracking shows no scan after collection.” “No refund: item matches the listing photographs.” It takes ten seconds, it makes the losing party far less likely to go to their bank, and in six months it is the only thing that will remind you what happened.

How to check it is working

  1. Check BazaarKit → Add-ons shows Disputes & Resolution switched on, and the Disputes section in Settings unlocked rather than padlocked.
  2. Place a test order from a vendor and set it to Processing or Completed.
  3. As the buyer, open My Account → Orders → View order and file a report with any reason.
  4. Check the seller's email, then open that order in the vendor dashboard — the panel should show a deadline and two buttons.
  5. As admin, open BazaarKit → Disputes, press Refund buyer, and confirm the order shows a refund for that vendor's items and postage, and only those.

If you would rather poke at a working marketplace than build one, the live demo has this set up, and you can sign in as the store owner, a vendor or a buyer.

Troubleshooting

“Report a problem” does not appear on the buyer's order

Four causes, in order of likelihood. The order status is not processing, on hold or completed. The buyer already has an open dispute against that seller, so they see the status panel instead. The order was placed as a guest and is not attached to a customer account. Or the module is off, or the licence has lapsed.

A dispute has passed 48 hours but has not escalated

Escalation runs hourly, so up to an hour late is by design. Hours or days late means WP-Cron is not running — usually DISABLE_WP_CRON set in wp-config.php with no server cron replacing it, or a site so quiet nothing triggers the scheduler. The same cause stops the reminder emails, so if neither fires, start there.

I ruled “Refund buyer” and was told the refund failed

The dispute deliberately stays in the queue rather than showing as resolved, because the money did not move, and an order note records why. Usual causes: a gateway that will not refund automatically, a payment too old for its refund window, or line items that can no longer be matched to that seller because the product was hard-deleted. Refund by hand with WooCommerce's own Refund button; the double-refund guard means it will not be duplicated later.

A vendor says they cannot find the Disputes tab

They will not have one — the queue is admin-only. Sellers respond on the order itself, below the order notes in their dashboard.

Frequently asked questions

Does Dokan Lite have dispute resolution?

No. Dokan Lite has no dispute or mediation system. Dokan's nearest feature is its Vendor RMA module — returns and warranty requests — which is part of Dokan Pro. This add-on gives you buyer disputes, seller responses and an admin mediation queue on top of Dokan Lite.

What can a buyer open a dispute about?

One of nine reasons: item condition not as described, wrong size delivered, item may be counterfeit, I never received it, package was empty or wrong contents, damaged in transit, I received a different item, item didn't match the photos, or something else. They also write a short description.

How long does the seller get to respond?

48 hours from the moment the buyer opens the dispute. The seller sees the exact deadline on the order, and an hourly background check escalates anything still unanswered past it.

Is the buyer refunded automatically if the seller ignores the dispute?

No, and that is deliberate. Silence escalates the case to your mediation queue; it never pays the buyer out on its own. A seller should not lose money for being away for two days, so a human always makes that call.

What does the Refund buyer button actually refund?

That seller's items on the order plus their postage, and nothing else. It goes through WooCommerce's own refund, so the money returns to the buyer's original payment method. Other sellers on the same order are untouched.

Can vendors see the mediation queue?

No. It requires the manage_woocommerce capability, so only you and your shop managers can open it — including the copy inside the Dokan dashboard. A seller only ever sees the dispute raised against their own order.

Do I need the Escrow add-on for disputes to work?

No. Disputes works on its own and issues a plain gateway refund. If you run Escrow as well, a dispute refund also reverses that seller's held or already-paid Stripe transfer.

Where is a dispute stored, and what happens if I remove the plugin?

On the WooCommerce order itself, with a plain-English order note at every step. There is no separate database table, and dispute records stay on your orders even if you delete the add-on.

What happens if the automatic refund fails?

The dispute stays in your queue, an order note records why, and you can refund by hand with WooCommerce's own Refund button. A dispute is never marked refunded unless the money actually moved.

Where to go next

Give complaints somewhere to go.

Start with the free BazaarKit core, then add Disputes & Resolution for £5 / $5 a month when the first “where is my order” email arrives. Cancel any time.

See pricing Try the live demo