Da PrestaShop 1.6 a PrestaShop 8: temi, moduli e migrazione dei dati

Perché PrestaShop 1.6 non arriva a PHP 8, con quali versioni di PHP funzionano PrestaShop 8 e 9, aggiornamento sul posto o nuova installazione, cosa succede a tema e moduli e come migrare clienti, ordini e catalogo senza perdere dati e posizionamento.

Copertina con il logo php∞, la categoria Migrazione CMS, il titolo Da PrestaShop 1.6 a PrestaShop 8 e il numero 31

Molti negozi online italiani sono ancora su PrestaShop 1.6. Sono stati costruiti bene, con un tema su misura e decine di moduli, e per anni hanno fatto il loro lavoro. Oggi però girano su versioni di PHP fuori supporto da anni, i moduli di pagamento chiedono aggiornamenti che non si possono installare, e ogni intervento del fornitore dell’hosting rischia di fermare il negozio. A quel punto si pone la domanda: aggiornare PrestaShop o rifare il negozio?

In questo articolo vediamo perché PrestaShop 1.6 non può arrivare a PHP 8, quali versioni di destinazione esistono e con quale PHP funzionano, le due strade per il passaggio, cosa succede a tema e moduli, come si migrano i dati senza perdere clienti, ordini e posizionamento sui motori di ricerca, e come organizzare test e messa in produzione.

Perché PrestaShop 1.6 non può restare

Secondo la tabella di compatibilità della documentazione ufficiale, PrestaShop 1.6.1 funziona con PHP dalla 5.2 alla 7.1, con la 7.1 come versione consigliata. PHP 7.1 è fuori supporto da dicembre 2019. Il ramo 1.6 non è più mantenuto dal progetto, e il repository del modulo di aggiornamento ufficiale lo dice esplicitamente.

Il risultato è un negozio bloccato su due fronti. Non può passare a un PHP supportato, perché il core non lo regge, e non può ricevere correzioni di sicurezza per il proprio codice. Nel frattempo i servizi esterni vanno avanti: gateway di pagamento, corrieri e marketplace aggiornano le loro API e i moduli per collegarle esistono solo per le versioni recenti di PrestaShop.

Le versioni di destinazione

Dalla 1.6 si può puntare a PrestaShop 8 o a PrestaShop 9. La scelta dipende soprattutto dalla versione di PHP che si vuole raggiungere, perché ogni ramo supporta un intervallo preciso.

PrestaShopPHP supportatoPHP consigliato
1.6.1.xdalla 5.2 alla 7.17.1
1.7.8dalla 7.1 alla 7.47.4
8.0 – 8.2dalla 7.2 alla 8.18.1
9.0dalla 8.1 alla 8.4versioni recenti
Fonti: devdocs.prestashop-project.org (requisiti di sistema per 1.7, 8 e 9) e annuncio di PrestaShop 9.0 su build.prestashop-project.org.
Matrice di compatibilità tra versioni di PrestaShop e versioni di PHP dalla 5.6 alla 8.4. PrestaShop 1.6.1 copre PHP 5.6, 7.0 e 7.1, con la nota che il supporto parte dalla 5.2, consigliata la 7.1. PrestaShop 1.7.8 copre dalla 7.1 alla 7.4, consigliata la 7.4. PrestaShop 8.0, 8.1 e 8.2 coprono dalla 7.2 alla 8.1, consigliata la 8.1. PrestaShop 9.0 copre dalla 8.1 alla 8.4. Sopra la matrice una fascia rossa segna le versioni di PHP fuori supporto a ottobre 2026, dalla 5.6 alla 8.1; solo PrestaShop 9 arriva a versioni di PHP ancora supportate
PrestaShop 8 si ferma a PHP 8.1, già fuori supporto; PrestaShop 9 arriva alla 8.4.

C’è un dettaglio da non trascurare. PrestaShop 8, uscito alla fine del 2022, supporta PHP fino alla 8.1, che ha smesso di ricevere correzioni di sicurezza alla fine del 2025. Un negozio portato su PrestaShop 8 è quindi molto più moderno di uno su 1.6, ma gira ancora su un PHP fuori supporto. PrestaShop 9, la cui prima versione stabile è uscita a giugno 2025, richiede almeno PHP 8.1 e arriva alla 8.4. Se i moduli indispensabili esistono già per la 9, conviene puntare lì; se mancano, PrestaShop 8 è una tappa valida, da accompagnare con il backport delle patch di sicurezza sul PHP 8.1 e con un piano per il passo successivo.

