How to Enable and Disable Custom Magento Extension ?


The only way to really disable your module is to change




in your app/etc/modules/foo.xml

If you want an admin account to be able to do it in the back-end, you can create a config option (with system.xml) to control your module. Although it's not exactly the same as disabling your module, you can make sure your module doesn't do anything by looking at the store config.

  • Agreed, this is the only reliable way. You can disable it in the admin through System->Configuration->Advanced, but this makes it inactive, yet not disabled. It may still appear on the admin menu for example, but not fully functional.
    – Niels
    Dec 19 '14 at 8:21
  • 2
    This indeed is the most effective way. But instead of opening the .xml file and change the <active> status you could also rename the .xml file to foo.xml.tmp. This also disables the module and is not only quicker/easier, you can also tell by just looking at the contents of app/etc/modules/ which modules are disabled.
    – MatthijsIJ
    Dec 19 '14 at 9:02

Below are the three ways to disable the modules.

  1. Disabling modules in the Magento backend :

Go to Magento backend - System > Configuration > Advanced > Disable modules output you can easily disable certain modules. You can even select the scope of the configuration (in the top left of the page) and there for disable specific modules only for specific Store Views. This is actually the preferred way of disabling a module.

(This only disables the output. This means especially, that all the computation is still done, means: Doesn't improve performance!)

Modifying XML-files : In the directory app/etc/modules you can find a bunch of XML-files. While the Magento core-modules are bundled in just a couple of files, in most cases you will find per third party module also a separate XML-file. When you open up the XML-file of for instance our MageBridge extension, you will find the following:


Now to disable this module, you would change the active-tag from true to false.


Remember to flush the Magento cache.

Disabling local modules :

But this might not solve your problem. If some module is placed in the app/code/local directory it might be overriding a Magento core-class directly, without the use of XML-files. To bypass this problem, you need to temporarily disable all local modules.

This can be done by opening up the file app/etc/local.xml in which you should change the disable_local_modules-tag to true.


This should allow you to troubleshoot the problem. Of course there are many more things to troubleshoot when dealing with serious problems, but at least this is a start.


I stumbled over another way to disable extension in an answer to my own question (admitedly very similar to this one) in this regards which I wanted to share here.

This was provided by @nintenic (thanks for that) :

  1. In your FTP go to app/etc/modules. This is where all the extension xml files are located.
  2. Create a new folder here called "disabled".
  3. Move the xml file of the extension you wish to disable to this new folder
  4. Now log into the Magento backend and go to > System > Cache Management.
    Click Flush Magento Cache to have Magento recognize the changes.

This is not the "correct" way. but it's the fastest and easiest; and it's even recommended by some extension developers and hosting providers.


By doing the way is two.

  1. in admin, system->configuration->advanced and then disable the module you want.

  2. making your modulename.xml file this line as <active>true</active> to <active>false</active>.(need to flush the cache)

Hope this is what you need.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.