Magento è un CMS dedicato al commercio elettronico, rilasciato nel 2008. È stato creato dalla Varien e costruito sulla base di Zend. Magento è disponibile in due forme, la prima liberamente scaricabile sotto licenza OpenSoftware versione 3.0, mentre la seconda forma è a pagamento, “Magento Enterprise Edition”, ed è una versione per aziende di grandi dimensioni, rilasciata nell’aprile del 2009.

L’e-commerce da sviluppare presentava però un problema non previsto da Magento: la gestione dei magazzini distribuiti e indipendenti.

Il nostro scenario si presenta con un insieme di magazzini che gestiscono indipendentemente i loro prodotti, e un portale che tiene aggiornate le quantità.

La difficoltà si presentava proprio nella sincronizzazione delle quantità all’interno del magazzino gestito nel portale da Magento e le quantità dei singoli magazzini, dato che i magazzini erano indipendenti, quindi potevano vendere per loro conto articoli del proprio magazzino, ma gli stessi articoli potevano essere venduti anche tramite il portale di magento.

Il tutto è stato gestito con la creazione di più prodotti provenienti dai singoli magazzini, e un prodotto WEB che tiene aggiornata la quantità totale, e che rappresenta il prodotto che l’utente vede dal portale.

A questo punto bisognava fornire uno strumento ai singoli magazzini per interfacciarsi con il CMS e tenere aggiornate le quantità, ed eventualmente inserire nuovi prodotti appena arrivati.

Si è deciso per lo sviluppo di una interfaccia in linguaggio JavaScript, che tramite dei Web Services chiama delle API fornite da Magento in linguaggio PHP. Il tutto è reso sicuro da un’autenticazione con token, offrendo la possibilità di leggere i prodotti in ingresso e uscita tramite un lettore di bar code, e data la diffusione di dispositivi di vario formato, è stata anche resa responsive, con l’ausilio di Bootstrap.

Un magazzino a questo punto legge un prodotto in ingresso/vendita e quindi, automaticamente, aggiorna sia il prodotto del magazzino di riferimento che il prodotto WEB globale.

A questo punto perchè non rendere disponibili dei prodotti per un venditore terzo? Da questa idea è stato deciso di implementare un servizio di dropshipping, dove vengono messi a disposizione alcuni prodotti, che un gestore di altro e-commerce può decidere di vendere tra i suoi prodotti. Per la realizzazione è stato deciso di sviluppare dei Web Services in linguaggio PHP, che si occupano di interrogare Magento, e fornire i dati richiesti dal client tramite file in formato json.

Per l’aspetto sicurezza, si è deciso di implementare un’autenticazione di tipo OAuth, un protocollo di sicurezza che permette l’accesso da parte di terzi, ma proteggendo contemporaneamente le loro credenziali.

Leave a comment