Tre strade per vendere corsi su Moodle con iscrizione automatica: pagamento nativo, e-commerce esterno collegato via web service e automazioni no-code. Pro, contro e come costruire il flusso.
Il problema: il pagamento arriva, l'iscrizione no
Molti enti di formazione vendono corsi online con un processo spezzato in due. Da una parte c'è il pagamento, che avviene su un sito, con un bonifico o tramite un link generato a mano. Dall'altra c'è Moodle, dove qualcuno deve creare l'utente, iscriverlo al corso giusto e mandargli le credenziali. In mezzo ci sono email, fogli di calcolo e la memoria di chi segue la segreteria.
Finché i numeri sono piccoli il sistema regge. Quando il catalogo cresce, arrivano gli errori tipici: lo studente che ha pagato e aspetta un giorno per entrare, l'iscrizione al corso sbagliato, il rimborso concesso ma l'accesso rimasto attivo, la fattura emessa in ritardo. Ogni passaggio manuale è un punto in cui il flusso può rompersi.
L'obiettivo è semplice da dire: ordine pagato, studente iscritto, email di accesso inviata, senza interventi manuali. Per arrivarci ci sono tre strade principali, con livelli diversi di complessità e di flessibilità.
Opzione 1: il pagamento nativo di Moodle
Moodle include un sottosistema di pagamenti e un metodo di iscrizione chiamato Iscrizione con pagamento (il plugin enrol_fee). Si attiva a livello di sito, si configura un account di pagamento e poi si aggiunge il metodo di iscrizione ai singoli corsi, indicando prezzo e valuta. Lo studente vede il prezzo nella pagina del corso, paga e viene iscritto in automatico.
Nel core di Moodle è incluso il gateway PayPal. Altri gateway, come Stripe o servizi di pagamento locali, sono disponibili come plugin aggiuntivi nella directory di moodle.org, con qualità e manutenzione che variano da plugin a plugin.
Quando funziona bene:
- Hai pochi corsi venduti singolarmente, a prezzo fisso
- Il pubblico è già abituato a entrare su Moodle
- Vuoi una soluzione senza sistemi esterni da mantenere
- Non ti servono logiche commerciali particolari
I limiti da conoscere:
- Nessun vero catalogo prodotti né carrello con più corsi
- Coupon, sconti a tempo, bundle e upsell sono assenti o affidati a plugin di terze parti
- La fatturazione resta fuori da Moodle e va gestita a parte
- Le pagine di vendita sono poco personalizzabili rispetto a un sito dedicato
- Rimborsi e report di vendita sono essenziali
In sintesi è un buon punto di partenza, ma difficilmente regge un'attività commerciale strutturata.
Opzione 2: e-commerce esterno collegato a Moodle via web service
La soluzione più flessibile è separare i ruoli: un e-commerce gestisce catalogo, carrello, pagamenti e fatture, mentre Moodle resta la piattaforma didattica. I due sistemi parlano tramite i web service REST di Moodle.
Sul lato vendita le scelte più comuni sono WordPress con WooCommerce oppure con FluentCart, con Stripe come gateway di pagamento. Stripe permette di offrire carte, Apple Pay e Google Pay senza integrazioni separate, e ha una modalità test completa per provare tutto prima di andare in produzione.
Il flusso tipico
Quando un ordine passa allo stato pagato, l'e-commerce lancia un evento (un hook interno o un webhook). Da lì parte la sequenza:
- Si legge la mappatura tra prodotto acquistato e corso Moodle corrispondente
- Si cerca l'utente su Moodle per email con core_user_get_users_by_field
- Se non esiste, lo si crea con core_user_create_users
- Lo si iscrive al corso con enrol_manual_enrol_users, con il ruolo studente
- Si invia l'email di benvenuto con il link di accesso e le istruzioni per impostare la password
- Si applica un tag nel CRM (ad esempio FluentCRM) per avviare le automazioni successive
Il tag nel CRM è il pezzo che spesso viene dimenticato ed è quello che fa la differenza nel tempo: permette di inviare promemoria a chi non ha ancora iniziato, proporre il corso successivo a chi ha completato il primo, chiedere un feedback alla fine del percorso.
Vantaggi: carrello, coupon, bundle, abbonamenti, pagine di vendita curate, report commerciali e integrazione con la fatturazione. Svantaggi: due sistemi da mantenere e un'integrazione da progettare con cura.
Opzione 3: automazioni no-code e low-code
Tra le due soluzioni precedenti c'è una via intermedia: usare uno strumento di automazione come n8n o Make per collegare l'e-commerce a Moodle senza scrivere un plugin dedicato. Il webhook dell'ordine pagato arriva allo scenario di automazione, che chiama i web service di Moodle, invia l'email e aggiorna il CRM.
Ti è utile questo articolo?
Iscriviti alla newsletter per ricevere guide, case study e novità su Moodle, AI e automazione. Niente spam, mai.
È una scelta valida quando si vuole partire in fretta o quando il flusso coinvolge altri sistemi, come un gestionale, un foglio condiviso o un canale di notifica per la segreteria. n8n può essere installato sul proprio server, il che aiuta a tenere i dati personali sotto controllo.
Il rovescio della medaglia è che la logica vive fuori dai due sistemi principali. Va documentata, monitorata e gestita negli errori, altrimenti un nodo che fallisce in silenzio blocca le iscrizioni senza che nessuno se ne accorga.
Confronto tra le tre opzioni
| Aspetto | Pagamento nativo Moodle | E-commerce esterno + web service | Automazione n8n o Make |
|---|---|---|---|
| Complessità iniziale | Bassa | Media o alta | Media |
| Catalogo e carrello | Assenti | Completi | Dipende dall'e-commerce |
| Coupon e bundle | Limitati | Completi | Dipende dall'e-commerce |
| Fatturazione | Esterna | Integrabile | Integrabile |
| Apple Pay e Google Pay | Tramite plugin | Sì, con Stripe | Sì, con Stripe |
| Manutenzione | Solo Moodle | Due sistemi più integrazione | Tre sistemi |
| Adatta a | Pochi corsi | Catalogo strutturato | Prototipi e flussi multi-sistema |
Gli aspetti che fanno la differenza
Idempotenza
Lo stesso evento di pagamento può arrivare più volte: i webhook vengono ritrasmessi se il destinatario non risponde in tempo. Il flusso deve quindi essere idempotente, cioè produrre lo stesso risultato anche se eseguito due volte. In pratica: verificare se l'utente esiste prima di crearlo, registrare quali ordini sono già stati elaborati e non inviare due volte l'email di benvenuto.
Rimborsi e cancellazioni
Un rimborso deve avere un effetto su Moodle. Le opzioni sono due: disiscrivere lo studente con enrol_manual_unenrol_users oppure sospendere l'iscrizione, che conserva lo storico delle attività. La sospensione è spesso la scelta migliore, perché permette di riattivare l'accesso senza perdere dati.
Mappatura prodotto e corso
Ogni prodotto deve puntare a uno o più corsi in modo esplicito, con un campo dedicato o una tabella di configurazione. Evita mappature basate sul nome del prodotto: basta rinominarlo per rompere il flusso.
Sicurezza del token
Il token del web service deve appartenere a un utente dedicato, con un servizio esterno che abiliti solo le funzioni necessarie e un ruolo con i permessi minimi. Il token va conservato lato server, mai nel codice del browser, e la comunicazione deve passare solo in HTTPS.
Fatturazione elettronica
In Italia la fattura elettronica passa dal Sistema di Interscambio. Moodle non la gestisce, quindi l'e-commerce deve raccogliere i dati fiscali corretti (codice fiscale, partita IVA, codice destinatario o PEC) e passarli al software di fatturazione o a un servizio collegato. È un requisito da considerare fin dall'inizio, non un dettaglio da sistemare dopo.
Test in sandbox
Stripe e PayPal offrono ambienti di test. Usali insieme a un'istanza Moodle di prova per verificare tutti i casi: utente nuovo, utente esistente, acquisto di più corsi, coupon, pagamento fallito, rimborso.
Come costruire il flusso, passo per passo
- 1Definisci il catalogo e la corrispondenza tra ogni prodotto e i corsi Moodle
- 2Scegli l'e-commerce e il gateway di pagamento, attivando la modalità test
- 3Su Moodle abilita i web service e il protocollo REST
- 4Crea un utente tecnico, un ruolo con permessi minimi e un servizio esterno con le sole funzioni necessarie
- 5Genera il token e conservalo in modo sicuro lato server
- 6Implementa il flusso sull'evento di ordine pagato: ricerca utente, creazione, iscrizione, email
- 7Aggiungi il controllo di idempotenza e un registro degli ordini elaborati
- 8Gestisci rimborsi e cancellazioni con disiscrizione o sospensione
- 9Collega il CRM con i tag per le automazioni successive
- 10Integra la raccolta dei dati fiscali e la fatturazione elettronica
- 11Testa tutti gli scenari in sandbox, poi passa in produzione con un primo ordine reale controllato
- 12Attiva notifiche per gli errori, così che un problema venga visto subito
Vuoi vendere i tuoi corsi con iscrizione automatica?
ITN gestisce piattaforme Moodle e progetta integrazioni tra e-commerce, CRM e piattaforme di formazione. Possiamo aiutarti a scegliere la strada più adatta al tuo catalogo, dal pagamento nativo a un flusso completo con fatturazione e automazioni.
Contattaci per una consulenza gratuita di 30 minuti: analizziamo il tuo processo di vendita attuale e ti indichiamo i passi concreti per automatizzarlo.
Ti è piaciuto questo articolo?
Contattaci per una consulenza gratuita sul tema trattato.
Prenota una consulenza gratuita





