How to upgrade PrestaShop (1.7 → 8 → 9) without losing data

To upgrade PrestaShop without losing data, always follow the same order: a full backup of files and database, a test copy of the store, a check of modules, overrides and theme, the upgrade itself on the copy with the official Update Assistant module, purchase and back-office tests, and only then production. A store on 1.7 reaches version 9 by way of version 8, because each one needs a different PHP version. Below you will find the whole process step by step, the most common post-upgrade errors and a test checklist.

Why should you upgrade PrestaShop?

Security comes first. The 1.7 branch is no longer developed, and PrestaShop 8 runs on PHP 8.1 at most, whose security support ended at the end of 2025. An old store on an old PHP version is an easy target: attacks on online stores often exploit known vulnerabilities that were patched long ago. Our article on PrestaShop security explains how to spot them.

Modules are another reason: developers increasingly release new versions for PrestaShop 8 and 9 only, so on an old version you cannot install the current payment gateway or carrier integration. Newer PHP also makes the store noticeably faster.

How do you upgrade from PrestaShop 1.7 to 9?

PHP is the key. Each PrestaShop version runs only on certain PHP versions, and the upgrade module offers the newest store version that matches the PHP on your server.

PrestaShop version Supported PHP
1.7.8 up to 7.4
8.x 7.2.5 to 8.1
9.x 8.1 and later

That is where the 1.7 → 8 → 9 path comes from:

  1. Upgrade your 1.7 store running on PHP 7.4 to the latest 8.x release, without changing PHP.
  2. On PrestaShop 8, switch PHP to 8.1 and check that everything works.
  3. On PHP 8.1, upgrade the store to version 9.
  4. Only then, if your 9.x release and your modules allow it, move to a newer PHP.

You can check your store and PHP versions in Advanced Parameters > Information. If you run an older 1.7 release (such as 1.7.6), the rule is the same: version 8 first, then 9.

Step 1: back up all files and the database

An upgrade changes thousands of files and the database structure.

  • Files: the whole store directory, including img, modules, themes, override, upload, download and app/config/parameters.php, which holds the database credentials.
  • Database: a full dump, for example with mysqldump or your hosting panel.
  • Storage: keep the backup off the store's server, not just in a folder next to it.

Important: a backup you have never restored is only a hope. Restore it once on a test server and check that the store starts.

Many hosts also keep automatic backups. Check how many days back they go and whether you can restore the files and the database from the same moment; that is your plan B if the upgrade fails.

Step 2: create a test copy of the store

Never upgrade the live store directly. Set up a copy on a subdomain (for example staging.yourstore.com) with its own database:

  • restore the files and database from step 1,
  • change the domain in the ps_shop_url table so the copy does not redirect to the live store,
  • stop outgoing emails in Advanced Parameters > E-mail > Never send emails, so customers do not receive notifications from your tests,
  • switch payment methods to test (sandbox) mode and protect the copy with a password so it does not end up in Google.

Step 3: check modules, overrides and the theme

The PrestaShop core usually upgrades without trouble; the add-ons cause the problems.

What to check Where Risk
Modules added after installation Modules > Module Manager a module without a version for 8 or 9 stops working or gets uninstalled
Overrides the override/ folder an overridden class no longer fits the new core, which ends in an error 500
Theme the themes/ folder a theme built for 1.7 may break its layout or fail to load scripts
Edits to core files compare with a clean install the upgrade overwrites them without warning

For every module, check with its developer whether a version compatible with your target exists, and download it in advance. Payment, shipping and accounting or wholesaler integrations matter most. Go through the overrides one file at a time: some become unnecessary, others must be rewritten. A custom-built theme needs a developer's review.

Step 4: run the upgrade with the Update Assistant

The official tool is the Update Assistant module (technical name autoupgrade, formerly "1-Click Upgrade"). Install its latest version from the PrestaShop repository on GitHub. Recent versions add a separate Update assistant item to the Configure section of the menu; older ones lived under Advanced Parameters.

