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 :
public function hookDisplayShoppingCartFooter($params) $output = parent::hookDisplayShoppingCartFooter($params); if ($this->context->cart->getOrderTotal() > 100) $output .= '<p class="alert alert-success">You qualify for free shipping!</p>'; return $output; override module prestashop
public function initContent()
// Custom logic before parent call $originalResult = parent::hookDisplayHeader($params); The class must be named OriginalModuleClassOverride (e
return 'Custom functionality added via override'; Override a Module Controller To override a front
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: