Child pages
  • Manual update

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of content

Table of Contents
maxLevel3

...

Manual update (experts only)

...

Tip

Much of the presented process happens within the confines of a local web server, set up on your own computer. Before you do anything, download and install the local server package of your choice: WAMP, XAMPP, EasyPHP, MAMP, or another. If you have never installed a local server, read the "What you need to get started" chapter of the Getting Started guide, especially the "Installing PrestaShop on your computer" section.
[tip}

The steps of the upgrade process are:

  1. Save and Backup Your Current Store:
    • Deactivate your store ("Maintenance" page of the "Preferences" menu).
    • Back up your files to your desktop, using your FTP client in a new "prestashop-prod" folder. This will be a complete copy of your production site.
    • Back up your database ("Advanced Parameters/DB Backup" page, or using phpMyAdmin).
    • Back up your customized translation ("Export a language" section in "Tools/Translations" tab).
  2. Getting ready for the new version:
    • Download and unzip the latest version of PrestaShop: http://www.prestashop.com/en/download, and unpack it in a new "prestashop-prep" folder.
    • Copy your personal files (images, logos, photos, translations, modules, etc.) from "prestashop-prod" to "prestashop-prep" on your computer. A detailed list is available further down in this guide.
    • Copy the "prestashop-prep" folder to the web folder on your local server (/htdocs, /www, or any other name used by the server package you chose). This is the folder where you will first try to upgrade your PrestaShop, keeping your original backed-up files (prestashop-prod) and the files you prepared (prestashop-prep).
    • Recreate the production database on your local server: using phpMyAdmin, create a local database in which you will put the data from your production shop, using the SQL files that were backed-up at the start of the process.
  3. Starting the Local Update:
    • Launch the update script on your local server by accessing it with your browser. In version 1.5, that script is located at /install/upgrade/upgrade.php.
    • Verification of all parameters before the update: follow the instructions on screen and make sure your server conforms to the new version technical requirements.
    • Finishing the update: once the updater has finished, delete the /install folder and access both your front and back-office to make sure it works.
  4. QA and Testing:
    • Import your translations ("Import a language pack manually" section in "Localization/Translations" page).
    • Check that your theme is still working as expected. If this is not the case, you will have to edit its files.
    • Test your shop thoroughly: create accounts, buy products, cancel orders, check the invoices, etc.
  5. Start the update on your production web server:
    • Using your FTP client, replace the files for your online shop with those from your "prestashop-prep" folder.
    • Launch the update script on your production server by accessing it with your browser. In version 1.5, that script is located at /install/upgrade/upgrade.php.
    • Verification of all parameters before the update: follow the instructions on screen and make sure your server conforms to the new version technical requirements.
    • Finishing the update: once the updater has finished, delete the /install folder and access both your front and back-office to make sure it works.
    • Import your translations ("Import a language pack manually" section in "Localization/Translations" page).
    • Check that the main domain name is correct ("Preferences / SEO & URLs" page, "Shop URL" section).
    • Regenerate your robots.txt files ("Preferences / SEO & URLs" page, "Generate robots.txt" section).
    • Check that your theme still works as expected. If not, you will have to edit its files.
    • Test your store thoroughly: create accounts, buy products, cancel orders, check invoices, etc.
  6. Going live with your up-to-date store
    • Activate your store ("Maintenance" page under the "Preferences" menu).

You're done! Enjoy all the new features brought by this update!

Step 1 – Save and Backup Your Current Store

Warning
titleCaution

Not backing up your store constitutes a very important risk if you encounter any difficulties with the upgrade. You could lose your data and never be able to recover it.

Do not ever skip this step. Do not proceed to step 2 unless you are absolutely certain that your backups are completed, successful, and fully functional. Do check several times.

Deactivating Your Store

Warning
titleCaution

Disabling your store is very important.
By doing so, you make sure that there is no activity on your store while you are updating it. Therefore, if you ever have to revert the update to a backup, however recent, you won't have lost any unfinished carts or orders.

