Quali sono le cose da fare per consentire a Gamma Enterprise di controllare il catalogo Magento, e a Magento di inviare i suoi ordini a Gamma Enterprise.

Come integrare Magento con Gamma Enterprise di TeamSystem.

Quali sono le cose da fare per consentire a Gamma Enterprise di controllare il catalogo Magento, e a Magento di inviare i suoi ordini a Gamma Enterprise.

Questo articolo racconta la strategia con cui abbiamo risolto l'esigenza di integrare la piattaforma e-commerce Magento con la soluzione ERP di TeamSystem: Gamma Enterprise.

Scenario.

Nella nostra integrazione il gestionale Gamma Enterprise rappresenta il centro stella degli ambienti B2B e B2C, sviluppati con Magento, e conserva il ruolo principale per la gestione dei prodotti del magazzino e della gestione della contabilità.

Gamma Enterprise è responsabile delle seguenti attività:

  1. pubblicazione dei prodotti su Magento, proprietà di base e varianti.
  2. gestione della disponibilità dei prodotti.
  3. gestione dell'evasione degli ordini.
  4. aggiornamento delle anagrafiche cliente.

Magento si occupa di tutte le attività specifiche di una piattaforma e-commerce web, quali:

  1. categorizzazione dei prodotti sul canale web.
  2. offerte e promozioni specifiche per il web.
  3. spese di spedizione, tasse e metodi di pagamento.
  4. procedura d'acquisto dal carrello al pagamento.
  5. pagine e contenuti.

Strategia di integrazione.

I flussi di integrazione tra i due sistemi si possono gestire in modo sincrono oppure asincrono; tale modalità viene normalmente scelta in base alla specificità dei due sistemi e alle caratteristiche del flusso gestito.

Avendo considerato la notevole mole dei dati da gestire, le caratteristiche intrinseche dei due sistemi software e le modalità di vendita del cliente, nel nostro caso si è optato per una soluzione asincrona. Inoltre, in base alla frequenza di aggiornamento dei flussi di integrazione, abbiamo differenziato ulteriormente in questo modo:

aggiornamento a bassa frequenza (1 volta al giorno):

  • prodotti
  • stato degli ordini sul gestionale
  • dati dei clienti

aggiornamento ad alta frequenza:

  • caricamento degli ordini da magento al gestionale
  • aggiornamento della disponibilità dei prodotti

per la gestione dei flussi tra i due sistemi sono stati predisposti due servizi Restful accoppiati, installati rispettivamente:

  • sulla macchina Windows dove risiede il database del gestionale
  • sulle macchine Linux dove risiedono gli ambienti Magento

I servizi sono stati sviluppati con Flask e pubblicati con Apache tramite mod_wsgi su Windows e tramite Gunicorn su Linux. 

Operazioni a bassa frequenza.

L’integrazione prende avvio dal gestionale, dove una volta al giorno viene richiamato il primo servizio Flask per il recupero di tutte le informazioni che dovranno essere aggiornate. 

Le informazioni, prese direttamente dal sistema ERP attraverso una serie si tabelle di interscambio, vengono salvate in un tracciato record ed esportate sulle macchine Linux tramite un servizio di file sharing.

Il passaggio delle informazioni attraverso file consente di disaccoppiare l’esportazione dei dati dalla successiva fase di importazione, che necessita di lunghi tempi di esecuzione.

A questo punto, una serie di comandi pianificati sulle macchine linux consentono l’aggiornamento dei dati in Magento attraverso chiamate alle API XML-RPC di Magento: ogni notte vengono aggiornati tutti i prodotti che hanno subito variazioni sul gestionale, e ne viene aggiornata la disponibilità.

Operazioni ad alta frequenza.

Le operazioni ad alta frequenza corrispondono al flusso delle informazioni da Magento verso gestionale. Dati la frequenza più alta ed il tempo di esecuzione limitato, è stato possibile eseguire queste operazioni chiamando direttamente i servizi restful Flask che fanno da tramite tra il gestionale e Magento.

Ogni pochi minuti il servizio Flask richiama con le API XML-RPC di Magento gli ordini eseguiti in un lasso di tempo prestabilito e li carica sul gestionale. La frequenza di aggiornamento degli ordini è stata decisa in base alla quantità di ordini effettuata su Magento trovando così un giusto equilibrio tra tempi di esecuzione e tempi di attesa per il cliente.

Prossimi sviluppi.

Con il sistema di integrazione sviluppato abbiamo cercato di consentire una gestione snella ma robusta dei vari flussi facendo in modo che ogni operazione da e verso Gamma Enterprise potesse essere controllata e rieseguita all’occorrenza.

Tra i miglioramenti in corso d’opera, ecco alcuni punti cardine dell’integrazione:

  1. monitoraggio delle varie operazioni; un sistema di logging esaustivo ed un'efficiente analisi dei log consentono di snellire i tempi di individuazione degli errori.
  2. gestione della disponibilità dei prodotti; l’aggiornamento tempestivo della disponibilità dei prodotti è un punto fondamentale di una buona integrazione.
  3. API Magento: per comodità sono state utilizzate le API XML-RPC di Magento ma è possibile utilizzare anche la loro versione SOAP che è attualmente più supportata.

Vuoi maggiori informazioni?

Leggi il nostro caso d’uso per l'e-commerce di Editrice Shalom oppure contattaci.

Share this on

Share |

On same topics

Commenti

comments powered by Disqus