BOX FOR YOU

La richiesta iniziale del cliente è stata quella di poter integrare, all'interno del sito esistente realizzato con Drupal 6, la possibilità di acquistare le diverse tipologie di prodotti a catalogo. Dopo un'attenta analisi delle funzionalità richieste abbiamo deciso di seguire una nuova strada e reimplementare tutto il sistema su Drupal 7; questo passaggio ci ha dato la possibilità di utilizzare il modulo Drupal Commerce per gestire il carrello e il processo di acquisto.
Abbiamo quindi realizzato tutta una serie di funzionalità legate all'e-commerce tra le quali la possibiltà di creare landing page personalizzate che attivano sconti su un determinato sottoinsieme di prodotti oppure il cambio di un cofanetto con uno precedentemente acquistato.

La scelta di usare Drupal Commerce (e quindi riscrivere il sito per Drupal 7) è stata poi ripagata dalla estrema flessibilità che questa distribuzione mette a disposizione: dal prodotto alla riga d'ordine, dalla transazione bancaria al profilo di fatturazione tutto in Drupal Commerce è un'entità; aggiungere campi, mettere in relazione (con l'ottimo modulo Relation), caricare e salvare un singolo prodotto, ad esempio, è estremamente facile ed elegante. Drupal Commerce dà poco per assunto e permette di integrare nel tipico flusso di un e-commerce la propria logica applicativa senza nessuna complicazione o incompatibilità di sorta, gli elenchi (il carrello, il checkout) sono gestiti dal modulo Views e il workflow dal modulo Rules. Siamo intervenuti molto anche sull'aspetto grafico del sito, dall'interessante soluzione del carrello a scomparsa nella parte superiore, all'uso del tema Omega per la gestione delle griglie, fino all'utilizzo di OpenLayers e OpenStreetMap per le varie mappe (al posto di Google Maps). Abbiamo sostituito molto del codice custom con moduli che implementano le stesse funzionalità, questo ci ha portato ad avere un sistema più stabile, più integrato con il core di Drupal e più manutenibile.

Dal punto di vista tecnico abbiamo realizzato tutta una serie di webservice REST che il sito consuma o produce. Tutto il catalogo viene sincronizzato con i sistemi di backend del cliente attraverso webservice, così come tutti le infomazioni sugli ordini vengono messe a disposizione dal sito e consumate dai sistemi gestionali e di magazzino. Altri servizi usati sono quelli relativi all'attivazione e verifica del proprio cofanetto.

Abbiamo lavorato di concerto con il cliente per realizzare un insieme di API REST che seguisse uno standard comune per semplificare lo scambio di informazioni tra i vari sistemi e la gestione degli errori. Per non perdere nessuno dei dati caricati sul vecchio sito abbiamo implementato una migrazione dei contenuti che tenesse conto della diversa (e più razionale) strutturazione degli stessi creata per quello nuovo. Il backoffice è stato personalizzato per semplificare i task quotidiani del cliente, come l'inserimento dei contenuti e la messa in relazione degli stessi; per questo sono stati utilizzati moduli come Wm e Relation UI che sono stati sviluppati da noi per questo e altri progetti.