PrestaShop 9: Guida Completa — Novità e Come Aggiornare
Questa guida consolida tutto quello che c’è da sapere su PrestaShop 9: le novità tecniche della versione uscita il 10 giugno 2025 e la procedura completa per aggiornare il tuo shop, a partire da qualsiasi versione precedente.
Cosa c’è di nuovo in PrestaShop 9
PrestaShop 9 è la versione più significativa degli ultimi anni. Dopo più di due anni di lavoro con la community, porta un aggiornamento profondo dell’infrastruttura tecnica e una serie di novità che cambiano il modo di lavorare sulla piattaforma.
Symfony 6.4 LTS e PHP 8.1–8.4
Il core adottava ancora Symfony 4.3 con PHP 7.4 come versione raccomandata. Con PrestaShop 9 arriva Symfony 6.4 LTS, con supporto garantito fino a novembre 2027, e compatibilità estesa a PHP 8.1, 8.2, 8.3 e 8.4. Non è solo un upgrade di versione: significa una base più sicura, più performante e più facile da mantenere.
Nuova Admin API (REST/JSON via API Platform)
I Web Service XML di PrestaShop erano uno dei punti più deboli della piattaforma: spesso buggy, difficili da debuggare, non conformi agli standard moderni. Con PS9 arriva una nuova API basata su API Platform, che espone endpoint REST/JSON moderni. Le integrazioni con CRM, ERP, sistemi di marketing diventano più semplici e affidabili. La nuova API è ancora in costruzione: nuovi endpoint vengono aggiunti progressivamente, ed è possibile contribuire al suo sviluppo tramite la community.
Tema Hummingbird
Insieme al classico tema Classic, PrestaShop 9 introduce Hummingbird come secondo tema ufficiale sceglibile durante l’installazione. È costruito su Bootstrap 5, usa TypeScript e segue la convenzione BEM per il CSS. La struttura SCSS è completamente modulare, supporta la dark mode e ha un numero ridotto di dipendenze esterne. Rimane comunque compatibile con i moduli progettati per Classic.
Immagini WebP/AVIF, SEO e sicurezza
PrestaShop 9 aggiunge il supporto nativo ai formati immagine WebP e AVIF, URL più puliti con rimozione dei prefissi lingua, redirect SEO-friendly per le categorie inattive. Sul fronte sicurezza: prefissi casuali per le tabelle del database, debug via cookie e tracciamento avanzato dei moduli installati.
Back office e pagina prodotto
La nuova pagina prodotto del back office — introdotta in PS 8.1 come funzionalità opzionale — diventa attiva di default. Tutti i controller del BO sono in migrazione verso Symfony + Twig. La pagina corrieri è già completamente migrata. L’UI è più moderna e coerente.
Attenzione: la struttura degli hook è cambiata. Molti moduli non aggiornati potrebbero risultare incompatibili dopo l’upgrade.
Update Assistant 7
Il modulo di aggiornamento riceve una nuova GUI e una CLI migliorata, con log avanzati e controlli ottimizzati. È stato testato anche su negozi di grandi dimensioni.
Come aggiornare a PrestaShop 9
Il processo di upgrade PrestaShop non è drammatico, ma è tecnico e richiede attenzione. Ecco i passi fondamentali con il modulo standard 1-click Upgrade (autoupgrade).
Nota sulle versioni PHP: ogni versione di PrestaShop ha una versione PHP minima e massima supportata. Se la tua installazione è vecchia, non puoi aggiornare direttamente a PS9: devi procedere per tappe intermedie, cambiando anche la versione PHP a ogni salto.
Tabella di compatibilità PHP per l’upgrade a PS9
| Da PrestaShop | PHP richiesto | Passaggio successivo |
|---|---|---|
| 1.6.x | PHP 5.6 | → PHP 7.1 → PS 1.7.7 |
| 1.7.7 | PHP 7.1 | → PHP 7.3 → PS 1.7.8 |
| 1.7.8 | PHP 7.3 | → PHP 7.4 → PS 8.2 |
| 8.x | PHP 7.4 | → PHP 8.1 → PS 9 |
| PrestaShop 9 | PHP 8.1–8.4 | Destinazione finale ✓ |
Attività preliminari (prima di avviare l’upgrade)
- Backup completo (file + database) — se qualcosa va storto deve essere possibile ripristinare tutto.
- Imposta il tema Classic come predefinito: disinstalla i moduli del tema corrente, elimina i file del tema vecchio.
- Svuota la cartella
override/— gli override personalizzati possono bloccare l’upgrade. - Converti le tabelle da MyISAM a InnoDB (vedi sezione database qui sotto).
- Imposta la collation a
utf8mb4_general_cisu tutte le tabelle.
Dopo questi passi, installa il modulo autoupgrade, configura la versione target e avvia l’aggiornamento.
Il modulo autoupgrade (ex 1-click Upgrade)
Il modulo PrestaShop autoupgrade (ex 1-click upgrade) è lo strumento standard per aggiornare PrestaShop, scaricabile gratuitamente dall’Addons di PrestaShop. Con la versione 7.0 il modulo è stato completamente rivoluzionato: nuova interfaccia, supporto CLI e processi separati per upgrade, backup e ripristino.
Configurazione delle opzioni di upgrade
Prima di avviare l’aggiornamento, il modulo presenta una checklist pre-upgrade che verifica: versione PHP, permessi directory, safe mode, estensione zip, modalità manutenzione e cache.
Le opzioni di upgrade controllano come il processo si comporta:
- Server Performance — Alto (VPS dedicato), Medio (hosting con limiti), Basso (hosting condiviso).
- Disable non native modules — Da attivare sempre: i moduli non nativi possono bloccare l’upgrade.
- Disable overrides — Disabilita gli override installati per evitare conflitti.
- Upgrade the default theme — Aggiorna il tema Classic standard.
- Switch to the default theme — Attenzione: se attivato, sovrascrive il tema custom con Classic. Da attivare solo per salti di major version (es. 1.6 → 8.x).
- Regenerate RTL stylesheet — Rigenera i CSS per lingue RTL. Non necessario per lingue latine.
- Keep the customized email templates — Se attivato, le email personalizzate vengono sovrascritte.
Opzioni di backup del modulo
Il backup integrato è utile per shop piccoli, ma per shop con GB di immagini e database rallenta il processo anche di 2-3 ore. In Bwlab effettuiamo il backup con strumenti a linea di comando, molto più veloci.
Avvio dell’upgrade
Il Channel determina il tipo di aggiornamento: Major release (es. 1.7 → 9), Minor release (es. 8.2.0 → 8.2.1), oppure Local archive / Local directory per usare un file zip personalizzato — opzione utile quando si deve replicare un upgrade testato in staging sulla produzione senza rischiare che nel frattempo sia uscita una versione diversa.
Aggiornamento da linea di comando (CLI)
Il modulo autoupgrade dispone di comandi CLI per gestire upgrade e backup senza passare dal browser.
Comandi di upgrade:
# Verifica se esiste una nuova versione
php modules/autoupgrade/bin/console update:check-new-version admin123
# Controlla i prerequisiti
php modules/autoupgrade/bin/console update:check-requirements admin123
# Avvia l'upgrade (canale online, disabilita moduli non nativi)
php modules/autoupgrade/bin/console update:start \
--channel=online \
--disable-non-native-modules=1 \
--chain \
admin123
Comandi di backup:
# Crea un backup (file + database + immagini)
php modules/autoupgrade/bin/console backup:create --include-images=true admin123
# Lista i backup disponibili
php modules/autoupgrade/bin/console backup:list admin123
# Ripristina da un backup
php modules/autoupgrade/bin/console backup:restore --backup=backup_20231001 admin123
L’opzione --chain nel comando update:start attiva il concatenamento automatico: il processo esegue tutti i task in sequenza senza intervento manuale.
La procedura tecnica che utilizziamo: il metodo “Lego”
La nostra procedura funziona a partire da qualsiasi versione di PrestaShop. L’idea di fondo è semplice: tratta PrestaShop come un Lego. Prima di aggiornare il core, smonta le parti che possono causare problemi (moduli, tema, override). Poi rimontale una alla volta, verificando di volta in volta.
Questa procedura è nata quando PrestaShop ha rilasciato la versione 1.7.4 e l’abbiamo affinata su centinaia di upgrade.
Procedura step-by-step
- Crea un clone del sito su ambiente di staging. Non toccare mai il sito di produzione fino a quando non hai verificato tutto.
- Disinstalla i moduli non necessari — pulisce il database e gli override.
- Installa il modulo autoupgrade sull’installazione del clone.
- Rinomina
modules/eoverride/aggiungendo un suffisso (modules_eoverride_). Questo è il passo chiave: il core si aggiorna senza interferenze. - Crea le cartelle
modules/eoverride/vuote. Inoverride/devono esistere le sottocartelle:classes/,controllers/,modules/. - Sposta autoupgrade + 1 modulo PS nella nuova
modules/. Il tool di upgrade cerca moduli: ne serve almeno uno. Bankwire funziona benissimo. - Rinomina il tema corrente in
themes/nomeTema_. Isola il tema grafico dall’upgrade. - Nel database, cambia il tema attivo a
classic— modifica la tabellashopimpostando il nome tema aclassic. - Aggiorna collation ed engine del database (InnoDB +
utf8mb4_general_ci) — passo obbligatorio, abbiamo visto upgrade bloccarsi qui. - Primo upgrade: porta a PS 8.2 con PHP 7.4 — lancia da CLI. Senza moduli, tema e override, termina senza problemi. Poi entra nel BO, fai un giro e chiudi.
- Secondo upgrade: porta a PS 9 con PHP 8.1 — stessa logica. Il core è ora su PS9.
- Ripristina i moduli uno alla volta — sposta ogni modulo aggiornato in
modules/e ricarica il BO. Se appaiono errori, quel modulo è il problema. - Ripristina il tema aggiornato — sposta i file in
themes/. Se hai un tema child, versionalo con git e confronta le differenze prima di sovrascrivere. - Ripristina gli override — reinseriscili e verifica che non ci siano conflitti.
- Ripristina il nome del tema nel database — riporta la tabella
shopal nome del tuo tema. - Cancella la cache e verifica il frontend — correggi gli ultimi errori specifici del tuo caso.
Attenzione al database
Due aspetti critici da sistemare prima di avviare qualsiasi upgrade.
Engine: da MyISAM a InnoDB
Le versioni vecchie di PrestaShop usano ancora MyISAM come engine delle tabelle. L’upgrade non lo cambia automaticamente. MyISAM può causare dump ed errori durante il processo. Prima di iniziare, converti tutte le tabelle a InnoDB.
Collation: utf8mb4_general_ci
PrestaShop 9 ha chiavi che possono causare problemi se la collation è errata. Imposta tutte le tabelle a utf8mb4_general_ci prima di procedere. È stato un errore bloccante in diversi upgrade che abbiamo gestito direttamente.
Preferisci affidarti a un partner certificato?
Se il tuo shop è in produzione e non vuoi rischiare downtime, o hai moduli custom sviluppati nel tempo, il fai-da-te ha dei limiti concreti. Noi eseguiamo l’upgrade a partire da qualsiasi versione precedente (1.4, 1.5, 1.6, 1.7, 8) con ambiente di staging, senza perdita di dati e con downtime quasi nullo. Abbiamo sviluppato internamente un agente AI che supporta il processo di verifica modulo per modulo.
→ Scopri il nostro servizio di upgrade professionale a PrestaShop 9