Founder & Lead Engineer, RAITHub
Multi-vendor marketplace development means building seven systems around one checkout: vendor onboarding, catalogue moderation, commissions, split payouts, disputes and returns, vendor dashboards, and search. A focused first release takes about 4–6 weeks at fixed scope. If your rules are standard, rent instead: Sharetribe starts at $39 a month, and Dokan has a free plugin.
If you would rather have it built for you, see how RAITHub would build this below.
What is a multi-vendor marketplace, and how is it different from an online store?
An online store sells its own stock. A multi-vendor marketplace lets many independent sellers list, sell and ship through one storefront and one checkout, while the operator takes a commission and owns the customer relationship.
That one difference creates most of the work. Every order may contain items from several sellers. Every refund has to be charged to the right seller. Every seller must see their own orders and nobody else's. And the operator carries the trust: if a seller ships late or sends the wrong item, the shopper blames the marketplace.
TheSkinProof, the founder's own marketplace venture, which RAITHub builds and runs, is the reference for this post: 5 portals (store, admin, seller, warehouse and auth), 217 API endpoints and 750+ automated tests. It is not a client project, so read it as evidence of engineering rather than a client reference. The wider build order is in the pillar guide, building a marketplace or B2B store.
What features does a multi-vendor marketplace need?
| System | Minimum for launch | Usually later |
|---|---|---|
| Vendor onboarding | Application, approval, business details, payout account via the payment provider | Tiered seller plans, document expiry reminders |
| Catalogue moderation | Approval queue for new listings, category rules, edit history | Shared product pages with many offers, automated checks |
| Commissions | One rate per category or per seller, held in minor currency units | Promotional rates, fee caps, subscription plus commission |
| Split payouts | Per-seller balances, a payout schedule, a hold period | Instant payouts, multi-currency |
| Disputes and returns | Return requests, seller response window, admin decision, refund ledger entries | Automated rules, return labels |
| Vendor dashboard | Orders, stock, payouts, statements | Analytics, ads, bulk tools |
| Search | Keyword search with filters by category, price and seller | Typo tolerance, synonyms, ranking by seller quality |
How should vendor onboarding work?
Separate "can sell" from "can be paid". Your marketplace approves the seller as a business you want on the platform; the payment provider verifies identity and bank details before money moves.
- Apply: business name, category, contact, sample products.
- Review: an admin approves, rejects or asks for more information, and every decision is logged.
- Payout account: the seller completes the provider's own onboarding. With Stripe Connect this is hosted by Stripe; the mechanics are in Stripe Connect for marketplace payments.
- First listing: goes through moderation before it is visible.
Who counts as the seller of record, and who collects tax, varies by country and marketplace model. This is general information; confirm with your adviser.
How do you moderate listings from many sellers?
Decide early whether each seller creates their own product page, or whether many sellers attach offers to one shared product. That choice shapes the database, search and moderation.
- Own listings are simpler to build and suit handmade or unique goods. Expect duplicates and inconsistent titles.
- Shared products with offers suit branded goods: one page, many sellers, each with their own price and stock. Cleaner for shoppers, but the operator must curate the master catalogue.
Either way, moderation is a state machine, not a checkbox: draft, submitted, approved, rejected, suspended. Edits to price, images or claims on an approved listing should either go back through review or be logged for spot checks. On TheSkinProof, the seller portal and the admin portal are separate applications, so moderation tools never ship inside the seller's interface.
How do commissions and split payouts work in a marketplace?
The shopper pays once, the platform records what each seller is owed after commission, and payouts run on a schedule after a hold period that covers returns. Keep it as ledger entries in integer minor units, never as recalculated totals.
A minimal commission calculation, per seller per order, looks like this:
type Line = { vendorId: string; amountMinor: number }
type Payable = { vendorId: string; grossMinor: number; commissionMinor: number; netMinor: number }
// rateBps: commission in basis points per vendor (1000 = 10%).
export function vendorPayables(lines: Line[], rateBps: Record<string, number>): Payable[] {
const gross = new Map<string, number>()
for (const l of lines) gross.set(l.vendorId, (gross.get(l.vendorId) ?? 0) + l.amountMinor)
return [...gross].map(([vendorId, grossMinor]) => {
const commissionMinor = Math.round((grossMinor * (rateBps[vendorId] ?? 1000)) / 10000)
return { vendorId, grossMinor, commissionMinor, netMinor: grossMinor - commissionMinor }
})
}
Store each result as a ledger entry when the order is paid, and reverse it with new entries on refund. The fuller model, with holds, escrow-style release and partial refunds, is in marketplace split payments and escrow, so it is not repeated here.
Provider fees belong in your commission model. On Stripe Connect, if Stripe handles pricing there are no platform or payout fees; if you set your own pricing, Stripe charges $2 per monthly active account and 0.25% plus 25 cents per payout. In Bangladesh, TheSkinProof takes bKash, Nagad, SSLCommerz and cash on delivery, which means seller balances are tracked by the platform rather than split by the gateway.
How do you handle disputes and returns between buyers and sellers?
Give the seller the first response, give the operator the final decision, and put a clock on both. Without deadlines, disputes sit open and the shopper's next order goes elsewhere.
| Step | Who acts | What the system records |
|---|---|---|
| Return or complaint opened | Buyer | Reason, photos, order lines affected |
| Seller response | Seller, within a set window | Accept, offer partial refund, or contest |
| Escalation | Operator | Decision, note, who decided |
| Refund | System | Refund to buyer; reversing entries on the seller's balance and on commission |
| Restock or write-off | Seller or warehouse | Stock movement with a reason |
Two policy choices to settle before you build: whether you refund commission on returns, and whether a refund can push a seller's balance negative. Card chargebacks arrive at the platform's payment account, so your terms with sellers must say how those costs pass through. Consumer return rights differ by country; this is general information, so confirm with your adviser.
What should a vendor dashboard include?
Everything a seller needs to run their part of the business without emailing you: new orders, stock, payouts and statements. A seller who cannot see when they will be paid will ask your support team every week.
- Orders: only the seller's own lines from mixed orders, with ship-by dates.
- Stock: per variant, decremented inside the order transaction so the last unit sells once (see preventing stock overselling).
- Payouts: pending, on hold, paid, with each order's commission shown.
- Statements the seller can download for their accountant.
Isolation has to live on the server. In PostgreSQL, row-level security makes the database refuse other sellers' rows even if one endpoint forgets a check:
ALTER TABLE vendor_order_line ENABLE ROW LEVEL SECURITY;
CREATE POLICY vendor_reads_own_lines ON vendor_order_line
USING (vendor_id = current_setting('app.vendor_id')::uuid);
How should marketplace search work?
Start with database full-text search plus filters, and move to a dedicated search engine when the catalogue or the relevance needs outgrow it. Marketplace search adds one twist: ranking should consider the seller (stock, delivery time, return rate), not only text match. With shared product pages, search returns the product and the offer picks the seller.
Buy, build or hire?
| Option | Published pricing | Choose this when | Watch out for |
|---|---|---|---|
| Sharetribe (hosted) | Build $39 a month; Live $199 a month; no Sharetribe transaction fees; full code and API access | You want to launch and test a marketplace quickly, especially services or rentals | Payments run through Stripe; deep changes need developers and separate hosting |
| CS-Cart Multi-Vendor (self-hosted) | Standard $725, Plus $1,449, Ultimate $3,599 a year; lifetime licences from $3,590; source code included | Product marketplace with standard vendor features, and a team to host and customise PHP | You own hosting, upgrades and add-on conflicts |
| Dokan (WordPress plugin) | Lite free; Pro from $149 a year (Starter) to $999 a year (Enterprise), list prices | You already run WooCommerce and want vendors added | Plugin stack performance and upgrades at scale |
| Custom build | Engineering time | Your rules are the product: verification, local payment rails, cash on delivery, warehouse handling, unusual commissions | Needs a written spec, a test suite and ongoing development |
A deeper comparison is in Sharetribe vs a custom marketplace, and budgets in the cost to build a marketplace platform.
Why RAITHub for this
- We run one. TheSkinProof, the founder's own multi-vendor marketplace, has 5 portals, 217 API endpoints, 750+ automated tests and four payment rails (bKash, Nagad, SSLCommerz, cash on delivery). Because RAITHub operates it, the team lives with seller payouts, returns and support after launch. It is the founder's venture, not a client.
- Roles and money rules on the server. Sundor Skin, a B2B platform built for a client, uses PostgreSQL row-level security, 12 staff roles, 88 permission codes and 530+ tests.
- Stripe experience outside Bangladesh. PropDesk, a property platform RAITHub built, collects rent through Stripe.
- QA-first: commission, refund and isolation rules are tested and gated in CI.
When you don't need us
- Your marketplace fits Sharetribe, CS-Cart or Dokan as they are: use them, and spend the difference on recruiting sellers.
- You have not proved that sellers and buyers will come: validate on a hosted product first.
- You need native iOS and Android apps: RAITHub builds web apps and PWAs only.
- You want developers placed in your team under your management: RAITHub offers fixed-scope builds and dedicated teams, not staff augmentation.
How RAITHub would build this
- Portals: storefront, seller, and admin, with server-enforced isolation.
- Vendors and catalogue: onboarding, moderation states, per-variant stock.
- Money: checkout on your chosen rails, commission ledger, scheduled payouts with a hold period.
- After-sale: returns and disputes with deadlines and reversing ledger entries.
- Search: database full-text with filters at launch.
Timeline: a fixed-scope first release in 4–6 weeks through MVP development, or 6–12 weeks for payout, ledger and order backends behind an existing storefront through API and backend development. You receive: automated tests and CI, handover docs and runbooks, and full IP under NDA. More on scope is on the ecommerce service page.
Next step: a free 15-minute technical audit, then a written fixed quote. Book the audit with who your sellers are, how buyers pay, and how you plan to earn.
Frequently asked questions
How long does it take to build a multi-vendor marketplace?
A focused first release takes about 4–6 weeks at fixed scope. Payout, ledger and order backends behind an existing storefront take about 6–12 weeks. Large marketplaces keep developing after launch.
Should I use Sharetribe, CS-Cart or Dokan instead of building?
Often, yes. If your vendor, commission and payment rules are standard, Sharetribe from $39 a month, CS-Cart Multi-Vendor from $725 a year or Dokan's free Lite plugin will launch sooner. Build custom when your rules are the product.
How do marketplaces pay sellers?
The shopper pays the platform once; the platform records each seller's share after commission and pays out on a schedule after a hold period for returns. Stripe Connect or a similar service can move the money, but the ledger is still yours.
How do you keep one seller from seeing another seller's data?
Enforce it on the server and, ideally, in the database, for example with PostgreSQL row-level security policies keyed on the seller ID. Hiding buttons in the interface is not security.
Who handles refunds and chargebacks in a marketplace?
The platform processes them, then reverses the seller's balance and commission according to your seller terms. Settle in advance whether commission is refunded and whether balances can go negative.
Has RAITHub built a multi-vendor marketplace?
Yes. TheSkinProof, the founder's own venture, is a multi-vendor marketplace with 5 portals, 217 API endpoints and 750+ automated tests, built and run by RAITHub.
Related posts
Ready to discuss your project?
Book a free 15-minute technical audit with our engineering team.