Due strade: aggiornamento o nuova installazione

La prima strada è l’aggiornamento sul posto con il modulo ufficiale di aggiornamento, noto come 1-Click Upgrade e oggi come Update Assistant. Il repository del modulo indica che da 1.6 a 8 o versioni successive si passa in due tappe: prima da 1.6 a 1.7 con la serie 4.14 del modulo, poi alla versione di destinazione con l’ultima versione del modulo. L’aggiornamento conserva database, URL e identificativi, ma porta con sé anche tutto ciò che si è accumulato negli anni: tabelle di moduli rimossi, override, configurazioni dimenticate.

La seconda strada è una nuova installazione pulita della versione di destinazione, nella quale si trasferiscono i dati: catalogo, clienti, ordini, pagine, immagini. La documentazione sulla migrazione descrive il procedimento come un processo di estrazione, trasformazione e caricamento: si esportano i dati dal vecchio negozio, si adattano alla struttura del nuovo database e si importano, senza modificare direttamente il database di partenza.

Confronto tra le due strade per passare da PrestaShop 1.6 a PrestaShop 8 o 9. In alto l’aggiornamento sul posto con il modulo ufficiale: da 1.6 a 1.7 con la serie 4.14 del modulo, poi da 1.7 a 8 o 9 con l’ultima versione; conserva database, URL e identificativi ma anche i residui accumulati. In basso la nuova installazione con migrazione dei dati: installazione pulita senza dati dimostrativi, esportazione dei dati, adattamento alla nuova struttura, importazione, copia di immagini e allegati, rigenerazione delle miniature e dell’indice di ricerca. In entrambe le strade il tema della 1.6 non si porta e i moduli vanno verificati uno per uno
In entrambi i casi il tema si rifà e i moduli si verificano uno per uno.

Nella nostra esperienza l’aggiornamento sul posto funziona bene sui negozi poco personalizzati, con pochi moduli e senza override. Per un negozio con anni di modifiche, la nuova installazione richiede più lavoro sui dati ma consegna un sistema pulito, più facile da mantenere e da portare in futuro alla versione successiva.

Prima di tutto: l’inventario del negozio

Qualunque strada si scelga, si parte da una copia completa e da un inventario. Su una copia del negozio bastano pochi comandi; il prefisso ps_ delle tabelle è quello predefinito e va adattato se diverso.

# Versione di PrestaShop (nella 1.6 è definita in config/settings.inc.php)
grep _PS_VERSION_ config/settings.inc.php

# Copia completa di database e file prima di qualunque passo
mysqldump --single-transaction -u utente -p negozio > negozio-1.6.sql
tar czf negozio-1.6-file.tar.gz --exclude=./cache --exclude=./img/tmp .

# Moduli installati, con versione e stato
mysql -u utente -p negozio -e "SELECT name, version, active FROM ps_module ORDER BY name"

# Override di classi e controller: modifiche al core da rivedere una per una
find override -name '*.php' ! -name index.php

Per ogni modulo si annota a cosa serve, chi lo ha prodotto e se esiste una versione per PrestaShop 8 o 9. Gli override nella cartella override sono modifiche dirette al comportamento del core: vanno capiti, perché le classi che modificano sono spesso cambiate nelle versioni successive.

Il tema si rifà

Con la versione 1.7 PrestaShop ha introdotto un nuovo sistema di temi, con una struttura dei template diversa e il tema Classic come base. I temi scritti per la 1.6 non sono compatibili e non si possono portare: va scelto un tema per la versione di destinazione, oppure va sviluppato un tema su misura, di solito come tema figlio di uno esistente, che PrestaShop supporta dalla 1.7.

È anche l’occasione per rivedere le personalizzazioni. Molte modifiche fatte nel tema della 1.6, come campi aggiuntivi nella pagina prodotto o blocchi in home page, oggi si ottengono con moduli standard o con la configurazione del tema. Ricostruire solo ciò che serve davvero riduce i tempi e il codice da mantenere.

I moduli: aggiornare, sostituire, riscrivere

