Notice: You are browsing the documentation for PrestaShop 8, which is currently in development.

You might want to read the documentation for the current version, PrestaShop 1.7.

Backward compatibility with PrestaShop 1.6

If you plan to develop a module for PrestaShop 1.7 then extending the compatibility with previous major versions of PrestaShop, it may require some changes before being ready for production.


PrestaShop 1.6 does not fully support namespaces. They throw some issues when used in specific places.

  • In the main class of your module, the keyword use [...]; will trigger syntax errors when PrestaShop will try to parse the file.
  • ObjectModels can’t be defined in a namespace. The hook generated while managing this entity will be considered as invalid by the Validate class and will trigger fatal errors.

PHP API updates

The visibility of many functions have been switched to public between two versions of PrestaShop (i.e Link::getBaseLink() which was protected then public from PS We recommend using a static analysis tool like PhpStan to detect these changes.


addCSS / addJS / jsDef may not work properly on PrestaShop 1.6.0.* when sending Json data to a template. We recommend sending your variables without trying to encode them. PrestaShop will handle them and avoid escaping issues with quotes.

$translations = [
    'dummy1' => 'Example of data',
    'dummy2' => 'Another example of data',

-    'translations' => json_encode($translations),
+    'translations' => $translations, // Data will be encoded by PrestaShop