A marketplace competes for listings against platforms its sellers are already on. Asking them to retype an entire catalogue is the fastest way to lose them at signup.
Vendors arrived with established storefronts on eBay, Amazon and Etsy, each with its own product model, pricing conventions and auction rules. A young marketplace also has a trust problem in both directions: buyers cannot tell a real trader from an anonymous listing, and sellers paying for ad placements had no idea whether those placements sent anyone to their store.
Built entirely as an extension plugin, so the marketplace keeps taking upstream Woo and Dokan updates. Where a default feature offered no hook, every core touch point was logged and handed over with the build.
A REST API settings panel in the vendor dashboard where each seller connects their own eBay, Amazon, Etsy and Shopify accounts, with credentials scoped to the vendor and never shared marketplace-wide.
An import dropdown on the vendor product list pulls from any connected channel. Existing products are matched on title and price and skipped, so re-running an import never duplicates or overwrites a live listing.
Over thirty fields normalised per channel: type, images, pricing, descriptions, categories, attributes, tags, SKU, stock, tax, min/max quantities, shipping weight, dimensions and class, plus auction start, reserve, buy-now, bid increments and end dates where the source supports them. Imports land as drafts so the vendor reviews before publishing.
Dokan’s phone and store address checks were joined by Real ID verification through Sumsub, with explicit consent before the check starts, live status tracking per tier, and green tick or cross markers on the public store page. A dismissible dashboard prompt walks unverified vendors to the right tier and disappears once all three pass.
Added after the core build, once sellers began paying for placement. Store visits and website clicks on ad and featured-ad listings are counted separately and published under the store name, so a seller can see what a placement actually returned.
Vendors connect an account and review drafts instead of rebuilding a catalogue by hand, buyers get a visible trust signal, and the client keeps a plugin he can deploy anywhere.
Two of the requirements sat in Dokan features with no extension hooks. Rather than quietly patching core, we isolated those edits and shipped a change log alongside the plugin, so every core touch point can be re-applied or contributed upstream at the next update.
Tell us where the friction is. We will map it with you and propose a clear place to start.