Developing Multi-Vendor Marketplace
Multi-vendor marketplace differs from regular marketplace in that each seller has a full-fledged store with their own branding, shipping settings, return rules, and analytics. Buyer can add products from different vendors to cart and pay with one transaction. Complexity lies in the fact that one order technically breaks into multiple sub-orders, each living by its own rules.
Multi-Vendor Order Architecture
Order #12345 (buyer pays 5000₽)
├── Sub-order #12345-1 → Vendor A (2800₽ → 2520₽ after 10% fee)
├── Sub-order #12345-2 → Vendor B (1500₽ → 1350₽ after 10% fee)
└── Platform fee: 430₽
Each sub-order has its own status, its own logistics, its own tracking number. Seller sees only their sub-orders; buyer sees the overall order with breakdown by stores.
Vendor Personal Cabinet
Key platform section. Includes:
- Catalog — creating, editing, importing products (CSV/XLSX)
- Orders — queue of new orders, statuses, invoice printing
- Warehouse — stock levels, reservations, low stock alerts
- Finance — balance, transaction history, payout request, tax documents
- Analytics — sales by periods, top products, returns
- Store Settings — name, description, logo, banner, account details
Commission Management
Commission can be:
- Fixed (same for all vendors)
- Categorical (different for electronics, clothing, products)
- Contractual (individual rate per vendor)
- Progressive (decreases at revenue thresholds)
In vendor_commission_rules table hierarchy is stored: global rate < categorical rate < individual rate. Most specific rule is applied during calculation.
Multi-Currency and Multi-Regional
For international platforms each vendor can work in their own currency. Prices stored in base currency, converted on display by rate on order creation date. Rates updated via API (e.g., Fixer.io or Central Bank RF).
Vendor Verification System
Seller goes through KYB (Know Your Business) before receiving payouts:
- Registration (email + password)
- Store profile completion
- Document upload (INN, OGRN/OGRNIP, bank details)
- Operator moderation → status
verified - Payment system connection (e.g., YooKassa — SubAgent creation)
Until vendor is verified, their products are visible but not available for purchase.
Shipping and Pickup Policies
Each vendor configures own shipping zones and rates. Integrations with carriers (SDEK, Boxberry, Russian Post, DHL) can be either at platform level (unified contract) or vendor level (own API keys). Pickup point support — separate entity pickup_point with working hours and address.
Reviews in Multi-Vendor Context
Reviews can be:
-
Product reviews — tied to
product_id, independent of vendor -
Store reviews — tied to
vendor_id, account for service quality
Store rating affects position in category listings (besides search ranking).
Tech Stack
For multi-vendor platform with high load:
- Backend: Laravel or Django with microservice separation (order service, catalog service, payment service) or monolith with modular architecture
- Queues: Redis + Horizon (Laravel) for processing payments, notifications, recalculating ratings
- Search: Elasticsearch with per-vendor filters
- Cache: Redis for catalog pages, prices, stock-statuses
Timeline
MVP with vendor cabinet, order split, basic analytics and payouts: 4–6 months. Full platform with KYB, multi-currency, mobile app for vendors: 8–14 months.







