One of the most attractive things about Magento is the vast range of modules and extensions available to extend and alter its core features and functionality. Given the simplicity of installing a module using Magento Connect, and relative simplicity of installation commercial modules, it’s no surprise that some stores can be seen to be running a large number of modules. In some cases this may not necessarily be a bad thing, however it is important to understand that the more modules you add to your store, the more likely you will encounter problems at some point.
Not all extensions are created equal
The first thing to understand is that while some modules have been created by excellent Magento developers, the vast majority have not. Also keep in mind that any module you install to your website has the potential to cause a problem. This may be a major problem that completely breaks your store, or it may be a minor problem that doesn’t isn’t apparent at first, in which case it may be difficult to track down the cause.
However there are a few simple things you can do to minimize the risk to your store:
Do your homework
Read reviews of the module you want to install (the reviews on the Magento site are more likely to be accurate than on the developers own website). Browse the support forum for that module on the Magento website. Also look at other modules that developer has created. Try to get a picture of the kind of experiences people are having with their modules. If you see a lot of problems, that’s probably not a good sign. However keep in mind the occasional problem does not necessarily mean you should start running. Look at the release archives for the module – are updates being released regularly to solve any problems? If so, this is a good sign.
Test for conflicts
You’ll almost certainly want to install the Extension Conflict module for Magento. It allows you to upload the module GZIP file and will throw up any potential conflicts, without actually installing the extension to your store. If you spot any conflicts, you could either try to resolve them yourself or if you aren’t a developer, you could try contacting the module developers for help.
Install to a dev site first
Seems simple enough but this can be overlooked by even the most experienced developer, especially when you are in a hurry to do something. Install and test the module on an up-to-date development site, and test for any problems. Magento is so vast that this testing is unlikely to throw up any and all issues, however it will certainly give you an idea as to whether or not anything major will go wrong.
If you are installing a lot of modules on your site, keep a record of what you install and when. This will make troubleshooting any future issues a little easier, as you can back-track and see which modules were installed around the time the problem arose. Version control will make life a lot easier, but this probably beyond the reach of the average Magento store.
What if things do go wrong?
With Magento Connect it is usually a case of simply removing the module by uninstalling it (although this has been known to go wrong!), however for commercial modules you may need to go through file-by-file and remove any database entries that have been created.
Also keep in mind when contacting developers for help there is likely to be a time-delay. Even some of the commercial module developers (key players) can take up to 2 weeks to respond to an issue. This may be frustrating, but remember when you are paying $70 for something that probably would cost thousands to develop, it’s nice to show a little patience. That said, if a module is so key to your sites operation that waiting 2 weeks to have a problem resolved would never be acceptable, then you should really think long and hard about whether you want to rely on email contact only with developers on the other side of the world.
This post isn’t intended to scare anyone away from using modules developer by the Magento community. There are many great modules we rely on for every single project. However 70% of the problems we see with Magento websites have been caused by a module. So this is simply intended to point out what could go wrong, and to ensure that storeowners take some time to think things through before they press the install button…