# How to Create a Multi-Vendor Marketplace on Bubble

- Tool: Bubble
- Difficulty: Advanced
- Time required: 40-50 min
- Compatibility: Growth plan+ (for backend workflows and Stripe Connect)
- Last updated: March 2026

## TL;DR

Building a multi-vendor marketplace on Bubble involves setting up vendor onboarding, product listings, buyer search and purchase flows, order management, and split payments via Stripe Connect. This tutorial takes a template-based approach — starting from a marketplace template or structured plan, customizing vendor dashboards and buyer experiences, and implementing commission-based payment splitting.

## Overview: Multi-Vendor Marketplace on Bubble

This tutorial provides an alternative, template-focused approach to building a marketplace. You will structure the core data model, implement vendor onboarding with Stripe Connect, build the buying experience, and manage orders across multiple vendors.

## Before you start

- A Bubble app on Growth plan or higher
- Stripe account with Connect enabled
- Understanding of user roles, Privacy Rules, and backend workflows
- Familiarity with payment processing concepts

## Step-by-step guide

### 1. Design the marketplace data architecture

Create 'Vendor' with: user (User), store_name, description, logo, stripe_account_id, is_approved (yes/no), commission_rate (number, default 10). Create 'Product' with: vendor, title, description, price, images (list), category, stock, is_active. Create 'Order' with: buyer (User), vendor, items (list of OrderItems), total, status, commission_amount, vendor_payout, stripe_payment_id. Create 'OrderItem' with: product, quantity, price_at_purchase.

**Expected result:** Data model supports multiple vendors selling products to buyers with order tracking.

### 2. Build vendor onboarding with Stripe Connect

Create an 'Apply as Vendor' page with a form for store name, description, and logo. The workflow creates a Vendor record (is_approved = no). An admin reviews and approves vendors. When approved, trigger Stripe Connect onboarding: use the API Connector to call Stripe's Account creation endpoint, creating a Connected Account for the vendor. Redirect the vendor to Stripe's hosted onboarding to complete identity verification. Store the Stripe account ID on the Vendor record.

```
{
  "type": "express",
  "country": "US",
  "email": "vendor@example.com",
  "capabilities": {
    "transfers": { "requested": true }
  }
}
```

> Pro tip: Use Express accounts for the simplest vendor experience — Stripe handles identity verification, tax reporting, and payouts directly.

**Expected result:** Vendors complete onboarding with a connected Stripe account for receiving payouts.

### 3. Build the vendor dashboard for product management

Create a 'vendor-dashboard' page (only accessible to users with a Vendor record). Show sections: Product Management (add/edit/delete products), Orders (incoming orders for this vendor), Earnings (total sales, commissions, payouts). The product management section includes a form for adding products with title, description, price, images, category, and stock quantity.

**Expected result:** Vendors can manage their products, view incoming orders, and track earnings from a dedicated dashboard.

### 4. Build the buyer browsing and checkout experience

Create a marketplace home page with search, category filters, and featured products from all vendors. Product detail pages show vendor information alongside product details. The cart supports items from multiple vendors. At checkout, create separate Order records per vendor (grouping cart items by vendor). Process a single Stripe payment from the buyer, then use Stripe Connect transfers to split the funds: platform keeps commission, vendor receives the remainder.

**Expected result:** Buyers can browse products from all vendors, add to cart, and checkout with automatic payment splitting.

### 5. Implement commission-based payment splitting

When processing checkout payment, use Stripe's Payment Intents with transfer_group and separate transfers. For each vendor's order: calculate commission (order total * vendor's commission_rate / 100), calculate vendor payout (order total - commission). After successful payment, create a Stripe Transfer to each vendor's Connected Account for their payout amount. The platform automatically retains the commission.

**Expected result:** Payments are automatically split between the platform (commission) and vendors (payout) via Stripe Connect.

### 6. Build admin tools for marketplace management

Create an admin dashboard with: Vendor Applications (approve/reject new vendors), All Orders (view across all vendors), Revenue Analytics (total GMV, commissions earned, vendor payouts), Dispute Management (handle buyer complaints), and Platform Settings (default commission rate, category management). For complex marketplace operations, RapidDev can help implement advanced features like dynamic commission tiers and vendor performance scoring.

**Expected result:** Platform administrators can manage vendors, monitor orders, and track marketplace revenue.

## Complete code example

File: `Workflow summary`

```text
MULTI-VENDOR MARKETPLACE — SUMMARY
=====================================

DATA TYPES:
  Vendor: user, store_name, stripe_account_id,
    is_approved, commission_rate
  Product: vendor, title, price, images, category, stock
  Order: buyer, vendor, items, total, status,
    commission_amount, vendor_payout
  OrderItem: product, quantity, price_at_purchase

VENDOR ONBOARDING:
  Apply → Create Vendor (pending)
  Admin approves → Stripe Connect account
  Vendor completes Stripe onboarding

CHECKOUT FLOW:
  Cart items grouped by vendor
  Single Stripe payment from buyer
  Transfer to each vendor's Connected Account
  Platform retains commission

PAYMENT SPLITTING:
  Commission = order_total * rate / 100
  Vendor payout = order_total - commission
  Stripe Transfer to vendor's account_id

ADMIN DASHBOARD:
  Vendor approvals, all orders
  Revenue: GMV, commissions, payouts
  Dispute management
```

## Common mistakes

- **Processing separate payments per vendor instead of one payment with splits** — Multiple charges frustrate buyers and increase payment processing fees Fix: Collect one payment from the buyer and use Stripe Connect transfers to split funds to vendors
- **Not verifying vendor Stripe accounts are fully onboarded before allowing sales** — Orders to vendors with incomplete Stripe accounts cannot be paid out, creating fulfillment issues Fix: Check the vendor's Stripe account status before allowing their products to be listed for sale
- **Storing the same product price on the order instead of capturing price_at_purchase** — If the vendor changes the price after purchase, the order total recalculates incorrectly Fix: Capture and store the price at the time of purchase in the OrderItem record

## Best practices

- Use Stripe Connect Express accounts for simplest vendor payment experience
- Capture price_at_purchase on order items to prevent retroactive price changes
- Group cart items by vendor and create separate Order records per vendor
- Require vendor Stripe onboarding completion before allowing product sales
- Set up admin review for new vendor applications to maintain marketplace quality
- Track commission rates per vendor for flexible pricing tiers
- Implement a dispute resolution workflow for buyer-vendor conflicts

## Frequently asked questions

### What is Stripe Connect and why do I need it?

Stripe Connect handles splitting payments between your platform and vendors. Without it, you would need to manually track and transfer money to each vendor, which is complex and legally risky.

### How much does Stripe Connect cost?

Stripe charges the standard 2.9% + 30 cents per payment, plus 0.25% + 25 cents per payout to vendors with Express accounts. Your platform sets its own commission on top.

### Can vendors set their own prices?

Yes. Vendors manage their own Product records including prices. The platform can set a minimum price or approve price changes if needed.

### How do I handle returns and refunds in a multi-vendor marketplace?

Process refunds through Stripe to the buyer, then reverse the transfer to the vendor's Connected Account minus any restocking fee. Create a Return workflow with status tracking.

### Can RapidDev build a complete marketplace platform in Bubble?

Yes. RapidDev specializes in marketplace development with vendor management, payment splitting, dispute resolution, analytics, and scalability optimization in Bubble.

---

Source: https://www.rapidevelopers.com/bubble-tutorial/create-a-multi-vendor-marketplace-on-bubble
© RapidDev — https://www.rapidevelopers.com/bubble-tutorial/create-a-multi-vendor-marketplace-on-bubble
