Last week in Lesson 2: Magento ecosystem I mentioned Magento Connect: the extension database for Magento connect. As you subscribed to the RSS feed, you've seen that 32 new extensions were added to the database. My feed reader shows an average of 44,1 posts (= new extensions) per week so this was a relatively 'quiet' week for Magento Connect...
This week I'd like to dig a little deeper into the use of Magento extensions: the peaces of code with which you can extend Magento's own functionality.
In my opinion, the extendability of Magento itself and the existence of a marketplace filled with many (4600+) extensions is a big part of the success of Magento. The same is true for systems like Wordpress, Joomla and also for the iPhone with its Appstore. But this also creates a problem for us as advisors. Clients might see certain functionality available as an extension and immediately assume this to be 1) free or very cheap to implement and 2) easily to integrate with their current shop en extensions. Sometimes that's true, most often, there's a little more to it...
How to assess the quality of an extension?
- Look for the website of the developer. Is he focused on Magento or is he a Jack of all trades?
- How many extensions did he developed?
- When was the last time those extensions were updated? Do they work with the latest Magento version?
- If your client is on the Professional or Enterprise edition: does it work with those Magento versions?
- Look at the reviews and the forums. Are their many complaints and bug reports? Are messages mainly positive or negative? And how does the developer respond to those messages?
- Is their some form of (commercial) support available?
- Give it to your developer (if you're not one yourself) to assess it's code quality.
If the quality checked out that's great! But not enough for a 'go' on implementation. Here are some other considerations to be made:
- Does the extension do what your client wants it to do? Does it do less, does it do much more or does it do things different (all three options can be a problem). Let your client in on this because he's (hopefully) the best person to tell you what he needs and doesn't need.
- You develop a Magento shop for your client. But if you (or your client) installs extensions, who's responsible for the correct working of the extension, the compatibility with other extensions an upgrades? Is it your problem to fix within the project or on an hourly basis? Or is it the primary responsibility of the 3rd party developer? Discuss this carefully with your clients before installing any 3rd party extensions.
- Magento Community is a free product, but that doesn't mean it doesn't cost any money to research, implement, training, host, maintain, configure and adjust. The same goes for 'free' and commercial extensions, don't forget these 'hidden' costs and try to explain these costs to your client.
- Less is more. Also when it comes to extensions. I've seen sites come by with 30+ extensions from many different developers. These sites are horrible to maintain, horrible to upgrade an it's almost impossible to keep the extensions compatible with each other. Only implement what is absolutely need to either 1) sell more or 2) make the backoffice processes much easier. If it doesn't do one of those, why use it?
- I hope this one is obvious, but let's emphasize on it once again: never install new extensions in a live environment. That's where the development environment is for so use that. Oh, and make a backup before you do so.
- Often, if Magento doesn't provide a certain functionality, the options are A) develop functionality on our own or B) use an extension.
As you might've noticed: it's actually a lot about communication with your client and managing expectations. If you get that right, you're halfway there.
Tasks for this week:
- Make a whitepaper 'Choosing a Magento extension' for clients. Use the information above, supplemented with your own findings. Make it a step-by-step process for (new) Magento webshop owners on how to choose an extension, what to look for, and what the things are that they need to take into account for implementation (including costs).