市集
規則
- 多供應商資料模型:
User 擁有一個 Seller 個人檔案 — 產品歸屬於賣家,訂單連結買家與賣家
- 使用 Stripe Connect 進行付款:透過 Connect Express 引導賣家入職 — 處理 KYC、稅務表單、銀行帳戶
- 佣金:將平台費用計算為百分比 — 在 PaymentIntents 或 Checkout Sessions 上使用
application_fee_amount
- 託管流程:購買時扣款,暫留資金,待送達確認或爭議期過後轉移給賣家
- 賣家儀表板:獨立佈局,包含銷售分析、訂單管理、產品 CRUD、付款歷史
- 買家/賣家評價:每筆訂單一個評價,雙向進行 — 以加權平均匯總評分
- 含賣家篩選的搜尋:在搜尋篩選條件中包含賣家名稱、評分、位置
- 賣家入職流程:多步驟流程 — 商家資訊 → Stripe Connect → 產品上架 → 上線
模式
const account = await stripe.accounts.create({
type: "express",
email: seller.email,
metadata: { sellerId: seller.id },
});
const accountLink = await stripe.accountLinks.create({
account: account.id,
refresh_url: `${baseUrl}/seller/onboarding?refresh=true`,
return_url: `${baseUrl}/seller/onboarding/complete`,
type: "account_onboarding",
});
const session = await stripe.checkout.sessions.create({
line_items: [{ price: priceId, quantity: 1 }],
payment_intent_data: {
application_fee_amount: Math.round(price * 0.10),
transfer_data: { destination: seller.stripeAccountId },
},
mode: "payment",
success_url: `${baseUrl}/orders/{CHECKOUT_SESSION_ID}`,
cancel_url: `${baseUrl}/cart`,
});
避免事項
- 未經託管的直接轉帳 — 資金應暫留,直到送達確認或爭議期結束
- 所有賣家共用單一 Stripe 帳戶 — 每位賣家需有各自的 Connect 帳戶以符合法規
- 允許賣家自行設定付款排程 — 為防止詐騙,應由平台控制付款
- 未驗證賣家身份 — 上線前務必要求完成 Stripe Connect 入職
- 平台代賣家處理稅務 — Stripe Connect Express 會處理賣家的稅務申報