Merchant Documentation
Complete guide to Merchant features, access, products & discount system
Merchants have a dedicated role (role: merchant) that gives them access to the Merchant Dashboard — a completely separate interface from the public shop and rider portal. The layout automatically detects the merchant role and renders the merchant-specific UI.
| Feature | Merchant | Admin | Rider/Public |
|---|---|---|---|
| Merchant Dashboard | ✅ Full access | ✅ Via AdminShop | ❌ No access |
| Add Products | ✅ Own products only | ✅ Any product | ❌ No |
| View All Products | ❌ Own only | ✅ All products | ✅ Approved+active only |
| Approve Products | ❌ | ✅ AdminShop | ❌ |
| Create Discount Codes | ✅ Own codes only | ❌ (admin uses shop directly) | ❌ |
| View Orders | ✅ Orders with their products | ✅ All orders | ✅ Own orders only |
| Payout Requests | ✅ Via MerchantFinance | ✅ Process payouts | ❌ |
| Analytics | ✅ Own data only | ✅ Platform-wide | ❌ |
| Bulk Product Upload | ✅ CSV/Excel upload | ✅ | ❌ |
| Reviews | ✅ Can reply to own reviews | ✅ All reviews | ✅ Can submit |
Registration
Merchant visits /MerchantOnboarding and fills in business name, contact details, product categories, and agrees to terms.
Admin Review
Admin sees the application in AdminApprovals. Reviews the business information and decides to approve or reject.
Account Activation
Upon approval, admin sets user.role = 'merchant'. The merchant can now log in and access the Merchant Dashboard.
Profile Setup
Merchant completes their store profile via MerchantProfile page — logo, description, contact info, and payout preferences.
First Product
Merchant adds their first product from the Products tab. The product awaits admin approval before going live in the shop.
| Entity | Purpose | Merchant-Scoped? |
|---|---|---|
| Product | Product listings with price, stock, category, images | ✅ Filtered by merchant_email |
| Order | Customer orders containing merchant's products | ✅ Filtered by merchant_email |
| DiscountCode | Promo codes the merchant creates | ✅ Filtered by merchant_email |
| MerchantReferral | Referrals that led to product purchases | ✅ Filtered by merchant_email |
| MerchantPayout | Payout requests and history | ✅ Filtered by merchant_email |
| ProductReview | Customer reviews on merchant's products | ✅ Via product_id |
| DeliveryCharge | Per-order shipping charge records | ✅ Via order_id |
| PlatformSettings | Global product categories configuration | ❌ Shared (read-only for merchant) |