¿Deberías añadir un programa de referidos?
Decide si necesitas atribución, comisiones en efectivo o créditos antes de habilitar el seguimiento first-touch del starter.
Sushi SaaS incluye la base técnica para referidos, no un programa de afiliación terminado. Está desactivada por defecto. Al activarla puede atribuir una cuenta nueva y registrar una recompensa pendiente tras el pago; no verifica afiliados, envía dinero, concede créditos ni marca pagos como completados.
Recorrido incluido
- Un usuario autenticado crea un código corto (normalmente de ocho caracteres) y comparte
/i/<code>. - El visitante abre el enlace; la app guarda el UUID del referente en una cookie
refde 30 días y redirige al inicio. - Tras iniciar sesión, el cliente envía la cookie al endpoint de atribución.
- El servicio reclama un referente una sola vez. Rechaza autorreferidos y los reintentos concurrentes convergen en la primera atribución correcta.
- Un pago válido crea una comisión pendiente. Una regla única de base hace inocua la repetición del webhook.
El usuario ve enlace y resumen en my-invites. El operador inspecciona filas en affiliates del admin, pero esa página es de solo lectura, no un flujo de pagos.
El ejemplo usa el mayor valor entre 5.000 unidades monetarias menores y el 20% pagado. Con USD de dos decimales, 5.000 significa 50 $. Es un ejemplo, no una recomendación.
Consulta src/config/affiliate.ts en 2a1a04a y src/services/affiliate.ts.
Decide el programa antes que el código
| Objetivo | Qué hacer |
|---|---|
| Sin referidos | Mantén enabled: false; elimina después páginas, rutas, tablas y provider si quieres reducir el producto |
| Solo atribución | Conserva first touch, deja de crear y mostrar comisiones y define qué analítica puedes guardar |
| Comisiones en efectivo | Añade elegibilidad, identidad/impuestos, fraude, proveedor de pagos, estados auditados y conciliación |
| Recompensas en créditos | Añade una concesión idempotente a la libreta; cambiar solo payoutType no mueve créditos |
| Last touch | Implementa y prueba otra regla en el servicio; el enum exportado por sí solo no cambia first touch |
El cálculo admite solo fijo, solo porcentaje, el mayor y suma. La atribución no selecciona actualmente por AttributionModel; first touch es el contrato implementado.
Políticas pendientes
- ¿Qué compras cuentan y cuándo se paga una recompensa pendiente?
- ¿Qué ocurre con devolución, disputa, cancelación o borrado de cuenta?
- ¿Qué moneda y regla de unidad menor se usa?
- ¿Pueden participar empleados, clientes existentes o el mismo hogar?
- ¿La cookie requiere consentimiento en las regiones atendidas?
- ¿Cómo investigará operaciones y corregirá registros sin perder auditoría?
Un reembolso de Stripe puede cancelar una recompensa pendiente, pero no se recupera un pago completado. No automatices dinero antes de definir políticas y fallos.
Habilítalo con seguridad
- Configura y prueba Cobros con Stripe.
- Sustituye ventana y valores de ejemplo en
src/config/affiliate.ts. - Crea el flujo de pago o créditos y sus acciones administrativas antes de activarlo.
- Prueba visita anónima → alta/login → first touch → pago → replay → reembolso.
- Prueba autorreferido, dos enlaces competidores, caducidad y concurrencia.
Sigue Configurar referidos y recompensas de afiliación para la configuración y verificación exactas; consulta la superficie actual en Páginas y operaciones del admin.