Kowal_Affiliate - instrucciones de instalación y configuración
Este documento describe cómo instalar, activar y realizar la primera configuración del módulo Kowal_Affiliate para Magento 2. La guía incluye tanto los requisitos técnicos como los pasos prácticos necesarios para lanzar el programa de afiliación en la tienda.
1. Requisitos del sistema
El módulo está destinado a:
- Magento Open Source / Adobe Commerce 2.4.7+
- PHP 8.2 o 8.3
En el proyecto Magento deberían estar disponibles al menos los módulos:
Magento_StoreMagento_CmsMagento_CustomerMagento_EmailMagento_QuoteMagento_SalesMagento_SalesRuleMagento_Backend
2. Métodos de instalación
El módulo puede implementarse de forma estándar como paquete Composer.
2.1. Instalación mediante Composer
El módulo se distribuye como paquete Composer, y un proceso de ejemplo es el siguiente:
composer require kowal/module-affiliatebin/magento module:enable Kowal_Affiliatebin/magento setup:upgradebin/magento setup:di:compilebin/magento cache:flush
2.3. Modo de producción
Si la tienda funciona en production mode, tras la instalación también conviene ejecutar:
bin/magento setup:static-content:deploy
3. Qué crea el módulo durante la instalación
Durante la instalación, el módulo:
- crea sus propias tablas de base de datos relacionadas con la afiliación,
- amplía
quote y sales_order con campos de afiliación, - añade atributos de cliente utilizados para gestionar al afiliado,
- crea una página CMS predeterminada del programa de partners,
- prepara la configuración del sistema y los cron jobs,
- registra plantillas de correo y recursos del panel de administración.
3.1. Página CMS predeterminada
Tras la instalación se crea una página de ejemplo del programa de partners:
identifier: affiliate-programtitle: Affiliate Partnership Program
La página tiene un carácter universal y puede utilizarse en producción tras una ligera personalización del contenido.
El patch es idempotente:
- si ya existe una página con este
identifier, el módulo no la sobrescribirá.
4. Dónde encontrar la configuración del módulo
El panel de configuración se encuentra en:
Stores -> Configuration -> Affiliate Program
Secciones principales:
GeneralCommissionPayoutsAffiliate PortalNotificationsFraudAIReporting
5. Primera configuración tras la instalación
Tras activar el módulo se recomienda el siguiente orden de configuración:
- activar el módulo globalmente,
- configurar el registro de afiliados,
- configurar la comisión y el periodo de retención,
- establecer el umbral mínimo de pagos,
- completar los contenidos del portal del afiliado,
- configurar las notificaciones del administrador,
- configurar AI de forma opcional,
- realizar una prueba de registro, clic de afiliación y pedido.
6. Configuración detallada
6.1. General
Enable Module
Interruptor global del módulo.
Si el ajuste está desactivado:
- el tracking de afiliación no debería funcionar,
- el formulario de registro no debería funcionar,
- las comisiones y payouts no se gestionarán.
Recomendación:
Yes en el entorno de producción tras finalizar las pruebas,No solo durante la desactivación del programa.
Enable Affiliate Registration
Activa el formulario de solicitud del programa de afiliación en el frontend de la tienda.
Si la opción está desactivada:
- los nuevos partners no podrán registrarse por sí mismos,
- el administrador aún podrá marcar manualmente a un cliente como afiliado.
Tracking Cookie Lifetime (days)
Define la vida útil de la atribución basada en cookie tras hacer clic en un enlace de afiliación.
Ejemplos:
30 para un programa de afiliación estándar,7 para campañas cortas,60 o 90 solo cuando las condiciones del programa lo contemplen.
Default Redirect Path
Ruta de respaldo utilizada cuando el tracking link no contiene un target válido.
Ejemplos:
/promotionscatalog/category/view/id/12
6.2. Commission
Enable Commissions
Activa el cálculo de comisiones para pedidos de afiliación.
Si el campo está desactivado:
- la afiliación puede registrarse,
- pero no se creará una entrada en la tabla de comisiones.
Default Commission Rate (%)
Tarifa predeterminada de comisión porcentual.
Ejemplo:
10 significa una comisión del 10% sobre la base de cálculo actual.
Commission Hold Period (days)
Número de días durante los cuales la comisión permanece en estado pendiente.
Una vez transcurrido este periodo, cron puede aprobar automáticamente la comisión.
Recomendación:
14 como valor predeterminado seguro,0 solo en un programa muy sencillo sin riesgo de devoluciones.
6.3. Payouts
Enable Payouts
Activa el workflow de pagos para afiliados.
Si la opción está desactivada:
- el partner no podrá presentar una solicitud de payout,
- el administrador aún podrá analizar comisiones, pero no gestionará el pago dentro del módulo.
Minimum Payout Amount
Saldo mínimo necesario para solicitar un pago.
Ejemplos:
6.4. Affiliate Portal
Esta sección controla los contenidos mostrados en el dashboard del afiliado.
Dashboard Intro
Breve descripción en la parte superior del dashboard del afiliado.
Debe explicar al partner:
- dónde encontrará el enlace de afiliación,
- dónde verá las comisiones,
- cómo funciona el panel.
Program Rules
Reglas de colaboración visibles para el afiliado.
Lo mejor es introducir:
- una regla por línea,
- mensajes concisos y claros.
Banner Title
Título predeterminado del material promocional de ejemplo.
Banner Subtitle
Breve descripción bajo el título del banner.
Banner Target Path
Ruta de destino predeterminada para enlaces de afiliación y banners.
Ejemplos:
/promotions/springcatalog/category/view/id/24
6.5. Notifications
Enable Notifications
Activa el sistema interno de notificaciones y la cola de notificaciones.
Admin Notification Email
Dirección de correo electrónico del administrador que debe recibir los mensajes operativos más importantes.
Si el campo queda vacío:
- el módulo puede utilizar la dirección predeterminada
general de Magento como fallback en determinados flows.
Notification Log Retention (days)
Define durante cuánto tiempo deben conservarse las entradas del log de notificaciones antes del cleanup.
6.6. Fraud
Enable Fraud Checks
Activa los controles antifraude básicos.
Block Self Referral
Bloquea la comisión cuando el cliente que realiza el pedido es al mismo tiempo el afiliado vinculado a ese pedido.
6.7. AI
La sección AI es opcional y no es necesaria para el funcionamiento básico del programa de afiliación.
Enable AI
Interruptor principal de las funciones AI.
OpenAI API Key
Clave API para la comunicación con OpenAI.
El campo se almacena en configuración cifrada.
AI Model Name
Modelo utilizado para las funciones AI.
La lista de modelos puede descargarse de OpenAI tras guardar correctamente la clave API.
OpenAI Request Timeout (seconds)
Tiempo máximo de espera para la respuesta de OpenAI.
Recomendación práctica:
60 segundos para un funcionamiento más estable en producción.
Enable AI Diagnostic Logging
Activa el log diagnóstico de requests y respuestas AI.
Útil en:
- integración,
- pruebas,
- análisis de timeouts y errores de respuesta.
AI Diagnostic Max Chars
Longitud máxima del preview del payload registrado.
Enable Affiliate Assistant
Activa el asistente del afiliado si la tienda quiere utilizar esta función.
Enable Weekly AI Reports
Permite generar resúmenes AI cíclicos.
Enable Product Knowledge Retrieval
Permite utilizar conocimiento de producto desde Vector Store.
Enable Program Knowledge Retrieval
Permite utilizar conocimiento sobre el programa de afiliación, FAQ y documentación.
Product Vector Store Scope
Define cómo se resuelve product_vector_store_id.
Product Vector Store ID
Identificador de Vector Store si la tienda utiliza retrieval.
Redact Personal Data
Elimina o enmascara datos personales antes de enviar el prompt a la capa AI.
6.8. Reporting
Enable Reporting
Activa la generación de informes y exportaciones CSV.
Export Directory
Ruta del directorio en el que deben guardarse las exportaciones generadas.
Ejemplo:
var/export/affiliate
7. Configuración del cliente como afiliado
Tras la instalación, el módulo amplía la edición de cliente de Magento con campos de afiliación.
En la edición de cliente se pueden gestionar, entre otros:
Affiliate ParticipantAffiliate StatusAffiliate Referral CodeAffiliate Website URLAffiliate NotesAffiliate BalanceAffiliate Coupon Discount (%)
7.1. Affiliate Participant
Indica si el cliente pertenece al programa de afiliación.
7.2. Affiliate Status
Estados principales:
PendingActiveSuspendedRejectedBlocked
7.3. Affiliate Balance
El saldo se calcula automáticamente a partir de comisiones aprobadas y listas para el pago.
El campo:
- es visible en la edición de cliente,
- no debería editarse manualmente,
- se actualiza automáticamente tras cambios en las comisiones.
7.4. Affiliate Coupon Discount (%)
Este campo permite asignar al afiliado un porcentaje de descuento que funcionará sobre su referral_code.
Si introduces un valor superior a 0, el módulo:
- creará o actualizará la regla de carrito de Magento,
- establecerá el cupón igual al código del afiliado,
- permitirá a los clientes utilizar este código como cupón en el carrito,
- asignará el pedido al afiliado en función de
coupon_code.
Ejemplo:
- el afiliado tiene el código
FMX1FBXXY3 - el administrador introduce
5 - el cliente introduce
FMX1FBXXY3 como cupón descuento - Magento aplica un 5% de descuento
- el módulo asigna el pedido al afiliado.
8. Cron jobs del módulo
El módulo utiliza crons en el grupo default.
8.1. Auto approve commissions
job: kowal_affiliate_auto_approve_commissionsschedule: */15 * * * *
La tarea:
- comprueba las comisiones
pending, - tras finalizar el periodo de retención las cambia a
approved.
8.2. Process notifications
job: kowal_affiliate_process_notificationsschedule: */10 * * * *
La tarea:
- procesa la cola de notificaciones,
- marca las entradas como enviadas,
- en el caso del canal e-mail, envía mensajes transaccionales.
8.3. Cleanup notification log
job: kowal_affiliate_cleanup_notification_logschedule: 30 2 * * *
La tarea:
- elimina entradas antiguas del log de notificaciones de acuerdo con la retención.
8.4. Weekly AI insights
job: kowal_affiliate_generate_weekly_ai_insightsschedule: 0 6 * * 1
La tarea:
- genera insights AI semanales si la función está activa.
9. Comandos CLI
El módulo proporciona comandos de servicio:
bin/magento kowal:affiliate:auto-approvebin/magento kowal:affiliate:process-notificationsbin/magento kowal:affiliate:cleanup-notificationsbin/magento kowal:affiliate:generate-ai-insightsbin/magento kowal:affiliate:export-report
Los más útiles en el primer arranque son:
bin/magento kowal:affiliate:process-notificationsbin/magento kowal:affiliate:auto-approve
10. Primera prueba tras la instalación
Tras configurar el módulo se recomienda una prueba end-to-end sencilla.
10.1. Prueba de registro de afiliado
- Accede al formulario de registro de afiliado.
- Envía la solicitud.
- Comprueba si se ha creado la cuenta de afiliado.
- Comprueba si el cliente tiene estado
Pending. - Comprueba si se han creado entradas de notificación.
10.2. Prueba de activación
- Abre la edición del cliente en el panel de administración.
- Establece el estado del afiliado en
Active o utiliza la acción de aprobación. - Comprueba si el cliente ve el dashboard del afiliado.
10.3. Prueba del enlace de afiliación
- Copia el enlace de afiliación desde el dashboard.
- Accede a la tienda mediante este enlace.
- Añade un producto al carrito.
- Realiza un pedido.
- Comprueba si el pedido tiene:
affiliate_idaffiliate_referral_codeis_affiliate_order = 1
10.4. Prueba del cupón de afiliación
- Configura al afiliado
Affiliate Coupon Discount (%), por ejemplo 5. - Guarda el cliente.
- Asegúrate de que el afiliado tenga estado
Active. - En el carrito introduce su
Referral Code como cupón. - Realiza un pedido.
- Comprueba:
- si se ha aplicado el descuento,
- si el pedido se ha asignado al afiliado,
- si se ha creado la comisión.
10.5. Prueba de payouts
- Aprueba la comisión o espera al auto-approve.
- Comprueba el saldo del afiliado.
- Presenta una solicitud de pago.
- Marca el payout como abonado en el panel de administración.
11. Problemas más frecuentes tras la instalación
11.1. No hay comisión tras el pedido
Comprueba:
- si el pedido tiene
affiliate_id, - si las comisiones están activadas,
- si el módulo funciona tras la corrección de creación de comisión después de guardar los datos de afiliación en el pedido,
- si aparece un registro en la tabla
kowal_affiliate_commission.
11.2. El grid de clientes no muestra el saldo actual del afiliado
Comprueba:
- si el índice
customer_grid se ha actualizado, - si tras los guardados funciona
reindexRow, - si el valor en la edición del cliente coincide con el valor del grid.
Si es necesario, ejecuta:
bin/magento indexer:reindex customer_grid
11.3. AI no responde
Comprueba:
- si
Enable AI está activado, - si se ha guardado una
OpenAI API Key correcta, - si se ha seleccionado el modelo,
- si el timeout no es demasiado bajo,
- si
var/log no muestra errores de request a OpenAI.
11.4. Las notificaciones no se envían
Comprueba:
- si funcionan los crons de Magento,
- si
Enable Notifications está activo, - si las entradas se guardan en
kowal_affiliate_notification_log, - si se puede ejecutar manualmente:
bin/magento kowal:affiliate:process-notifications
12. Configuración inicial recomendada
Para la primera implementación en producción se recomienda el siguiente conjunto:
Enable Module = YesEnable Affiliate Registration = YesTracking Cookie Lifetime = 30Enable Commissions = YesDefault Commission Rate = 10Commission Hold Period = 14Enable Payouts = YesMinimum Payout Amount = 100Enable Notifications = YesBlock Self Referral = YesEnable AI = No al inicio, si la tienda no necesita AI desde el primer día
13. Resumen
Tras una instalación y configuración correctas, Kowal_Affiliate permite lanzar en Magento 2 un programa de partners completo que incluye:
- afiliados,
- enlaces de recomendación,
- códigos de afiliación,
- cupones descuento de afiliados,
- comisiones,
- payouts,
- notificaciones,
- dashboard de partner,
- seguridad básica y automatización.