Go to your store's back-office, open the "Maintenance" page under the "Preference" menu, then select "No" for the "Enable Shop" option.

Info

If you are updating from PrestaShop 1.4, that setting is directly available in the "Preferences" tab.

In the "Maintenance IP" field, located just below the "Enable Shop" one, enter your own IP address, so that you can keep on using your store during the update. This will allow you to test the front-office of your store, while still making sure visitors cannot access the website.
In order to find out your IP address, visit this page: http://whatismyipaddress.com/

Backing Up Your Files

You must back up all of the files related to your PrestaShop store, and store them on your computer.

There are two main ways of backing up your files:

  • Ask your hosting company to back up your files.
    Make sure that this backup is fully functional, recent, and more importantly that it reflects the content of your current store.

...or...

  • Copy all of your files from your server to your local computer using an FTP client.
    This method is only possible if your hosting provider has provided you with an FTP access to your server. Create a "prestashop-prod" folder on the Desktop of your computer, then, using an FTP client (such as the free FileZilla client, which you can download at http://filezilla-project.org/), select all the PrestaShop files and folders on your server (use the Ctrl-A command) and copy them to that local "prestashop-prod" folder.

Backing Up Your Database

You must absolutely back up the whole database for your PrestaShop store.

There are three different ways to back up your database:

  • Ask you hosting provider to back up your database.
    Make sure that your database backup is functional, recent, and especially that it contains all of your data for your PrestaShop Store.

...or...

  • Download a database backup from your PrestaShop back-office.
    Go to the the "DB Backup" page, then follow the instructions on the page.

    Info

    This page is available from:

    • PrestaShop 1.4: under the "Tools" tab, in the "DB Backup" sub-tab.
    • PrestaShop 1.5: under the "Advanced parameters", in the "DB Backup" page.

    This process will take between 1 and 20 minutes depending on the size of your database, after you will see a link appear on the page, titled "Download the Backup file (size)". Click it, and make sure this backup is functional, recent, and especially that it contains of all the data of your website. Open the zip file and make sure that there are absolutely NO ERRORS in the .sql file it contains before proceeding to the next step.

...or...

  • Download a copy of your database via phpMyAdmin.
    Be sure that your database backup is functional, recent, and especially that it contains all of your data for your PrestaShop Store. If your database is too big, you might receive an error. If that is the case, you will need to contact your hosting provider.

Keep that backup in the "prestashop-prod" folder on your computer, which you should have created in the previous step and should contain your files.

Backing up Your Customized Translation

If you did not edit the available translations or add new ones (either PrestaShop's or your modules'), please proceed to step 2.

To save your translation changes:

  1. Navigate to the "Translations" page in your back-office.

    Info

    This page is available from:

    • PrestaShop 1.4: under the "Tools" tab, in the "Translations" sub-tab.
    • PrestaShop 1.5: under the "Localization" menu, in the "Translations" page.
  2. In the section "Export a Language" select the language to which you have made any modifications, then select your current theme, and click "Export".
  3. Save the downloaded file into the "prestashop-prod" folder on your local computer.

Do this for all your custom languages, both those you created/added and those you modified/corrected.

Tip
titleVerify your backup folder
 

Does the "prestashop-prod" folder contain...

  • ...a complete copy of all of the files from your production shop?
  • ...a complete and error-less copy of your database?
  • ...a copy of your customized translations (optional)?

You have checked the entire backup folder, and made sure that they are all correct and that you would be able to return to your current version / restore all of your data.

If you answered yes to all of the questions above, then proceed to Step 2.

...

  • /mails. Has all the mails templates, including those that you have modified.
    If you have never made any mail template modification, do not worry about this folder.
  • /img. Contains your logo and all the pictures of your store (categories, products, etc.). Take good care of these specific files and folders:
    • logo.jpg - your store's logo
    • favicon.ico - your store's favicon
    • logo_stores.gif - your store's logo for the Store Locator's map
    • /c - your categories' images
    • /cms - your CMS page's images
    • /co - your attributes textural colors
    • /m - your manufacturers' logos
    • /p - your products pictures
    • /scenes - your categories' image-maps
    • /st - your physical stores' photos
    • /su - your suppliers' logos
    • ...basically, copy all folders except /img/admin and /img/jquery-ui.
  • /modules. Only copy the modules that you have added since you installed PrestaShop for the first (and which where therefore not part of the default installation).
    • Some of these modules might not be currently enabled or even installed: it is up to you to determine whether they are still useful to you, and thus deserve to be copied to the updated installation.
    • Also, do note that you will most probably have to update the modules that were not built with the new PrestaShop version in mind.
  • /themes/themeName. Only copy your current theme.
    • If you use the default theme from PrestaShop (unchanged), do not copy its folder (/themes/prestashop): you must use the one from the new version (/themes/default).
    • If you have made changes to the default theme, do copy its folder.
  • /download and /upload. Contain all the downloadable products, the attached files and the customizable products. If you do no use any of these functionalities, do not copy these folders.
  • /classes. In case you have added customized classes to this folder, copy them to the new /classesfolder.

    Warning

    When updating from a version below 1.4, you must manually edit these classes that you have customized. You do not have to edit classes that you didn't customize. In order to function properly with the latest version of PrestaShop, all these class files need to have their class name suffixed with "Core". Do not attempt these if you are not comfortable with PHP files.
    Here is how to you should edit the customized files that you want to keep:

    1. Copy the class files that you have customized into the /classes folder in "prestashop-prep".
    2. Open each and every one of the class files, and find the ones where the class name is not Core-suffixed. If you are upgrading from PrestaShop 1.4.x, you shouldn't have any (except for custom classes).
    3. Rename the class name, adding the "Core" suffix. For instance, "MyClass" becomes "MyClassCore".
      Only change the name in the PHP class within file, not the name of the file itself!
    4. If all the files already have "Core" in their classname (such as "class AttributeCore extends ObjectModel"), then you do not need to change anything.
    5. Save the edited files.
  • /config. You only have to copy one file, but it is essential: the settings.inc.php file.
  • /translations - if you are using another language than the ones available in the default installation, you will have to copy that language's folder in the /translations folder of the new installation. Failing that, the update will not work properly.

...

  1. Open the phpMyAdmin tool, which should be available on your local server. Most of the time, it is located at http://127.0.0.1/phpmyadmin, or sometimes http://127.0.0.1/mysql.
  2. If it is not already the case, create a new database especially for this project. Give it a distinctive name, like "prestashop_update" or even the database name for your production store, for instance.
    If you have already created a database for a previous local update test, just delete all of its tables.
  3. Open de database, and click on the "Import" tab, located at the top of the screen.
  4. Click on the "Browse" button and select the backup .sql file from your production store, which should be in the "prestashop-prod" folder.
    Check that the "Max." value displayed by phpMyAdmin is higher than the .sql file's size. If not, you will have to edit your local server's php.ini, particularly the upload_max_filesize value, the post_max_size value or even the memory_limitvalue as a last resort. This being done, restart the local Apache and MySQL servers in order to apply your modifications.

    Tip

    Instead of changing the server settings, you can also try compressing the .sql the file using a Zip tool, such as http://www.7-zip.org/. phpMyAdmin should accept .sql.zip files, and will take care of uncompressing the file before importing the data.

  5. Click on the "Go" button to import the SQL file's content.

...

It should begin with the following line:

Code Block

<action result="ok" error="">

...

All of the updates do not run smoothly, and for very different reasons. In order to help you, the update script displays an error code at the beginning of the XML result. In case of an error, the page starts like so:

Code Block

<action result="fail" error="27" />

...