I moduli sono la parte che richiede più valutazioni. I casi sono gli stessi che descriviamo per i CMS in generale nell’articolo su come migrare un CMS a PHP 8, con alcune particolarità di PrestaShop:

  • moduli di pagamento: dalla 1.7 usano un’interfaccia diversa per presentare i metodi di pagamento al cliente, quindi i moduli della 1.6 non funzionano. Si installa la versione attuale del modulo ufficiale del servizio di pagamento;
  • moduli acquistati: molti produttori offrono una versione per PrestaShop 8 o 9, a volte come prodotto separato. Va verificato prima di decidere la versione di destinazione;
  • moduli su misura: vanno adattati. PrestaShop 8 richiede almeno PHP 7.2.5, usa Symfony 4.4 e ha rimosso metodi molto usati nei moduli vecchi, come Tools::jsonEncode() e Tools::jsonDecode(), elencati nella pagina delle modifiche della 8.0;
  • override: dove possibile si sostituiscono con gli hook, che sopravvivono meglio agli aggiornamenti.

La migrazione dei dati

Con la nuova installazione, la migrazione dei dati segue i passi indicati dalla documentazione ufficiale, a cui aggiungiamo i controlli che contano per un negozio in attività:

  1. installare la nuova versione senza dati dimostrativi e con le stesse lingue del vecchio negozio, verificando che gli identificativi delle lingue coincidano;
  2. esportare i dati dal vecchio database e confrontare la struttura delle tabelle, adattando colonne nuove, rimosse o modificate;
  3. importare catalogo, clienti, indirizzi, ordini, regole di prezzo e pagine CMS, mantenendo gli stessi identificativi dove possibile;
  4. copiare le immagini dei prodotti e i file in img/p, download e upload, poi rigenerare le miniature e l’indice di ricerca;
  5. riportare nella nuova configurazione la chiave usata per le password dei clienti, così che possano accedere con le credenziali di sempre;
  6. confrontare gli indirizzi delle pagine di prodotti e categorie e predisporre i reindirizzamenti permanenti per quelli cambiati.

Per migrazioni ripetute, utili per provare il procedimento più volte prima del passaggio definitivo, la documentazione indica anche il Webservice di PrestaShop, che permette di leggere le risorse da un negozio e scriverle in un altro. Esistono inoltre moduli e servizi commerciali di migrazione: vanno valutati sui dati reali, controllando in particolare ordini, combinazioni di prodotto e regole di prezzo.

Test e messa in produzione

Il nuovo negozio si prova come lo userebbe un cliente e come lo usa chi lavora gli ordini. I punti da controllare sono il catalogo con le combinazioni e i prezzi, la registrazione e l’accesso con un cliente esistente, il carrello con regole di sconto e spedizioni, ogni metodo di pagamento, le email transazionali, la numerazione di ordini e fatture, le integrazioni con gestionale e corrieri, e gli indirizzi delle pagine più visitate.

Il passaggio definitivo si fa con un’ultima migrazione dei dati recenti, ordini e clienti degli ultimi giorni, durante una breve finestra con il vecchio negozio in manutenzione, seguita dal cambio del puntamento. Il vecchio negozio resta disponibile in sola lettura per qualche settimana, come riferimento. Se vuoi valutare il tuo negozio, trovi come lavoriamo nella sezione sulla migrazione applicativa.

In sintesi

PrestaShop 1.6 funziona solo fino a PHP 7.1, fuori supporto da dicembre 2019, e il ramo non è più mantenuto. Le destinazioni sono PrestaShop 8, che arriva a PHP 8.1, già fuori supporto dalla fine del 2025, e PrestaShop 9, che copre PHP dalla 8.1 alla 8.4. Le strade sono due: l’aggiornamento sul posto con il modulo ufficiale, in due tappe passando dalla 1.7, adatto ai negozi poco personalizzati, oppure una nuova installazione con la migrazione dei dati, che consegna un sistema pulito. In entrambi i casi il tema della 1.6 va rifatto, i moduli si verificano uno per uno, con attenzione a pagamenti, moduli su misura e override, e i dati si migrano conservando identificativi, password dei clienti e indirizzi delle pagine. Test completi e una finestra di passaggio breve chiudono il lavoro.

IL PROSSIMO PASSO

Mettiamo
in sicurezza.

Indicaci versione di PHP, sistema operativo e cosa ti preoccupa. Ti risponderemo con una valutazione dell’esposizione e una proposta di intervento.

Richiedi supporto

Ti porta al modulo di richiesta, in quattro passi.

PHP LEGACY · MANAGED SERVER S.R.L.info@phplegacy.it +39 02 5656 9681

Lunedì – venerdì · 09:30 – 19:30

Urgenza in corso? Reperibilità H24
+39 340 985 4556 ↗