PrestaShop 9 nécessite PHP 8.1 ou supérieur et est basé sur Symfony 6. Cela rend impossible une mise à niveau directe depuis la version 1.7 — il faut passer par la branche 8.x. Ce guide décrit l'ensemble du processus étape par étape.
Chemin de migration officiel
Le module autoupgrade (ps_autoupgrade) ne prend en charge que les migrations entre branches majeures adjacentes. Chaque étape est réalisée séparément avec le même module.
Exigences PHP à chaque étape
| Version PrestaShop | PHP supporté | PHP recommandé |
|---|---|---|
| 1.7.8.x | PHP 7.1 – 7.4 (+ 8.0) | PHP 7.4 |
| 8.0.x | PHP 7.2.5 – 8.1 | PHP 8.0 |
| 8.1.x | PHP 7.2.5 – 8.2 | PHP 8.1 / 8.2 |
| 9.0 / 9.1 | PHP 8.1 – 8.3 | PHP 8.2 / 8.3 |
Processus de migration — étape par étape
Sauvegarde complète
Sauvegardez la base de données et les fichiers du magasin (/img, /upload, /modules, /themes, /app/config/parameters.php). Stockez la sauvegarde hors du serveur.
Environnement de staging
Effectuez l'ensemble du processus sur une copie du magasin en staging avant d'intervenir sur la production.
Mise à jour vers la dernière version 1.7.x
Assurez-vous que le magasin tourne sur PrestaShop 1.7.8.11. Installez le module autoupgrade depuis GitHub (github.com/PrestaShop/autoupgrade).
Upgrade 1.7.x → 8.0.x
Dans autoupgrade, choisissez canal Major release, version cible 8.0.x, vérifiez la configuration et lancez la mise à niveau (5–15 minutes).
Upgrade 8.0.x → 8.1.x
Même processus, version cible 8.1.x. Mettez PHP à jour vers 8.1 ou 8.2 avant cette étape.
Passage à PHP 8.1+
Modifiez la config Nginx/Apache : fastcgi_pass unix:/run/php/php8.2-fpm.sock; et rechargez FPM : systemctl restart php8.2-fpm.
Upgrade final 8.1.x → 9.x
Après le passage à PHP 8.1+, sélectionnez 9.x dans autoupgrade et lancez la mise à niveau finale.
Ce qui change avec PrestaShop 9
| Domaine | PS 1.7 | PS 9 |
|---|---|---|
| Framework | Symfony 4 | Symfony 6 |
| PHP | 7.1 – 7.4 | 8.1 – 8.3 (obligatoire) |
| Thème par défaut | Classic | Classic + Hummingbird |
| API | Pas de REST | Nouvelle API REST (OAuth 2.0) |
| Code legacy | Présent | Supprimé |
Problèmes courants après migration
- Page blanche ou erreur 500 — module incompatible ou cache obsolète :
php bin/console cache:clear --env=prod - Images produits manquantes — vérifiez les permissions du répertoire
/img - Paiements non fonctionnels — contactez votre fournisseur de paiement pour une mise à jour
Conclusion
La migration de PrestaShop 1.7 à 9 est réalisable et donne accès à un stack moderne (PHP 8.3, Symfony 6). La clé : suivre les étapes successives (1.7 → 8.0 → 8.1 → 9.x) en staging, avec une sauvegarde complète.