Magento Extensions – How Many Are Too Many?

If you own a Magento web store, you’re probably using at least one module to extend your store’s functionality. Extensions are a great way to add features to your website quickly and easily, saving you the pain of developing said features by yourself or having to hire a developer to do so.

The already large number of available extensions on the Magento marketplace will only tend to increase, so whatever functionality you want to add to your store, there is probably an extension out there that implements it.

This can lead to the issue of Magento web store owners going on an extension frenzy and installing modules for every little reason. Some people can even have more than a hundred installed modules. You’d think that their store is great for being packed with features, but having so many extensions may also raise some problems. At some point, one might ask: how many extensions are too many?

We might be led to answer that having 2 or 3 extensions is fine and 20 is too many. However, it is not that simple. If you install only 2 modules, but those modules have some kind of compatibility issue that slows down your website, it is already too many.

Since this is a delicate issue with no straightforward answer, we’re going to point out some tips that will hopefully help you choose your extensions more carefully and give you some criteria to know when you’ve reached your limit.

1. Double Check if You Really Need an Extension

Sometimes, when they want to add a new functionality to their web store, people tend to automatically seek an extension that implements that functionality. However, there are two caveats here. First, the base version of Magento could have a setting that provides the feature the owner is looking for. Second, the extension probably implements more than what the owner wanted.

Vanilla (out-of-the-box) Magento is already feature-packed, so it may well provide the feature you are looking for. However, instead of spending some time doing a little bit of research, people find it easier to go for an extension straight away, especially if it is for free.

In doing this, they might find an extension that relates to what they were looking for, but also has some unneeded features. If it is free, this does not really concern them. However, they may be putting a bigger load than needed on the server, thus slowing down the website.

2. Inspect New Code before Installing

We understand that you may not be a code specialist in order to do this one, but you can also ask a developer to do it.

Our first tip for you is not to install new modules through the Magento Marketplace, but install them manually instead. We get that a one-click install is much more convenient, but a manual install that allows you to inspect the code first leads to a much smoother-running store in the long run. So let’s have a look at some warning signs you should look out for while inspecting the code.

If you own a Magento web store, you're probably using at least one module to extend your store's functionality.

The Extension is Encrypted

In this case, you won’t even get to the code-inspecting stage. Some extensions are encrypted because the developers want to protect their code. However, this puts their extension inside a black box, rendering any code analysis impossible.

But that’s not all. In many cases, a certain extension only implements a part of the functionality desired by the user. With an encrypted module, you won’t be able to extend its functionality or do any kind of code customization.

The Extension Modifies Magento Core Functionality

If the extension you want to install modifies any files inside any of these folders:
–    app/code/core
–    app/code/local/Mage
–    app/code/community/Mage

Then, as a general rule, it is probably best not to install it. It could be nothing, but inside these folders is the core Magento functionality, so any changes here will alter the base behavior of your web store, which might give you some headaches later on.

The Extension Overwrites Core Classes

Generally speaking, an extension should not overwrite any of the core classes unless it is strictly necessary. Although this is not a reason to discard the extension straightaway, it is something to pay attention to.

Some of the most often rewritten classes are checkout/cart, sales/order, sales/quote, catalog/product, and checkout/type_onepage. So keep your eyes open for rewrites involving these classes and make sure there is a legitimate reason behind them.

Another behavior that should make you suspicious is if an extension modifies a class that seems completely unrelated to the functionality it implements.

Bad Programming Practices

This is not a decisive factor, but it is always preferable to install code that follows programming best practices, as well as being well documented.

The Developer Has a Low Reputation

Check the reviews for other extensions from the same developer, if possible. Don’t just rely on the score: see how the developer responds to issues. Sometimes a module may have a low star rating, but if you check the customers’ complaints you’ll notice that the developer was quick to respond and solve the identified bugs.

Usually, if you find any problems in the code, you can either notify the developer and hope he makes the necessary changes, modify the code yourself or look for a different extension that fulfills the same purpose.

3. Check for Extension Conflicts

The more extensions you install, the more likely it is that two or more of them conflict with each other. That will keep at least one of the extensions from functioning properly. But prevention is key here: it is best to spot conflicts before they happen.

Conflicts are usually originated by extensions that modify the same core class. Even if you aren’t a code specialist, you can use the following rule of thumb: if two extensions provide the same or similar functionality, you should only install one of them.

There are also some modules designed to detect conflicts between other modules, like Firegento and Magento Extension Conflict.

If you detect a conflict between two extensions, contact the developers. They may implement some changes to make their extensions compatible or give you instructions on how to do so. If that is not possible, you’ll have to choose the most important extension for you and discard the other.

If you own a Magento web store, you're probably using at least one module to extend your store's functionality.

4. Examine All Previously Installed Extensions

It may not do you much good to start following these steps for new extensions if you already have a bunch of them installed on your server. Repeat all the previous steps for the modules you have installed in the past. There is a good chance you’ll even uninstall some of them if you notice that you’ve never used them.

5. Reserve Time and Budget for Upgrades

When a new Magento version is released, it will probably break compatibility with some of the extensions you have installed. Developers might release updates for them, but this may take them some time. It is even possible that you’ll have to spend some update fees, depending on the extension.

If developers are no longer providing support, you’ll have to inspect and maintain the code yourself to ensure all is working well. Remember that the more extensions you have installed, the longer this process will take you, so this time should already be accounted for every time a Magento upgrade is coming.