A failed PrestaShop migration shows immediately: a cart that no longer displays, payment errors, an inaccessible back office. A successful migration, on the other hand, goes unnoticed. Here is the method we use to move a store from 1.7 to PrestaShop 8 or 9.
1. Take inventory before touching anything
List every installed module, its vendor, its version and its stated compatibility with the target version. Identify abandoned modules: they are the ones that block most migrations. Also list the overrides in the override/ folder: each one is a potential breaking point.
2. Check the PHP version
PrestaShop 8 and PrestaShop 9 do not support the same PHP versions as 1.7. Check the target version’s compatibility in the official documentation, then make sure your hosting offers it. Custom code written for PHP 7 is often what needs the most fixes.
3. Work on a copy, never in production
Clone the store (files and database) to a protected staging environment. Disable outgoing emails and scheduled tasks that could contact your customers or carriers.
4. Deal with the theme and modules
- Update or replace incompatible modules; rewrite custom developments using hooks rather than overrides.
- Check the theme: a Classic child theme migrates well, while a heavily modified theme may require a partial redesign.
- Check the admin pages of in-house modules, which are gradually being migrated to Symfony in recent versions.
5. Test what makes you money
Automate the critical journeys: account creation, adding to cart, applying a promo code, choosing a carrier, payment in test mode, receiving the confirmation email. End-to-end tests (with Playwright, for example) can be rerun in a few minutes after every fix.
6. Prepare the switchover
Schedule the go-live at a low-traffic time, freeze catalogue changes during the operation, keep a restorable backup and a written rollback plan. Then monitor error logs and orders for 48 hours.
Planning a migration? A technical audit lets you cost the work precisely before committing.