StilgenStilmerce
Plugins

Multi-Vendor Marketplace

Turn your store into a marketplace — multi-vendor product listings, automatic commission calculation, and seller payout management.

Multi-Vendor Marketplace

The Multi-Vendor plugin transforms a single-vendor Stilmerce store into a full marketplace. Vendors apply, get approved, list their own products (or offer competing prices on shared products), and manage orders from a dedicated Seller Panel.

Requirements

  • Stilmerce Core (any edition)
  • A valid Multi-Vendor plugin license
  • A separate subdomain for the seller panel (e.g. seller.example.com)
  • Root SSH access to your server (required once for seller panel deployment)

Step 1 — Install the Plugin

  1. Purchase the plugin from stilgen.com
  2. Go to Admin → Plugins → Upload
  3. Upload multi-vendor.zip
  4. Click Install, then Activate

The plugin runs its database migrations automatically. You will see a warning in the server log:

⚠️  Seller panel not yet deployed.
    Run: bash api/src/plugins/multi-vendor/setup-seller.sh

Step 2 — Deploy the Seller Panel

The seller panel (seller.example.com) is a separate Next.js application that must be deployed once on your server. The plugin ZIP includes a companion script that handles everything automatically.

Run the setup script

SSH into your server and run:

bash /var/www/stilmerce/api/src/plugins/multi-vendor/setup-seller.sh

Replace /var/www/stilmerce with your actual install path if different.

The script will ask for two things:

PromptExample
Seller domainseller.example.com
SSL emailyou@example.com (auto-detected if you already have Let's Encrypt)

Everything else is read automatically from your existing install.

What the script does

  1. Deploys the pre-built seller app (no Node.js build required)
  2. Writes seller/.env.production
  3. Starts a stilmerce-seller PM2 process
  4. Creates an Nginx virtual host for the seller domain
  5. Obtains an SSL certificate via Let's Encrypt
  6. Adds the seller domain to CORS_ORIGIN in the API config
  7. Restarts the API

Total time: ~2 minutes.

DNS setup

Before running the script, point your seller subdomain to the server:

seller.example.com  →  A  →  <your server IP>

Step 3 — Configure the Marketplace

After deployment, open Admin → Plugins → Multi-Vendor → Settings to configure:

SettingDescription
Default Commission RatePlatform commission on each sale (default: 10%)
Min Payout AmountMinimum balance before a vendor can request payout (default: 100)
Return Reserve RatePercentage held back for potential returns (default: 5%)
Return Window DaysDays customers have to request a return (default: 14)
Payout Scheduleweekly or monthly
Auto PayoutAutomatically process payouts without manual admin approval

Vendor Onboarding

Vendors register through the seller panel (seller.example.com/seller) or can be invited by an admin.

Approval flow:

  1. Vendor submits application (business name, tax ID, IBAN, KYC documents)
  2. Admin reviews in Admin → Vendors
  3. Admin approves → vendor gains access to their seller dashboard

Commission Model

Commissions are calculated at order time using a 5-level priority chain:

  1. Vendor + Category specific rate
  2. Vendor store rate
  3. Vendor default rate
  4. Category global rate
  5. Platform default rate (10%)

Rates are locked in at purchase time — changing rates later does not affect past orders.


Seller Panel Features

Once deployed, vendors can:

  • Manage their product catalog
  • Set their own prices and stock levels on shared products
  • View and process orders assigned to them
  • Track commissions and payout history
  • Request payouts when balance ≥ minimum threshold
  • Manage store staff accounts
  • Handle returns and disputes

Troubleshooting

Seller panel not loading after setup:

pm2 logs stilmerce-seller --lines 50

CORS errors in the browser: Make sure setup-seller.sh completed successfully. It adds the seller domain to CORS_ORIGIN in api/.env.production. Verify:

grep CORS_ORIGIN /var/www/stilmerce/api/.env.production

Re-running the setup script: The script is idempotent — safe to run again if something went wrong. It removes and re-creates the PM2 process.

SSL certificate renewal: Certbot auto-renews. To renew manually:

certbot renew --nginx

On this page