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/ in modules_/.
  • Rinomina la cartella override/ in override_/.
  • Crea le cartelle modules/ e override/ vuote. In override/ ricrea le sottocartelle: classes/, controllers/, modules/.
  • Sposta nella nuova modules/ il modulo autoupgrade e 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 a classic.

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 nuova modules/ (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 shop del database, riporta il nome del tema dal valore classic al 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.