Kowal_Affiliate - istruzioni di installazione e configurazione
Questo documento descrive il metodo di installazione, attivazione e prima configurazione del modulo Kowal_Affiliate per Magento 2. La guida include sia i requisiti tecnici sia i passaggi pratici necessari per avviare il programma di affiliazione nello store.
1. Requisiti di sistema
Il modulo è destinato a:
- Magento Open Source / Adobe Commerce 2.4.7+
- PHP 8.2 o 8.3
Nel progetto Magento devono essere disponibili almeno i moduli:
Magento_StoreMagento_CmsMagento_CustomerMagento_EmailMagento_QuoteMagento_SalesMagento_SalesRuleMagento_Backend
2. Metodi di installazione
Il modulo può essere implementato in modo standard come pacchetto Composer.
2.1. Installazione tramite Composer
Il modulo è distribuito come pacchetto Composer, un processo di esempio è il seguente:
composer require kowal/module-affiliatebin/magento module:enable Kowal_Affiliatebin/magento setup:upgradebin/magento setup:di:compilebin/magento cache:flush
2.3. Modalità produzione
Se lo store funziona in production mode, dopo l’installazione vale la pena eseguire anche:
bin/magento setup:static-content:deploy
3. Cosa crea il modulo durante l’installazione
Durante l’installazione il modulo:
- crea le proprie tabelle di database relative all’affiliazione,
- estende
quote e sales_order con campi di affiliazione, - aggiunge attributi cliente utilizzati per la gestione dell’affiliato,
- crea una pagina CMS predefinita del programma partner,
- prepara la configurazione di sistema e i cron jobs,
- registra template e-mail e risorse del pannello di amministrazione.
3.1. Pagina CMS predefinita
Dopo l’installazione viene creata una pagina di esempio del programma partner:
identifier: affiliate-programtitle: Affiliate Partnership Program
La pagina ha carattere universale e può essere utilizzata in produzione dopo una piccola personalizzazione dei contenuti.
La patch è idempotente:
- se una pagina con questo
identifier esiste già, il modulo non la sovrascriverà.
4. Dove trovare la configurazione del modulo
Il pannello di configurazione si trova in:
Stores -> Configuration -> Affiliate Program
Le sezioni più importanti:
GeneralCommissionPayoutsAffiliate PortalNotificationsFraudAIReporting
5. Prima configurazione dopo l’installazione
Dopo l’attivazione del modulo, si consiglia il seguente ordine di configurazione:
- abilitare il modulo a livello globale,
- impostare la registrazione degli affiliati,
- configurare la commissione e l’hold period,
- impostare la soglia minima di pagamento,
- completare i contenuti del portale affiliato,
- configurare le notifiche dell’amministratore,
- configurare opzionalmente AI,
- eseguire un test di registrazione, clic di affiliazione e ordine.
6. Configurazione dettagliata
6.1. General
Enable Module
Interruttore globale del modulo.
Se l’impostazione è disattivata:
- il tracking di affiliazione non dovrebbe funzionare,
- il modulo di registrazione non dovrebbe funzionare,
- commissioni e payout non saranno gestiti.
Raccomandazione:
Yes sull’ambiente di produzione dopo il completamento dei test,No solo durante la disattivazione del programma.
Enable Affiliate Registration
Abilita il modulo di candidatura al programma di affiliazione sul frontend dello store.
Se l’opzione è disattivata:
- i nuovi partner non potranno registrarsi autonomamente,
- l’amministratore potrà comunque contrassegnare manualmente il cliente come affiliato.
Tracking Cookie Lifetime (days)
Definisce la durata dell’attribuzione basata su cookie dopo il clic su un link di affiliazione.
Esempi:
30 per un programma di affiliazione standard,7 per campagne brevi,60 o 90 solo se il regolamento del programma lo prevede.
Default Redirect Path
Percorso di fallback utilizzato quando il tracking link non contiene un target corretto.
Esempi:
/promotionscatalog/category/view/id/12
6.2. Commission
Enable Commissions
Abilita il calcolo delle commissioni per gli ordini affiliati.
Se il campo è disattivato:
- l’affiliazione può essere salvata,
- ma la voce nella tabella delle commissioni non verrà creata.
Default Commission Rate (%)
Tariffa predefinita della commissione percentuale.
Esempio:
10 indica una commissione del 10% sulla base di calcolo attuale.
Commission Hold Period (days)
Numero di giorni durante i quali la commissione rimane nello stato in attesa.
Dopo questo periodo, cron può approvare automaticamente la commissione.
Raccomandazione:
14 come valore predefinito sicuro,0 solo per un programma molto semplice senza rischio di resi.
6.3. Payouts
Enable Payouts
Abilita il workflow dei pagamenti per gli affiliati.
Se l’opzione è disattivata:
- il partner non potrà presentare una richiesta di payout,
- l’amministratore potrà ancora analizzare le commissioni, ma non gestirà il pagamento nel modulo.
Minimum Payout Amount
Saldo minimo richiesto per richiedere il pagamento.
Esempi:
6.4. Affiliate Portal
Questa sezione controlla i contenuti visualizzati nella dashboard dell’affiliato.
Dashboard Intro
Breve descrizione nella parte superiore della dashboard dell’affiliato.
Dovrebbe spiegare al partner:
- dove trova il link di affiliazione,
- dove vede le commissioni,
- come funziona il pannello.
Program Rules
Regole di collaborazione visibili per l’affiliato.
È preferibile inserire:
- una regola per ogni riga,
- messaggi concisi e univoci.
Banner Title
Titolo predefinito del materiale promozionale di esempio.
Banner Subtitle
Breve descrizione sotto il titolo del banner.
Banner Target Path
Percorso target predefinito per link di affiliazione e banner.
Esempi:
/promotions/springcatalog/category/view/id/24
6.5. Notifications
Enable Notifications
Abilita il sistema interno di notifiche e la coda di notifica.
Admin Notification Email
Indirizzo e-mail dell’amministratore che deve ricevere i principali messaggi operativi.
Se il campo rimane vuoto:
- il modulo può utilizzare l’indirizzo predefinito
general di Magento come fallback in flow selezionati.
Notification Log Retention (days)
Definisce per quanto tempo le voci nel log delle notifiche devono essere conservate prima del cleanup.
6.6. Fraud
Enable Fraud Checks
Abilita i controlli antifrode di base.
Block Self Referral
Blocca la commissione quando il cliente che effettua l’ordine è allo stesso tempo l’affiliato collegato a quell’ordine.
6.7. AI
La sezione AI è opzionale e non è richiesta per il funzionamento di base del programma di affiliazione.
Enable AI
Interruttore principale delle funzionalità AI.
OpenAI API Key
Chiave API per la comunicazione con OpenAI.
Il campo è conservato in configurazione cifrata.
AI Model Name
Modello utilizzato per le funzionalità AI.
L’elenco dei modelli può essere scaricato da OpenAI dopo il salvataggio corretto della chiave API.
OpenAI Request Timeout (seconds)
Tempo massimo di attesa per la risposta da OpenAI.
Raccomandazione pratica:
60 secondi per un funzionamento più stabile in produzione.
Enable AI Diagnostic Logging
Abilita il logging diagnostico di request e risposte AI.
Utile in:
- integrazione,
- test,
- analisi di timeout ed errori di risposta.
AI Diagnostic Max Chars
Lunghezza massima del preview del payload registrato nel log.
Enable Affiliate Assistant
Abilita l’assistente dell’affiliato se lo store vuole utilizzare questa funzione.
Enable Weekly AI Reports
Consente di generare riepiloghi AI ciclici.
Enable Product Knowledge Retrieval
Consente di utilizzare la conoscenza prodotto da Vector Store.
Enable Program Knowledge Retrieval
Consente di utilizzare la conoscenza del programma di affiliazione, FAQ e documentazione.
Product Vector Store Scope
Definisce come viene risolto product_vector_store_id.
Product Vector Store ID
Identificatore Vector Store se lo store utilizza il retrieval.
Redact Personal Data
Rimuove o maschera i dati personali prima dell’invio del prompt al livello AI.
6.8. Reporting
Enable Reporting
Abilita la generazione di report ed esportazioni CSV.
Export Directory
Percorso della directory in cui devono essere salvate le esportazioni generate.
Esempio:
var/export/affiliate
7. Configurazione del cliente come affiliato
Dopo l’installazione, il modulo estende la modifica del cliente Magento con campi di affiliazione.
Nella modifica del cliente è possibile gestire, tra l’altro:
Affiliate ParticipantAffiliate StatusAffiliate Referral CodeAffiliate Website URLAffiliate NotesAffiliate BalanceAffiliate Coupon Discount (%)
7.1. Affiliate Participant
Indica se il cliente appartiene al programma di affiliazione.
7.2. Affiliate Status
Stati principali:
PendingActiveSuspendedRejectedBlocked
7.3. Affiliate Balance
Il saldo viene calcolato automaticamente dalle commissioni approvate e pronte per il pagamento.
Il campo:
- è visibile nella modifica del cliente,
- non dovrebbe essere modificato manualmente,
- si aggiorna automaticamente dopo le modifiche alle commissioni.
7.4. Affiliate Coupon Discount (%)
Questo campo consente di assegnare all’affiliato una percentuale di sconto che agirà sul suo referral_code.
Se inserisci un valore maggiore di 0, il modulo:
- creerà o aggiornerà la regola carrello Magento,
- imposterà il coupon uguale al codice dell’affiliato,
- consentirà ai clienti di utilizzare questo codice come coupon nel carrello,
- attribuirà l’ordine all’affiliato in base a
coupon_code.
Esempio:
- l’affiliato ha il codice
FMX1FBXXY3 - l’amministratore inserisce
5 - il cliente inserisce
FMX1FBXXY3 come coupon sconto - Magento applica uno sconto del 5%
- il modulo attribuisce l’ordine all’affiliato.
8. Cron jobs del modulo
Il modulo utilizza i cron nel gruppo default.
8.1. Auto approve commissions
job: kowal_affiliate_auto_approve_commissionsschedule: */15 * * * *
Il job:
- controlla le commissioni
pending, - dopo la scadenza dell’hold period le modifica in
approved.
8.2. Process notifications
job: kowal_affiliate_process_notificationsschedule: */10 * * * *
Il job:
- elabora la coda delle notifiche,
- contrassegna le voci come inviate,
- nel caso del canale e-mail invia messaggi transazionali.
8.3. Cleanup notification log
job: kowal_affiliate_cleanup_notification_logschedule: 30 2 * * *
Il job:
- rimuove le vecchie voci dal log delle notifiche secondo la retention.
8.4. Weekly AI insights
job: kowal_affiliate_generate_weekly_ai_insightsschedule: 0 6 * * 1
Il job:
- genera insight AI settimanali, se la funzione è attiva.
9. Comandi CLI
Il modulo mette a disposizione comandi di servizio:
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
I più utili al primo avvio sono:
bin/magento kowal:affiliate:process-notificationsbin/magento kowal:affiliate:auto-approve
10. Primo test dopo l’installazione
Dopo la configurazione del modulo, si consiglia un semplice test end-to-end.
10.1. Test di registrazione dell’affiliato
- Vai al modulo di registrazione dell’affiliato.
- Invia la richiesta.
- Verifica che l’account affiliato sia stato creato.
- Verifica che il cliente abbia lo stato
Pending. - Verifica che siano state create voci di notifica.
10.2. Test di attivazione
- Apri la modifica del cliente nel pannello admin.
- Imposta lo stato dell’affiliato su
Active oppure usa l’azione di approvazione. - Verifica che il cliente veda la dashboard dell’affiliato.
10.3. Test del link di affiliazione
- Copia il link di affiliazione dalla dashboard.
- Entra nello store tramite questo link.
- Aggiungi un prodotto al carrello.
- Effettua un ordine.
- Verifica che l’ordine abbia:
affiliate_idaffiliate_referral_codeis_affiliate_order = 1
10.4. Test del coupon di affiliazione
- Imposta per l’affiliato
Affiliate Coupon Discount (%), ad esempio 5. - Salva il cliente.
- Assicurati che l’affiliato abbia lo stato
Active. - Nel carrello inserisci il suo
Referral Code come coupon. - Effettua un ordine.
- Verifica:
- se lo sconto è stato applicato,
- se l’ordine è stato attribuito all’affiliato,
- se è stata creata una commissione.
10.5. Test dei payout
- Approva la commissione oppure attendi l’auto-approve.
- Verifica il saldo dell’affiliato.
- Presenta una richiesta di pagamento.
- Contrassegna il payout come pagato nel pannello admin.
11. Problemi più frequenti dopo l’installazione
11.1. Mancanza di commissione dopo l’ordine
Verifica:
- se l’ordine ha
affiliate_id, - se le commissioni sono abilitate,
- se il modulo funziona dopo la correzione della creazione della commissione dopo il salvataggio dei dati di affiliazione sull’ordine,
- se nella tabella
kowal_affiliate_commission compare un record.
11.2. La griglia clienti non mostra il saldo attuale dell’affiliato
Verifica:
- se l’indice
customer_grid è stato aggiornato, - se dopo i salvataggi funziona
reindexRow, - se il valore nella modifica del cliente corrisponde al valore nella griglia.
Se necessario, esegui:
bin/magento indexer:reindex customer_grid
11.3. AI non risponde
Verifica:
- se
Enable AI è abilitato, - se è stata salvata una
OpenAI API Key corretta, - se è stato selezionato un modello,
- se il timeout non è troppo basso,
- se
var/log non mostra errori della request verso OpenAI.
11.4. Le notifiche non vengono inviate
Verifica:
- se i cron Magento funzionano,
- se
Enable Notifications è attivo, - se le voci vengono salvate in
kowal_affiliate_notification_log, - se è possibile avviare manualmente:
bin/magento kowal:affiliate:process-notifications
12. Configurazione iniziale consigliata
Per la prima implementazione in produzione, si consiglia questo set:
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 all’inizio, se lo store non ha bisogno di AI dal primo giorno
13. Riepilogo
Dopo una corretta installazione e configurazione, Kowal_Affiliate consente di avviare in Magento 2 un programma partner completo che include:
- affiliati,
- link referral,
- codici di affiliazione,
- coupon sconto per affiliati,
- commissioni,
- payout,
- notifiche,
- dashboard partner,
- sicurezza di base e automazione.