PrestaShop è una soluzione e-commerce gratuita e open-source, semplice da installare e configurare. La procedura di aggiornamento dalle versioni precedenti la 1.4 può presentare qualche difficoltà: oggi vedremo quali sono i passaggi più critici, cercando di fornire gli strumenti utili per risolvere gli eventuali problemi. Innanzitutto, prima di procedere è fortemente suggerito eseguire un backup del sito e del database, seguendo la stessa procedura vista per la igrazione di PrestaShop.

Se abbiamo modificato qualche traduzione, dal menù principale clicchiamo sul UtilitàTraduzioni. Nella sezione Esporta una lingua selezioniamo la lingua e il tema corrente, poi clicchiamo su Esporta.

Come ultima precauzione, disabilitiamo momentaneamente il negozio: dal menù PreferenzeAbilita negozio spuntiamo la voce “no”. Subito sotto, nel campo Indirizzo IP di manutenzione, inseriamo il nostro IP corrente (trova IP), allo scopo di poter accedere al negozio per le verifiche necessarie. Se lavoriamo in locale inseriamo l'indirizzo 127.0.0.1.

Scarichiamo la nuova versione (in formato compresso), estraiamo i files e rinominiamo la cartella

/prestashop/admin

con il nome della nostra cartella di amministrazione (quella che usiamo per entrare nel backend). D'ora in poi faremo riferimento a questa nuova copia di PrestaShop come la “nuova versione”. Durante la procedura avremo quindi due istanze di PrestaShop: quella vecchia, che non toccheremo mai, e quella nuova (estratta dallo ZIP), che dovremo trasformare in una nuova versione funzionante.

1° step: procedura manuale

Copiamo la cartelle del nostro backup dentro le cartelle delle nuova installazione. Le cartelle da copiare sono:

  • img: immagini di categorie e prodotti, sovrascrivendo il contenuto della cartella img della nuova versione, in modo da mantenere le nostre immagini
  • modules: i moduli aggiunti dopo l'installazione, sovrascrivendo il contenuto della cartella modeles della nuova versione. Se abbiamo installato PrestaShop con tutti i moduli di default, e non abbiamo mai aggiunto alcun modulo, possiamo saltare questo passaggio. Se non siamo sicuri che i moduli siano compatibili con la nuova versione, conviene disinstallarli (disabilitarli senza disinstallarli potrebbe essere inutile)
  • themes/<nome>: copiamo solamente il tema che stiamo utilizzando. Se usiamo il tema di default (i.e. Prestashop) saltiamo questo passaggio, ovvero non portiamo il vecchio tema nella nuova installazione. Altrimenti è bene verificare che il tema sia compatibile con la nuova versione prima di procedere con l'aggiornamento, usando l'apposito tool online (con istruzioni in inglese). Se il tema non è compatibile conviene disabilitarlo (tornando su quello di default) prima di proseguire, e ripristinarlo al termine dell'aggiornamento (scaricandone l'ultima versione)

Se abbiamo personalizzato manualmente alcune pagine, probabilmente dovremo copiare anche le cartelle mail, download e upload: se invece non abbiamo mai toccato queste cartelle, possiamo evitare di copiarle nella nuova versione.

Dalla cartella config copiamo solamente il file settings.inc.php, facendo attenzione ai soliti parametri (gli stessi che dobbiamo tenere d'occhio in caso di migrazione).

__PS_BASE_URI__ : il percorso rispetto alla root di Apache, ad esempio ilmiosito

_DB_NAME_: il nome del database

_DB_SERVER_: l'host del dabase, probabilmente localhost

La cartella classes merita una trattazione a parte: se abbiamo aggiunto classi nuove, non previste da PrestaShop, ci toccherà editarle a mano e cambiare tutti i nomi, per appendere il suffisso Core. Ad esempio, la classe Pippo andrà rinominata come PippoCore. Quest'operazione va effettuata solo sui nomi delle classi, non sui nomi dei files PHP che le contengono.

2° step: wizard di aggiornamento

A questo punto apriamo il browser per raggiugere il wizard di aggiornamento. Se lavoriamo in locale ci colleghiamo ad un indirizzo del tipo

http://localhost/prestashop/install/

Nella prima pagina spuntiamo la casella Voglio aggiornare il mio PrestaShop, nella seconda confermiamo di aver fatto il backup dell'installazione precedente. Se il wizard ci segnala che i parametri del server sono insufficienti (ad esempio max_execution_time), provvediamo a modificare il parametro nel file .htaccess (o il file php.ini se siamo in locale) e rilanciamo il wizard dall'inizio.

Al termine del processo ci verrà detto se sono avvenuti errori. In caso di errori SQL dobbiamo copiare il rapporto completo (cliccando su visualizza rapporto) e cercare l'errore. Questo potrebbe essere piuttosto noioso, perché non sapendo cosa cercare, probabilmente dovremo scorre l'intero file. A titolo d'esempio, un possibile errore potrebbe essere

(1048) Column 'id_module' cannot be null

Per risolvere gli eventuali problemi SQL dobbiamo identificare la risorsa che genera l'errore (ad esempio il modulo pagesnotfound) e provare a rimuovere, installare o re-installare la risorsa (in questo caso il modulo Pagina non trovata). Se gli errori non sono bloccanti, possiamo ugualmente concludere l'installazione: ciò significa cancellare la cartella install e i file readme*.txt e CHANGELOG (nella cartella doc).

3° step: validazione

Per validare l'aggiornamento di PrestaShop eseguiamo alcune operazioni nel backend:

  • Dal menù principale clicchiamo sul UtilitàTraduzioni. Nella sezione Importa una lingua manualmente importiamo la traduzioni esportate all'inizio della procedura
  • Verifichiamo nel menù Preferenze - SEO & URLs che i valori PS directory e Nome di dominio del negozio siano corretti
  • Rigeneriamo il file .htaccess dal menù UtilitàGeneratori, cliccando su Crea un file “.htaccess”

La validazione dell'aggiornamento dovrebbe includere alcuni test funzionali, che potrebbero essere: navigare le sezioni del sito; creare un account utente; fare un ordine; fare un prova di pagamento; verificare (nel backend) che l'ordine sia ricevuto; mandare una mail dalla pagina dei contatti; controllare la fatturazione della vendita; controllare i moduli. Se abbiamo poco tempo, e l'aggiornamento sembra andare a buon fine in locale, probabilmente conviene effettuare i test live, ed intervenire in modo specifico solo dove serve.

Per ulteriori informazioni possiamo consultare la guida completa all'aggiornamento.