Mercado
Reglas
- Modelo de datos multi-vendedor:
User tiene un perfil Seller — los productos pertenecen a vendedores, los pedidos vinculan comprador + vendedor
- Stripe Connect para pagos: incorpora vendedores con Connect Express — maneja KYC, formularios fiscales, cuentas bancarias
- Comisión: calcula la tarifa de la plataforma como porcentaje — usa
application_fee_amount en PaymentIntents o Checkout Sessions
- Flujo de depósito en garantía: captura el pago al comprar, retén los fondos, transfiere al vendedor tras confirmación de entrega o después de la ventana de disputa
- Panel de vendedor: diseño separado con análisis de ventas, gestión de pedidos, CRUD de productos, historial de pagos
- Reseñas comprador/vendedor: una reseña por pedido, en ambos sentidos — calificaciones agregadas con promedio ponderado
- Búsqueda con filtro de vendedor: incluye nombre del vendedor, calificación, ubicación en los filtros de búsqueda
- Incorporación de vendedor: flujo de varios pasos — información comercial → Stripe Connect → listado de productos → salir en vivo
Patrones
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`,
});
Evitar
- Transferencias directas sin depósito en garantía — retén los fondos hasta que se confirme la entrega o pase la ventana de disputa
- Una sola cuenta de Stripe para todos los vendedores — cada vendedor necesita su propia cuenta Connect por cumplimiento normativo
- Dejar que los vendedores establezcan sus propios cronogramas de pagos — usa pagos controlados por la plataforma para protección contra fraudes
- Omitir la verificación del vendedor — exige completar la incorporación de Stripe Connect antes de salir en vivo
- Que la plataforma maneje los impuestos de los vendedores — Stripe Connect Express se encarga de la declaración de impuestos del vendedor