Cualquier persona con correo. Por defecto al registrarse, todo usuario es comprador. Puede navegar el catálogo, agregar al carrito, comprar, calificar, guardar favoritos y direcciones, ver historial de pedidos y recibir notificaciones.
Comprador que activó su tienda en /vender/registro (KYC con cédula + RUT + cuenta bancaria). Puede crear y editar productos, recibir pedidos, gestionar status (packing → shipped → delivered), ver finanzas y compartir su tienda por WhatsApp.
Usuarios con email en allow-list (hardcoded por seguridad). Equipo interno de Plazi (los 4 socios + soporte). Puede verificar/suspender sellers, ver KPIs de plataforma (GMV, comisión, pedidos), revisar el audit trail completo (outbox_events) y aplicar cancelaciones administrativas.
| # | Módulo | Detalle | Avance |
|---|---|---|---|
| 1 | Autenticación | OTP correo (Supabase Auth ES256) · biométrico mobile · sesiones cookie/JWT | 100% |
| 2 | Catálogo | Productos, variantes, categorías, ciudades, imágenes JSONB, búsqueda full-text | 100% |
| 3 | Carrito y checkout | Cookie state, agrupación por seller, envío gratis sobre $150k, validación de stock | 100% |
| 4 | Pagos | Wompi: Nequi, Daviplata, PSE, tarjeta · Contraentrega · Demo Mode con simulador | 100% |
| 5 | Órdenes | Status flow: confirmed → packing → shipped → delivered → completed · cancelaciones | 100% |
| 6 | Vendedor onboarding | KYC Truora-lite: cédula + RUT + cuenta bancaria · verificación admin | 100% |
| 7 | Panel vendedor | CRUD productos, gestión pedidos, finanzas, storefront público | 100% |
| 8 | Reseñas | 1-5 estrellas, fotos, respuesta del seller, una por order_item | 100% |
| 9 | Cupones | Engine percent/fixed, min_subtotal, max_uses, redemptions | 100% |
| 10 | Favoritos + Direcciones + Inbox | Wishlist, CRUD direcciones, notificaciones inbox + push | 100% |
| 11 | Admin | Verificar/suspender sellers, dashboard KPIs, reportes outbox, finanzas plataforma | 100% |
| 12 | Mobile nativos | Push, cámara, biométrico, share WhatsApp, deep links, OTA updates | 100% |
completed de la semana anterior.invalid_items.Pre-condiciones: cuenta nueva, carrito vacío.
Flujo: signup OTP → ve tutorial → busca producto → PDP → add to cart → checkout (registra dirección) → paga con Nequi → recibe email + push de confirmación → tracking en /app/pedidos.
Flujo: /vender → registra tienda con cédula + RUT + cuenta → admin verifica desde panel → recibe push "tienda activada" → /panel → crea primer producto con foto (cámara nativa en mobile) → comparte tienda por WhatsApp.
Flujo: Push notification "🔔 ¡Nueva venta en Plazi!" → abre /panel/pedidos/[number] → marca como packing → empaca y entrega al courier → marca como shipped → buyer recibe push + email + inbox notification → cuando llega: delivered → al cierre semanal recibe pago.
Flujo: orden en estado delivered → abre /app/pedidos/[number] → tap "Calificar" → escribe reseña 1-5 estrellas + foto opcional → seller recibe notificación → seller responde públicamente (opcional) → reseña aparece en el PDP del producto.
Flujo: seller completa KYC → estado pending → admin ve en /admin/vendedores → revisa cédula y RUT → marca como verified → outbox_events registra la acción (audit) → seller recibe push "✓ tienda activada" → puede publicar productos al público.