Integrazione ERP Legacy ed E-commerce
Un ERP degli anni 2000 senza API resta il cuore dell'azienda, ma gli ordini dal sito vanno inseriti a mano ogni giorno. Un middleware custom li scrive direttamente nel database gestionale, con validazione e log.
Il problema
Una PMI manifatturiera con 20-80 dipendenti lavora da quindici anni con un ERP interno sviluppato all'inizio degli anni 2000. Il gestionale governa anagrafiche, distinta base, magazzino e ciclo ordini: è pieno di personalizzazioni accumulate negli anni e contiene lo storico di tutta l'attività. Sostituirlo non è un'opzione realistica — il rischio operativo e il costo di migrazione sono troppo alti.
Negli ultimi anni l'azienda ha aperto un canale e-commerce. Il problema è che i due mondi non si parlano: ogni mattina un addetto dell'ufficio commerciale apre il pannello del negozio online, copia gli ordini ricevuti e li reinserisce a mano nell'ERP, uno per uno. Anagrafica cliente, righe ordine, quantità, indirizzo di spedizione: tutto ribattuto.
Il lavoro è ripetitivo e cresce con le vendite. Gli errori di trascrizione generano spedizioni sbagliate e resi, lo stock a magazzino non è mai allineato in tempo reale con quanto venduto online, e nei picchi di ordini l'inserimento manuale diventa il collo di bottiglia che ritarda l'evasione.
Perché nessun SaaS standard lo risolveva
I connettori e-commerce pronti all'uso — quelli che collegano WooCommerce o Shopify a un gestionale — danno per scontato che dall'altra parte ci sia un ERP moderno che espone API REST documentate. Questo ERP, invece, non ha alcuna API: è stato pensato come applicazione desktop su database aziendale, in un'epoca in cui l'integrazione con servizi esterni non era un requisito.
Le uniche superfici disponibili sono il database SQL diretto e qualche esportazione CSV pianificata. Nessun connettore di mercato sa scrivere ordini rispettando lo schema proprietario di quel database, le sue tabelle non documentate, i vincoli e le personalizzazioni stratificate negli anni. Un middleware iPaaS generico fallirebbe sulla parte che conta: tradurre un ordine e-commerce nella forma esatta che quel gestionale specifico si aspetta, senza corrompere i dati.
L'approccio
Abbiamo costruito un middleware Python che fa da ponte tra i due sistemi, senza toccare l'ERP esistente. Legge gli ordini dall'e-commerce tramite la sua REST API, li normalizza nel formato richiesto dal database del gestionale (mappando prodotti, anagrafiche e modalità di pagamento sugli ID interni dell'ERP) e li inserisce direttamente nel database, rispettandone lo schema e i vincoli.
Prima di scrivere, ogni ordine passa una fase di validazione: cliente esistente o da creare, articolo presente a catalogo, quantità coerente con la giacenza, indirizzo completo. Gli ordini validi vengono inseriti e lo stock aggiornato; le eccezioni vengono segnalate all'operatore invece di entrare sporche nel gestionale. Ogni operazione — lettura, normalizzazione, scrittura, aggiornamento stock — viene registrata in un log con timestamp, così è sempre possibile ricostruire cosa è stato scritto e da dove proveniva.
Il middleware gira in modo schedulato e non presidiato: l'addetto interviene solo sulle eccezioni, non più sull'inserimento ordinario. L'ERP resta esattamente com'è — nessuna modifica al codice del gestionale, nessuna migrazione di dati.
Tecnologie utilizzate in questo tipo di progetto
Cosa si ottiene tipicamente
- Elimina l'inserimento manuale quotidiano degli ordini dall'e-commerce all'ERP
- Riduce gli errori di trascrizione che generano spedizioni sbagliate e resi
- Mantiene lo stock a magazzino allineato con quanto venduto online
- Concentra l'intervento umano solo sulle eccezioni, lasciando l'ERP legacy intatto
I risultati concreti dipendono dalla complessità del processo specifico, dai sistemi coinvolti e dalla qualità dei dati esistenti. La discovery serve a stimare questi parametri sul caso reale.
Hai un processo simile?
Raccontaci il flusso — non servono specifiche tecniche. Nella prima call (30 min, gratuita) capiamo insieme se e come possiamo aiutarti.
Parliamone