Módulo de Comisiones SipSop
Sistema completo de gestión de comisiones para vendedores intermediarios (1099 contractors y staff MSP). Calcula, materializa y paga comisiones sobre el revenue SaaS de los tenants que cada rep trajo.
Qué resuelve
SipSop factura a sus tenants via Stripe mes a mes. Este módulo conecta cada pago de tenant con los vendedores que lo trajeron, calcula cuánto le corresponde a cada uno, genera un statement descargable en PDF, y lleva el registro de quién pagó qué y cuándo.
Sub-fases del módulo
El módulo fue construido en 4 sub-fases acumulativas. Cada una extiende la anterior.
| Sub-fase | Nombre | Qué entrega |
|---|---|---|
| F-CMS-1 | Núcleo MSP | CRUD de reps, asignaciones, revenue events, motor de cálculo, lifecycle de statements, PDF, cron mensual |
| F-CMS-2 | Multi-vendedor + MLM | Splits N-arios por asignación (shares suman 100%), jerarquía manager con override % recursivo, detección de ciclos |
| F-CMS-3 | Atribución + componentes | Ref codes públicos en landing, cookie first-touch 90 días, autoasignación en conversión de lead, % distinto por componente de revenue (base / phones / lines / overage) |
| F-CMS-4 | Portal del vendedor | Rol seller en Better Auth, invitaciones magic-link, portal read-only /seller/* con 4 vistas |
Navegación
| Documento | Contenido |
|---|---|
| Conceptos | Glosario, modelo de dominio, roles, vesting |
| Happy path | Historia completa de "Tienda Frescura" con números reales |
| Arquitectura | Schema (8 tablas), calculator, lifecycle de statements |
| Operaciones | Workflows del admin paso a paso |
| Portal vendedor | Guía del portal seller para reps externos |
| API reference | Todos los procedures tRPC + endpoints REST |
| FAQ | Preguntas frecuentes y troubleshooting |
| Deploy | Deploy de esta documentación a Cloudflare Pages |
Quick start (admin)
Tres pasos para empezar a pagar comisiones:
1. Crear un rep
Portal admin → /admin/commissions/vendedores → Nuevo rep. Ingresá nombre, email, payment method, y los términos default (% recurrente, bono one-time, basis gross/net).
2. Asignar un tenant
/admin/commissions/asignaciones → Nueva asignación. Seleccioná el tenant y el rep (o varios reps con sus shares). Los términos se resuelven por cascade: input → rep default → global default.
3. Generar el statement del mes
/admin/commissions/statements → Generar → ingresar el período. El motor calcula las comisiones sobre los revenue_events del tenant en ese período y materializa un statement draft. Revisá los line items, finalizá, y marcá como pagado.
El cron automático lo hace el día 1 de cada mes a las 3am UTC (configurable en /admin/commissions/configuracion).
Ejemplo destacado
La historia de Tienda Frescura muestra el módulo completo en acción: 6 personajes, una venta real con números, splits 70/30, jerarquía MLM de 2 niveles, vesting de bono a 3 meses, y el timeline mes a mes.
Specs originales
Los 4 specs de diseño viven en el repo:
docs/superpowers/specs/2026-05-09-fcms1-comisiones-vendedores-design.mddocs/superpowers/specs/2026-05-10-fcms2-multi-vendedor-mlm-design.mddocs/superpowers/specs/2026-05-10-fcms3-attribution-component-design.mddocs/superpowers/specs/2026-05-10-fcms4-seller-portal-design.md