# PrestaShop 9: Guida Completa — Novità e Come Aggiornare

> Pubblicato: 2025-06-10 | Aggiornato: 2026-06-17

Guida completa a PrestaShop 9: novità di versione e procedura step-by-step per aggiornare da qualsiasi versione precedente. Partner ufficiale PrestaShop.

Questa guida consolida tutto quello che c'è da sapere su PrestaShop 9: le **novità** della versione uscita il 10 giugno 2025, le differenze rispetto a **PrestaShop 8** 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 — come ad esempio l'[integrazione tra Brevo e PrestaShop](/articoli/integrazione-brevo-prestashop) — 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. Per chi sta ottimizzando la SEO del proprio shop, può essere utile rivedere anche [il file robots.txt di PrestaShop](/articoli/come-utilizzare-il-file-robots-txt-per-la-seo-su-prestashop) e [l'implementazione dei microdata](/articoli/microdata-in-prestashop-cosa-servono-e-come-implementare). 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)

1. **Backup completo** (file + database) — se qualcosa va storto deve essere possibile ripristinare tutto.
2. **Imposta il tema Classic** come predefinito: disinstalla i moduli del tema corrente, elimina i file del tema vecchio.
3. **Svuota la cartella `override/`** — gli override personalizzati possono bloccare l'upgrade.
4. **Converti le tabelle da MyISAM a InnoDB** (vedi sezione database qui sotto).
5. **Imposta la collation a `utf8mb4_general_ci`** su 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:

1. **Server Performance** — Alto (VPS dedicato), Medio (hosting con limiti), Basso (hosting condiviso).
2. **Disable non native modules** — Da attivare sempre: i moduli non nativi possono bloccare l'upgrade.
3. **Disable overrides** — Disabilita gli override installati per evitare conflitti.
4. **Upgrade the default theme** — Aggiorna il tema Classic standard.
5. **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).
6. **Regenerate RTL stylesheet** — Rigenera i CSS per lingue RTL. Non necessario per lingue latine.
7. **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. Trovi una panoramica più ampia dei [comandi CLI di autoupgrade per upgrade e backup](/articoli/modulo-autoupgrade-prestashop-comandi-client-upgrade-backup) in un articolo dedicato, utile soprattutto se gestisci shop di grandi dimensioni o vuoi automatizzare le release.

**Comandi di upgrade:**

```text
# 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:**

```text
# 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

1. **Crea un clone del sito** su ambiente di staging. Non toccare mai il sito di produzione fino a quando non hai verificato tutto.
2. **Disinstalla i moduli non necessari** — pulisce il database e gli override.
3. **Installa il modulo autoupgrade** sull'installazione del clone.
4. **Rinomina `modules/` e `override/`** aggiungendo un suffisso (`modules_` e `override_`). Questo è il passo chiave: il core si aggiorna senza interferenze.
5. **Crea le cartelle `modules/` e `override/` vuote**. In `override/` devono esistere le sottocartelle: `classes/`, `controllers/`, `modules/`.
6. **Sposta autoupgrade + 1 modulo PS nella nuova `modules/`**. Il tool di upgrade cerca moduli: ne serve almeno uno. Bankwire funziona benissimo.
7. **Rinomina il tema corrente** in `themes/nomeTema_`. Isola il tema grafico dall'upgrade.
8. **Nel database, cambia il tema attivo a `classic`** — modifica la tabella `shop` impostando il nome tema a `classic`.
9. **Aggiorna collation ed engine del database** (InnoDB + `utf8mb4_general_ci`) — passo obbligatorio, abbiamo visto upgrade bloccarsi qui.
10. **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.
11. **Secondo upgrade: porta a PS 9 con PHP 8.1** — stessa logica. Il core è ora su PS9.
12. **Ripristina i moduli uno alla volta** — sposta ogni modulo aggiornato in `modules/` e ricarica il BO. Se appaiono errori, quel modulo è il problema.
13. **Ripristina il tema aggiornato** — sposta i file in `themes/`. Se hai un tema child, versionalo con git e confronta le differenze prima di sovrascrivere.
14. **Ripristina gli override** — reinseriscili e verifica che non ci siano conflitti.
15. **Ripristina il nome del tema nel database** — riporta la tabella `shop` al nome del tuo tema.
16. **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'[aggiornamento PrestaShop](/prestashop/aggiornare-a-prestashop-9) 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](/prestashop/aggiornare-a-prestashop-9)

→ Sei un'azienda strutturata e cerchi un partner stabile? Scopri come operiamo come [agenzia PrestaShop certificata](/prestashop/bwlab-agenzia-certificata-prestashop) Expert Core + Storefront.