The class must be named OriginalModuleClassOverride (e.g., MyModuleOverride ) and extend the original class. Step 3: Clear the class index cache rm -rf var/cache/prod/class_index.php # or for development rm -rf var/cache/dev/class_index.php Step 4: Enable the override No further action needed – PrestaShop will automatically load the override class on the next request. 4. Override a Module Controller To override a front controller of module mymodule named DefaultController :
/** * Override an existing method */ public function hookDisplayHeader($params) override module prestashop
<?php class BlockCartOverride extends BlockCart The class must be named OriginalModuleClassOverride (e
return 'Custom functionality added via override'; Override a Module Controller To override a front
/override/modules/mymodule/controllers/front/DefaultController.php
1. What is a Module Override? A module override allows you to modify the behavior of a native or third-party module without editing its original files . This is a clean, upgrade-safe method to customize module functionality. Important: Overrides work only for module classes and controllers , not for templates (templates must be copied to your theme). 2. Types of Module Overrides | Type | Location | Purpose | |------|----------|---------| | Class override | /override/modules/module_name/ | Modify PHP logic (models, helpers, etc.) | | Controller override | /override/modules/module_name/controllers/admin/ | Modify controller actions | | Template override | /themes/your_theme/modules/module_name/ | Modify .tpl files (no PHP override needed) | 3. Step-by-Step: Override a Module Class Let's say we want to override the MyModule class of a module named mymodule . Step 1: Create the override directory structure mkdir -p override/modules/mymodule Step 2: Create the override class file Create /override/modules/mymodule/MyModule.php with this content: