Invitaciones, afiliados y recompensas
Configura enlaces de invitación, atribución y recompensas de afiliados (fijas y/o porcentuales). Descubre cómo las cookies registran las referencias, cómo se finaliza la atribución tras el login y cómo se calculan las recompensas en pedidos pagados.
Este template incluye un sistema de referidos/afiliados listo para usar: enlaces de invitación, atribución por cookie y recompensas configurables por registro/pago.
Mapa de código
- Redirección de invitación (localizada):
src/app/[locale]/i/[inviteCode]/route.ts - Finalizar atribución tras login:
src/app/api/affiliate/update-invite/route.ts - Gestión del código de invitación:
src/app/api/affiliate/invite-code/route.ts - Recompensas (lógica y deduplicación):
src/services/affiliate.ts - Webhook Stripe (dispara recompensa pagada):
src/services/stripe.ts - Página de usuario:
src/app/[locale]/my-invites/page.tsx- Componentes:
src/components/affiliate/invite-link.tsx,summary-cards.tsx,affiliate-table.tsx
- Componentes:
- Página de admin:
src/app/(admin)/admin/affiliates/page.tsx - Hook cliente para atribución:
src/providers/affiliate-init.tsx(incluido ensrc/providers/theme.tsx)
Flujo completo
- Visita
/:locale/i/<inviteCode>→ el server guarda cookieref(30 días) y redirige. - Tras registro/login → el cliente llama una vez a
/api/affiliate/update-invite; si el usuario no tieneinvited_by, lo fija y crea una fila de registro (sin pago por defecto). - Pago exitoso (Stripe) → se calcula recompensa fija/porcentaje/mixta y se inserta una fila completada (deduplicada por
paid_order_no). - Vistas →
/[locale]/my-invitespara el usuario;/admin/affiliatespara administradores.
Configuración
Archivo: src/data/affiliate.ts
- Programa:
enabled,attributionWindowDays,allowSelfReferral,attributionModel(first/last touch) - Recompensas:
commissionMode(fixed_only, percent_only, greater_of, sum),signup,paid - Tipo de pago:
payoutType = "cash"(centavos) o"credits"(créditos internos) - Enlaces:
sharePath(por defecto/i),myInvitesPath
Base URL para compartir: NEXT_PUBLIC_WEB_URL.
Verificar en local
- Genera tu enlace en
/[locale]/my-invitesy cópialo. - Ábrelo en incógnito, regístrate e inicia sesión; vuelve a
my-invitesy revisa el conteo. - Realiza un pago de prueba y comprueba la fila con recompensa en admin.
Consejos
- La cookie se establece en el mismo host (
NEXT_PUBLIC_WEB_URL). - El hook cliente solo marca éxito si el servidor devuelve 200; si llama antes del login, reintenta después.
- No hay doble pago: deduplicación por
paid_order_no.
Afiliados y referidos para principiantes
Configura enlaces de invitación, cookies de 30 días, atribución en el registro, modelos de recompensa y nociones antiabuso para un programa de afiliados/referidos de SaaS apto para principiantes.
Google para SaaS — Por qué importa y cómo usarlo
Guía para principiantes sobre cómo usar el ecosistema de Google (Search Console, GA4, Business Profile, Merchant Center, Trends) para ganar visibilidad, medir el comportamiento y hacer crecer un SaaS en 2025.