← Volver al portal
Documentación funcional · DOC-FUN-01

Especificaciones Funcionales

3 roles · 12 módulos · 9 reglas de negocio · 5 casos de uso end-to-end

Documento
DOC-FUN-01
Roles
Comprador · Vendedor · Admin
Módulos
12
Audiencia
PM · QA · Socios

1 · Los 3 roles del sistema

Qué hace cada usuario en Plazi

🛒 Comprador (buyer)

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.

🏪 Vendedor (seller)

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.

🛡 Admin

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.

Mismo usuario, múltiples roles: un usuario puede ser comprador Y vendedor simultáneamente. El switch de rol en la app cambia el modo de UI (panel ↔ buyer) pero no cambia los permisos.
DOC-FUN-01 · Página 1

2 · Los 12 módulos funcionales

Lo que entra a cada bloque del sistema

#MóduloDetalleAvance
1AutenticaciónOTP correo (Supabase Auth ES256) · biométrico mobile · sesiones cookie/JWT100%
2CatálogoProductos, variantes, categorías, ciudades, imágenes JSONB, búsqueda full-text100%
3Carrito y checkoutCookie state, agrupación por seller, envío gratis sobre $150k, validación de stock100%
4PagosWompi: Nequi, Daviplata, PSE, tarjeta · Contraentrega · Demo Mode con simulador100%
5ÓrdenesStatus flow: confirmed → packing → shipped → delivered → completed · cancelaciones100%
6Vendedor onboardingKYC Truora-lite: cédula + RUT + cuenta bancaria · verificación admin100%
7Panel vendedorCRUD productos, gestión pedidos, finanzas, storefront público100%
8Reseñas1-5 estrellas, fotos, respuesta del seller, una por order_item100%
9CuponesEngine percent/fixed, min_subtotal, max_uses, redemptions100%
10Favoritos + Direcciones + InboxWishlist, CRUD direcciones, notificaciones inbox + push100%
11AdminVerificar/suspender sellers, dashboard KPIs, reportes outbox, finanzas plataforma100%
12Mobile nativosPush, cámara, biométrico, share WhatsApp, deep links, OTA updates100%
DOC-FUN-01 · Página 2

3 · Las 9 reglas de negocio

Restricciones funcionales codificadas

  1. Comisión Plazi fija al 10% del subtotal. El vendedor recibe el 90% neto.
  2. Pago a sellers cada lunes (cierre dominical). Se calcula sobre los pedidos en estado completed de la semana anterior.
  3. Cupón LANZA90 · primeros 100 sellers reciben 0% comisión por 90 días.
  4. Envío gratis en pedidos por encima de $150.000 COP. Por debajo: $9.900 fijo (negociable a futuro por ciudad).
  5. Validación de stock en tiempo de checkout. Si el inventario cambia entre cart y pay, el endpoint rechaza con invalid_items.
  6. Una reseña por order_item. Constraint UNIQUE en la BD. El buyer solo puede reseñar productos efectivamente entregados.
  7. Solo el dueño de una orden la ve. RLS de Postgres protege esto a nivel de fila, no de aplicación.
  8. Status transitions estrictas · no se puede saltar etapas (ej. paid → delivered sin pasar por shipped). El endpoint de cambio de status valida el grafo.
  9. Cancelación con notificación · al cancelar una orden, el buyer recibe email + push + inbox notification automáticamente.
DOC-FUN-01 · Página 3

4 · Los 5 casos de uso end-to-end

Los flujos críticos del sistema

1Comprador hace su primera compra

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.

2Comerciante activa su tienda

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.

3Vendedor recibe y despacha una orden

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.

4Comprador reseña su compra

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.

5Admin verifica un seller nuevo

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.

DOC-FUN-01 · Página 4 (final)