The upgrade runs in several stages:

  1. Version choice: the module checks the server requirements and offers the newest version compatible with your PHP. You can also upload the archive of a chosen version yourself (local channel).
  2. Update options: among others, deactivating non-native modules, uninstalling modules incompatible with the new version, disabling all overrides and regenerating email templates.
  3. Backup: files, database and optionally images. Keep it on, even if you have your own backup.
  4. Update: file replacement, database migration and module updates.
  5. Post-update: a checklist and, if something went wrong, restoring the backup.

Two options deserve attention. Uninstalling incompatible modules deletes their configuration and data, so first make sure this does not hit, for example, a module that stores your shipment history. Regenerating email templates overwrites your changes to the emails. On a large store, you can run the upgrade from the command line (php bin/console update:start in the module folder), as described in the PrestaShop documentation.

What if your store stops working after a PrestaShop upgrade?

The most common symptoms and their causes:

  • Blank page or error 500: usually an incompatible module or an override. Turn on debug mode and check the logs in var/logs. Our guide to the PrestaShop error 500 and blank page walks you through finding the cause.
  • A module is missing or disabled: the Update Assistant disabled it as incompatible. Install a compatible version or find a replacement.
  • Broken layout, buttons that do nothing: an old cache or a theme that does not fit the new version. Clear the cache in Advanced Parameters > Performance or empty var/cache, then check the browser console.
  • 404 on every page except the home page: on Apache, saving the settings in Shop Parameters > Traffic & SEO > SEO & URLs again usually regenerates the .htaccess file and fixes it.
  • Emails look different: the templates were regenerated. Restore your changes from the backup.

In what order should you test the store after the upgrade?

Test on the copy first and then again on production, always in the same order:

  1. Home page, a category with filters, and search.
  2. Product page, including a product with combinations (size, colour).
  3. Registration, login and password recovery.
  4. Cart, discount codes and every carrier, including pickup point selection.
  5. Every payment method, all the way to the order confirmation and email.
  6. Back office: order list and details, status change, PDF invoice, editing and saving a product.
  7. Integrations: product feeds, exports, stock synchronisation, CRON tasks.

On production, the same checklist takes about a quarter of an hour.

How do you roll the upgrade out to production?

Do not copy the test database over production: new orders and accounts have arrived in the meantime. Repeat on production the same procedure you rehearsed on the copy:

  • pick the quietest time of day,
  • turn on maintenance mode (Shop Parameters > General > Maintenance) and add your IP address so you can still see the store,
  • take a fresh backup of files and database,
  • upload the module versions, theme and fixed overrides you prepared earlier,
  • run the upgrade, go through the test checklist and only then turn maintenance mode off.

Over the next few days, keep an eye on the error logs, orders and the Pages report in Google Search Console.

No time to set up a test copy? Our PrestaShop upgrade service covers exactly these steps.

Frequently asked questions

Can I upgrade PrestaShop 1.7 straight to version 9?

In practice, no. PrestaShop 1.7 runs on PHP 7.4 at most and version 9 needs PHP 8.1 or later, so there is no PHP version both can run on. That is why you upgrade to version 8 first, then switch PHP to 8.1, and finally move to 9.

Will I lose products, orders or customers?

An upgrade keeps the data in the database: products, orders, customers and content. The risk lies in modules uninstalled as incompatible (they lose their configuration and data) and in edits to core files and email templates. That is why a backup and a rehearsal on a test copy are a must.

How long does a PrestaShop upgrade take?

Running the upgrade itself usually takes from a quarter of an hour to an hour, depending on the size of the store and the server. Most of the time goes into preparation and testing.

I am on PrestaShop 1.6. What now?

You first need to move to 1.7 with the older branch of the module (4.14.x), and only then use the current Update Assistant to reach 8 and 9. With a heavily customised 1.6 store, it is often simpler to set up a new store and migrate the data into it.

How much does a PrestaShop upgrade cost?

If you do it yourself, you mainly pay with your time and possibly new versions of paid modules. Our upgrade service has a fixed price of 1999 € net and includes the analysis, the upgrade on a copy, fixes, tests, deployment and 30 days of support.

Want to know how much work your store needs? Contact us and we will check your version, modules and theme.

Products in this article

Back to Blog

Loading...
Back to top