PrestaShop 9 requires PHP 8.1 or higher and is built on Symfony 6. This makes a direct upgrade from version 1.7 impossible — you must pass through the 8.x branch. This guide walks you through the full process step by step.
Official Migration Path
The autoupgrade module (ps_autoupgrade) only supports migrations between adjacent major branches. Each stage is performed separately using the same module.
PHP Requirements at Each Stage
| PrestaShop Version | Supported PHP | Recommended PHP |
|---|---|---|
| 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 |
Switching to PHP 8.1+ is a hard requirement for PS 9 — it cannot be skipped.
Migration Process — Step by Step
Full Backup
Create a complete backup of the database (mysqldump or phpMyAdmin export) and store files, especially /img, /upload, /modules, /themes, and /app/config/parameters.php. Store the backup off the store's server. Never start without a verified backup.
Staging Environment
Run the full process on a copy of your store in a separate staging environment first. This lets you catch incompatible modules and theme issues before touching production.
Update to the Latest 1.7.x Release
Before moving to version 8, make sure the store runs the latest 1.7 build — currently PrestaShop 1.7.8.11. Download the autoupgrade module from GitHub (github.com/PrestaShop/autoupgrade) and run the upgrade from the admin panel.
Upgrade 1.7.x → 8.0.x
In the autoupgrade module, select the Major release channel, set the target version to 8.0.x, click "Check your configuration", then "Upgrade now". The process takes 5–15 minutes. Afterward, check logs and test the front end.
Upgrade 8.0.x → 8.1.x
Identical process — target version 8.1.x this time. It's a good idea to update PHP to 8.1 or 8.2 before this step, as PS 8.1 works best with those versions.
Switch PHP to 8.1+
PS 9 strictly requires PHP 8.1+. On a VPS, update the Nginx/Apache config: fastcgi_pass unix:/run/php/php8.2-fpm.sock; and reload FPM: systemctl restart php8.2-fpm. On shared hosting, use the control panel (cPanel, Plesk, DirectAdmin).
Final Upgrade 8.1.x → 9.x
After switching to PHP 8.1+, select target version 9.x (currently 9.1.x) in autoupgrade and launch the upgrade. This is the longest step — PS 9 introduces changes to the directory structure and database schema.
What Changes After Moving to PrestaShop 9
| Area | PS 1.7 | PS 9 |
|---|---|---|
| Framework | Symfony 4 | Symfony 6 |
| PHP | 7.1 – 7.4 | 8.1 – 8.3 (required) |
| Default theme | Classic | Classic + Hummingbird |
| API | No REST API | New REST API (OAuth 2.0) |
| Legacy code | Present | Removed |
Module and Theme Compatibility
Most Common Post-Migration Issues
- White screen or 500 error — usually an incompatible module or stale cache; clear it:
php bin/console cache:clear --env=prod - Missing product images — check permissions on the
/imgdirectory - Admin panel errors — check logs in
/var/log/prestashop/ - Broken payments — payment modules require individual updates; contact your payment provider
Summary
Migrating from PrestaShop 1.7 to 9 is achievable and unlocks a modern tech stack (PHP 8.3, Symfony 6). The key is following the small sequential steps (1.7 → 8.0 → 8.1 → 9.x), testing in a staging environment, with a full backup in place.