Everything broke after installing a module
"I installed a customer review module and now the carrier no longer shows." That sentence comes up regularly, and it is not absurd at all. A module is not an isolated brick: it adds code, creates tables, hooks into locations it does not own, and loads its own scripts on pages that have nothing to do with it.
What a module really changes
At installation, a module does far more than drop files in place. It registers hooks: points on the site where its code will run, often a dozen of them, sometimes on pages it does not visibly change. It creates its tables and sometimes adds columns to existing ones. It adds its stylesheets and scripts to the loading queue, where order matters. And it may install an override, a file replacing a core behaviour for the whole site.
Two modules overriding the same behaviour conflict: the second overwrites the first, or partially replaces it. That is the most frequent cause of a bug appearing far from the installed module, and it is also the one that survives uninstallation, because an override file is not always removed cleanly.
Isolating the module responsible
-
Confirm the chronology
Did the fault exist before? On a site where several people work, the apparent coincidence is not always the real cause. An update run the same day is just as serious a candidate.
-
Deactivate rather than uninstall
Deactivation is reversible and keeps the settings. Uninstalling often removes the configuration, the tables and sometimes entered data. On a payment or shipping module, the difference is major.
-
Work in halves
With many recent modules, deactivating half at a time splits the field on every attempt. Far faster than one by one, and still reversible.
-
Check the override directory
An override file dated the day of installation, named after a core class, identifies the culprit even after the module is deactivated.
-
Look at the browser console
When the symptom is a dead button or a frozen menu, the script error names the faulty file, and that file path contains the module name.
The clashes I meet most
- Two modules overriding the same core behaviour: the last installed wins, and the first one’s feature disappears with no message.
- Two modules loading the same script library in different versions: the page loads both, and the second overwrites the first.
- A cache or optimisation module bundling and compressing files: it breaks another module’s scripts that assumed a specific loading order.
- A module hooked into the checkout failing silently, leaving a button with no effect rather than an error message.
- A module installed on a CMS version other than the one it declares compatibility with: it appears to work and fails on one particular case.
Carry on with the right page
-
A module refuses to install
If the problem is installation itself rather than its consequences.
-
Plugin conflict after an update
The WordPress isolation method, when two plugins fight over the same function.
-
Override or module on PrestaShop
Why an override is the most frequent source of conflict, and when to avoid it.
-
Hooks explained
The mechanism by which a module runs inside pages it does not own.
Describe your need in one minute
A few targeted questions so I can reply with an estimate rather than another questionnaire.