PrestaShop 1.6 to 8: go through 1.7 or start from scratch
There’s no direct jump between PrestaShop 1.6 and 8 with the official tool: you have to go through 1.7, at least transitionally, or start from a fresh install and migrate the data instead. Here are the two methods, what breaks along the way, and how I choose.
Why there’s no shortcut to PrestaShop 8
The official autoupgrade module backs up files and database, then runs the schema scripts needed for each major version step. No version of this tool jumps straight from 1.6 to 8: the database structure changes with every major version, with new tables and renamed columns, and the official scripts run one step at a time.
Two methods remain possible: chain the migrations, 1.6 to 1.7 then 1.7 to 8, with a full backup and theme rebuild at each step; or start from a fresh 8 install and migrate only the data (catalogue, customers, orders), often quicker when the 1.6 theme and modules need rebuilding anyway.
On PHP, PrestaShop 8 needs 7.2.5 minimum, supporting 8.0/8.1, then 8.2 from September 2024. 1.6 works at best up to PHP 7.1: the PHP jump is part of the migration, not a separate option.
What typically breaks in a 1.6 to 8 migration
- A payment module still using displayPayment (1.6) no longer appears at checkout on 8, where only paymentOptions is called.
- Modules using the old curly-brace array syntax (e.g. $array{0}) throw fatal errors, that syntax having been removed in PHP 8.
- The 1.6 theme, built on Default and Smarty alone, has no direct equivalent in 8’s hybrid Symfony/Twig architecture: it needs rebuilding, not copying.
- A module only declaring compatibility up to 1.7.8 (via config.xml and $ps_versions_compliancy) is blocked from installing on PrestaShop 8.
How I choose and run the migration
-
Auditing the current setup
Modules, versions, declared compatibility with 8, plus theme state to decide adapt or start over.
-
Choosing the method
Chained 1.6 → 1.7 → 8 if theme and modules pass, or a fresh 8 install if rebuild is unavoidable anyway.
-
Full backup before each step
Files, complete database dump, critical module configuration, backed up outside autoupgrade’s own folder first.
-
Migration or data import on a test environment
Never on production. I validate each step before the next.
-
Rebuilding the theme and replacing incompatible modules
Theme rebuilt on Classic; working equivalent for every module that doesn’t migrate, or a rewrite.
-
Checking, then going live
Switch scheduled for a low-traffic window once approved.
What I back up and how I check nothing’s missing
Before the first step: full site tree, database dump, module list with versions, payment/carrier module configuration — kept separately, since autoupgrade’s own backups can be overwritten.
After the final switch, I check orders, customers and catalogue products match, main URLs respond with the right status code, redirects work, and run a full test order to confirm checkout works with paymentOptions.
<compatibility>
<min>1.7</min>
<max>8.99.99</max>
</compatibility>
To prepare for or complete this migration
-
Moving to PHP 8
What changes when PHP jumps within the same migration.
-
Incompatible modules
How I spot modules to replace, and with what.
-
Pre-migration checklist
Everything I check before any PrestaShop migration.
-
Migrating without stopping sales
Going live without blocking orders in progress.
-
Shop still on 1.5
One step older, there is no reasonable cascade left: rebuild on 8 and carry the data over.
-
Migrate or rebuild?
When the migration touches almost everything, compare it honestly with a rebuild.
- PHP 5.2 to 7.1 PrestaShop 1.6
- PHP 7.2.5 minimum, up to 8.2 PrestaShop 8
devdocs.prestashop-project.org
Describe your need in one minute
A few targeted questions so I can reply with an estimate rather than another questionnaire.