Come aggiornare PrestaShop 9: guida tecnica passo-passo
Aggiornare PrestaShop a PrestaShop 9 non è drammatico, ma è tecnico. Richiede attenzione su tre fronti: il core, i moduli installati e il tema grafico. Questa guida descrive la procedura artigianale che usiamo internamente da quando PrestaShop ha rilasciato la 1.7.4: l’abbiamo affinata su centinaia di upgrade reali e funziona a partire da qualsiasi versione precedente.
Per una panoramica generale delle novità di PrestaShop 9 e della tabella di compatibilità PHP, leggi prima PrestaShop 9: guida completa alle novità.
L’idea di fondo: tratta PrestaShop come un Lego
Durante l’upgrade, alcuni componenti possono bloccare il processo. Moduli, override e tema personalizzato sono i sospetti principali. La strategia è semplice: prima dell’upgrade smonti tutto, poi lo rimonti pezzo per pezzo, controllando ad ogni passo cosa funziona e cosa no.
È un metodo artigianale. Più lento di un click, ma molto più affidabile.
Procedura step-by-step
1. Crea un clone del sito
Non toccare mai il sito di produzione fino a quando non hai verificato tutto sul clone. Replica file e database in un ambiente di staging.
2. Disinstalla i moduli non necessari
Si pulisce così il database e si rimuovono override potenzialmente problematici. Riduce la superficie di errore durante l’upgrade.
3. Installa il modulo autoupgrade
Scaricalo dall’Addons di PrestaShop e installalo sul clone. È lo strumento ufficiale per gestire l’upgrade.
4. Isola moduli, override e tema
Questo è il passo chiave. Devi fare in modo che il core si aggiorni senza interferenze:
- Rinomina la cartella
modules/inmodules_/. - Rinomina la cartella
override/inoverride_/. - Crea le cartelle
modules/eoverride/vuote. Inoverride/ricrea le sottocartelle:classes/,controllers/,modules/. - Sposta nella nuova
modules/il moduloautoupgradee almeno un altro modulo PrestaShop standard (es.bankwire). Il tool di upgrade cerca moduli durante il processo: ne deve trovare almeno uno. - Nella cartella
themes/, rinomina la cartella del tuo tema aggiungendo il suffisso_(es.mioTema_). - Nel database, nella tabella
shop, cambia il nome del tema da quello originale aclassic.
5. Allinea il database: engine + collation
Due aspetti critici da sistemare prima di avviare l’upgrade.
Engine: da MyISAM a InnoDB. Le versioni vecchie di PrestaShop usano ancora MyISAM. L’upgrade non lo cambia automaticamente, ma MyISAM può causare dump ed errori durante il processo. Converti tutte le tabelle a InnoDB.
Collation: utf8mb4_general_ci. PrestaShop 9 ha chiavi che possono causare problemi se la collation è errata. È stato un errore bloccante in diversi upgrade reali. Imposta tutte le tabelle a utf8mb4_general_ci prima di procedere.
6. Primo upgrade: porta a PrestaShop 8.2 con PHP 7.4
Imposta sul server PHP 7.4 e lancia l’upgrade da linea di comando:
php modules/autoupgrade/bin/console update:start \
--channel=online \
--disable-non-native-modules=1 \
--chain \
admin123
Senza moduli, tema e override, l’upgrade termina senza problemi. Quando finisce, entra nel back office, fai un giro veloce per verificare che risponda, e chiudi. Non è necessario controllare il front-end: a questo punto è ancora il tema classic di default.
7. Secondo upgrade: porta a PrestaShop 9 con PHP 8.1
Imposta PHP 8.1 e ripeti il comando di upgrade. Stesso meccanismo: nessun modulo, nessun tema custom, nessun override → l’upgrade va liscio. Il core è ora su PrestaShop 9.
8. Ripristina moduli, tema e override
Adesso si rimonta tutto, un pezzo alla volta, partendo dai moduli:
- Sposta i moduli uno alla volta dalla cartella
modules_/(vecchia) alla nuovamodules/(con la versione aggiornata se disponibile). Dopo ogni modulo, ricarica il back office. Se appaiono errori, quel modulo è il problema: documentalo, eventualmente sostituiscilo con la versione PrestaShop 9 compatibile. - Sposta i file del tema aggiornato in
themes/. Se hai un tema child, versionalo con git e poi confronta le differenze tra il tuo tema custom e la nuova versione standard prima di sovrascrivere. - Ripristina gli override: reinseriscili e verifica che non ci siano conflitti con il nuovo core.
- Nella tabella
shopdel database, riporta il nome del tema dal valoreclassical nome del tuo tema attivo.
9. Cancella la cache e verifica il frontend
Pulisci la cache PrestaShop (var/cache/) e controlla il sito dal lato cliente. A questo punto correggi gli ultimi errori specifici del tuo caso: messaggi nel BO, hook non più validi, classi rinominate, route Symfony da aggiornare.
Perché questo metodo funziona
L’upgrade ufficiale di PrestaShop assume che moduli, tema e override siano compatibili con la nuova versione. Quando non lo sono — e succede quasi sempre, soprattutto se vieni da una vecchia versione — l’upgrade si blocca a metà, lasciandoti con un sito instabile da debuggare a posteriori.
Il metodo “Lego” inverte il problema: prima si verifica che il core si aggiorni pulito, poi si reintroducono i componenti uno alla volta. Quando qualcosa rompe, sai esattamente quale modulo o quale override ne è responsabile.
Attenzione: la struttura degli hook è cambiata in PrestaShop 9. Molti moduli non aggiornati risultano incompatibili dopo l’upgrade. Per ognuno valuta: aggiornare alla nuova versione del modulo, sostituirlo con un equivalente, oppure svilupparne una versione custom.
Aggiornare PrestaShop con il modulo standard “1-click Upgrade”
Esiste anche la procedura standard di PrestaShop, basata sul modulo 1-click Upgrade (autoupgrade). Funziona bene su shop semplici e già allineati. Per la configurazione completa del modulo, le opzioni di upgrade e i comandi CLI dettagliati, vai all’articolo PrestaShop 9: guida completa.
Per shop con moduli custom, override e temi modificati, il modulo standard porta facilmente a downtime imprevisti. La procedura “Lego” descritta sopra è più sicura.
Preferisci affidarti a noi?
Se il tuo shop è in produzione, il fai-da-te ha dei limiti concreti: serve un ambiente di staging affidabile, esperienza pregressa sui moduli più diffusi, e disponibilità a passare ore a debuggare hook e override.
Eseguiamo upgrade a PrestaShop 9 a partire da qualsiasi versione (1.4, 1.5, 1.6, 1.7, 8.x) con ambiente clone, senza perdita di dati e con downtime quasi nullo. Abbiamo internamente un Agente AI che supporta la verifica modulo per modulo.
→ Scopri il nostro servizio di upgrade professionale a PrestaShop 9
→ Cerchi un partner stabile per gestire il tuo PrestaShop nel tempo? Vedi i nostri servizi di consulenza e sviluppo PrestaShop.