Overriding Files

PrestaShop allows classes and controllers to be overridden using the override directory and override module templates in the theme. This allows code to be modified without actually modifying the original files, which makes it easier to upgrade to newer versions of PrestaShop in the future.

Overriding Classes

To override any of PrestaShop’s classes, create a file in the override/classes directory with the same name as the class. See Models for a list of classes that can be overridden and a description of each class.

TODO: Add example of extending CMS to add author and date added

Overriding Controllers

To override any of PrestaShop's controllers, create a file in the override/controllers directory with the same name as the controller. See Controllers for a list of controllers you can override and what each controller does.

TODO: Add example of overriding a controller

Overriding Modules

PrestaShop allows module template files to be overridden inside a theme, so that different themes can display modules differently. Module PHP files cannot be overridden though, so the same module code must be used for all themes.

It is only the view that can be changed. To override a module's template file, mirror the file's path inside the theme. For example, to make a Web 2.0-style footer, copy modules/blockcms/blockcms.tpl to themes//modules/blockcms/blockcms.tpl, then edit the footer code at the bottom.

The theme will use the new code, while the default PrestaShop theme will continue to use the original PrestaShop code.

Overriding Back Office tabs

TODO: Add example of overriding Back Office tab