9 min read
How to Build a Multivendor Marketplace on WordPress
A multivendor marketplace on WordPress is three layers: WooCommerce for the cart and checkout, a marketplace plugin (Dokan, WCFM or WC Vendors) for vendor dashboards and commissions, and a theme that styles the vendor store pages those plugins generate. Most people get the first two right and then bolt on a generic shop theme, which is where the vendor pages end up looking unfinished. This guide covers choosing the marketplace plugin, picking or building a theme that actually supports it, the exact setup order, and the settings we change on every marketplace launch.
Versions referenced here are current as of August 2026: WooCommerce 10.x, Dokan Lite 5.0.15, WCFM Marketplace 3.8.1 and WC Vendors 2.7.1, all tested against WordPress 7.0.
Pick the marketplace plugin before the theme
The theme decision depends on the plugin, not the other way round, because each plugin renders its vendor dashboard and store page with its own templates. A theme that ships styling for Dokan will not automatically style WCFM’s store header. So settle this first.
| Dokan | WCFM Marketplace | WC Vendors | |
|---|---|---|---|
| Free tier | Dokan Lite: vendor dashboard, product upload, orders, basic commission | Core + Marketplace free, and unusually generous: commissions, coupons, ledger, refunds, store SEO | Free: vendor product management, commission, basic dashboard |
| Paid entry price | $149/yr Starter (1 site), $249 Professional, $499 Business | WCFM Ultimate from roughly $49/yr single site to about $168/yr for more sites | Pro $99.50/yr, up to $399/yr for larger licences |
| Commission types | Percentage, flat, combined; per-vendor, per-category and per-product overrides on paid plans | Percentage, fixed, by sales or product price, vendor-level, category-level, membership-level rules | Percentage, fixed, percentage + fee, fixed + fee, tiered, all in Pro |
| Payouts | PayPal, Stripe Connect, Razorpay, Paystack modules; PayPal Marketplace on Business and up | Stripe split payments, PayPal, bank transfer, Skrill, Wirecard | Stripe Connect and PayPal Payouts built in |
| Active installs (WP.org) | 30,000+ | 10,000+ | 3,000+ |
| Best for | Fast launch, largest module catalogue, strongest theme support | Budget builds that need many rules; heavy feature set means more to configure | Developer-led builds that want a lean base and clean hooks |
Our general advice: pick Dokan if you want the widest choice of compatible themes and add-ons and do not mind the yearly cost. Pick WCFM if budget matters more than polish and you are comfortable with a busier settings screen (WCFM is maintained by a small team, and the update cadence has been uneven over the years, though the August 2026 release shows it is still alive). Pick WC Vendors if you are building something custom and want the fewest opinions baked in.
What a marketplace theme has to handle
Generic WooCommerce themes style the shop, category and single product pages. A marketplace adds at least six more page types that a theme must either template or at least not break:
- Store listing page (all vendors, with search and filters by location, rating or category).
- Single store page (banner, avatar, rating, contact button, tabs for products, reviews, policies, about).
- Vendor dashboard (front-end, full width, no sidebar, often a different header).
- Vendor registration form (extra fields beyond the WooCommerce account form).
- Product loop additions (“Sold by” label, vendor rating, store link on product cards).
- Cart and checkout additions (items grouped by vendor, per-vendor shipping lines).
When we review themes for marketplace clients, we check three things in the demo: does the single store page render the vendor’s banner at the right aspect ratio, does the dashboard load without the theme’s sidebar or page title, and does the “Sold by” block appear on the product card without a CSS override. If any of the three fails in the demo, it will not get better on your site.
Buy a marketplace theme or build one?
Buying: what to expect
Themes that explicitly support Dokan, WCFM or WC Vendors ship template overrides in their own folders (for example reign-theme/dokan/). That means vendor pages inherit the theme’s typography, spacing and colour tokens instead of the plugin’s default grey boxes. Our Reign theme takes this route with separate add-ons for Dokan, WCFM and WC Vendors, and the StoreMate Dokan theme is built for Dokan-only stores that do not need community features. Plenty of other theme shops do the same; the point is to look for the named integration, not a “WooCommerce compatible” badge.
Budget roughly $59 to $99 for a single-site licence, plus the plugin’s paid tier if you need it. Against a custom build, that is the cheapest part of the project.
Building: when it is worth it
A custom theme makes sense when the marketplace is the product (a niche rental platform, a services exchange, a B2B catalogue) and you need vendor pages that look nothing like a shop. In that case start from a block theme with a minimal theme.json, add WooCommerce support with add_theme_support( 'woocommerce' ), and override only the plugin templates you need. Dokan templates live in dokan-lite/templates/ and can be copied to your-theme/dokan/; WCFM uses wc-frontend-manager/views/ copied to your-theme/wcfm/; WC Vendors uses wc-vendors/templates/ copied to your-theme/wc-vendors/. Never edit the plugin’s copies, they are overwritten on update.
Expect 80 to 150 development hours for a clean custom marketplace theme that covers all six page types above and passes accessibility checks. That is the number to compare against a $79 licence.
The middle path: child theme plus overrides
Most of our marketplace projects land here. Buy a theme with the named integration, create a child theme, and override only the two or three templates that the client wants different (usually the store header and the product card). You keep the parent’s updates and spend maybe 10 hours on customisation.
Setup order that avoids rework
The sequence matters more than people expect, because the marketplace plugins create pages and rewrite rules on activation and assume WooCommerce is already configured.
- Install WooCommerce and finish the setup wizard. Set currency, store address, tax behaviour and at least one payment method. Under WooCommerce → Settings → Accounts & Privacy, allow customers to create an account during checkout and on the My Account page; vendors register through the same form.
- Install the marketplace plugin. Run its wizard. Dokan’s creates the Dashboard, Store List and My Orders pages automatically; confirm them under Dokan → Settings → Page Settings. WCFM creates Store Manager and Store List pages and adds an endpoint under WCFM → Settings → Endpoints.
- Set commission before the first vendor registers. In Dokan this is Dokan → Settings → Selling Options → Commission. Changing it later does not recalculate existing orders.
- Install and activate the theme, then its marketplace add-on if it has one. Regenerate permalinks (Settings → Permalinks → Save) so the store URLs resolve.
- Import demo content if the theme offers it, then delete the sample vendors before launch. Demo vendors with real-looking payout details have been left live on more sites than you would think.
- Create one test vendor and one test customer. Upload a product as the vendor, buy it as the customer, and check the order splits correctly under WooCommerce → Orders (Dokan and WCFM create sub-orders per vendor). Do this before styling anything.
- Configure payouts. Stripe Connect is the one to pick if your vendors are in supported countries, because it pays vendors automatically at checkout. Manual PayPal or bank payouts mean you hold the money and the liability.
Settings we change on every marketplace launch
These are the defaults that cause support tickets later.
- Vendor approval. Turn on manual approval (Dokan: Settings → Selling Options → New Vendor Product Upload set to require admin review; WCFM: Capability → Product → Publish off). Open marketplaces fill with test products and spam within a week.
- Product types vendors can create. Limit to simple and variable at first. Grouped and external products confuse commission maths.
- Shipping. Decide whether the admin or the vendor sets shipping. Per-vendor shipping (Dokan Professional and up, WCFM free) is what customers expect, but it means vendors need to be trained. Under WooCommerce → Settings → Shipping keep at least one admin zone as a fallback.
- Withdrawal threshold. Set a minimum withdrawal amount (Dokan: Settings → Withdraw Options) so you are not processing $3 payouts.
- Store URL slug. The default
/store/vendor-name/is fine, but change it before launch if you want/shop/or/sellers/. Changing it after launch breaks every vendor’s shared links. - Email templates. WooCommerce → Settings → Emails gains new vendor-related emails (new product pending, withdrawal request, new vendor). Turn off the ones the admin does not want and check the From address is your domain.
A real scenario: a craft marketplace on a small budget
A client came to us with 40 local makers, no budget for a custom build, and a requirement that each maker’s page feel like their own shop. We went with Dokan Lite (free), the Reign theme with its Dokan add-on, and Stripe Connect for payouts. Commission was set to 12 percent flat. The only custom work was a child-theme override of the store header to show the maker’s town and a “Visit studio” link pulled from a custom vendor field. Total build: about 25 hours including vendor onboarding documentation.
Six months on, the thing that generated the most support was not the theme or the plugin. It was makers not understanding per-vendor shipping. If we did it again, we would keep admin-managed flat-rate shipping for the first three months and only switch on vendor shipping once they were comfortable with the dashboard.
Performance and hosting
Marketplaces are heavier than ordinary shops because every order can become several sub-orders and every product carries vendor meta. Three things help. First, use a host with a persistent object cache (Redis or Memcached) so the vendor dashboard queries do not hit the database on each load. Second, set WooCommerce to use HPOS (WooCommerce → Settings → Advanced → Features), which all three marketplace plugins now support and which speeds up order queries considerably. Third, exclude the dashboard and store pages from page caching; they are per-user and a cached copy leaks one vendor’s data to another. In most cache plugins this is a URL exclusion rule for /dashboard/* and /store-manager/*.
For anything over a few hundred vendors, look at a server in the 4 vCPU / 8 GB range and a CDN for product images. Below that, a good managed WordPress host is enough.
Frequently asked questions
Can I switch from Dokan to WCFM later?
Technically yes, practically painful. Vendor roles, commission records and store meta use different keys, and there is no official migrator. Pick once.
Do I need BuddyPress for a marketplace?
No. Add it only if vendors and customers should have profiles, follow each other or message on-site. If you do, BuddyVendor links vendor stores to BuddyPress profiles so a member’s products show on their profile tab.
Will a page builder help with the store pages?
Elementor Pro and Dokan’s Elementor module let you design the single store page visually. It is useful if the store page is the brand, less so for the dashboard, which you should leave to the plugin.
How do vendors get paid with Stripe Connect?
Each vendor connects their own Stripe account from the dashboard. At checkout the customer pays once and Stripe splits the charge, sending the vendor their share minus your commission and Stripe’s fee. You never hold vendor funds, which also keeps you clear of most money-transmitter rules.
Where to start
Install WooCommerce and Dokan Lite on a staging site this week, create a test vendor, and make one purchase. You will learn more about what your marketplace needs from that one order than from any feature list. Then choose the theme based on what you saw, and spend the money you save on vendor onboarding material, because that is what decides whether the marketplace fills up.
Related reading