By Brad Leslie, Certified Magento Developer at InteractOne
Third party extensions vs custom development. How to choose?
Within engineering, there are often multiple solutions to the same problem. The most appropriate solution can depend on any number of factors: budget, deadline, the abilities of the engineer / firm, third parties that need to be involved, etc. Magento development is no different.
Due to the large number of eCommerce stores built with Magento and their varying sizes, budget is often the first consideration when developing a solution. If the store needs a third party ERP integration, but has a budget of less than $1,000, custom development is most likely not the answer.
The Magento community offers a unique advantage to merchants who have lower budgets, in that there is an abundance of extensions and themes that are available within the marketplace, Magento Connect. These extensions and themes are individual pieces of functionality that can be installed to expand the features of Magento. There are a few things to keep in mind while browsing the marketplace:
- Reviews: Learn from those who have already installed the extension. Determine whether there are issues with the functionality, the author’s support and / or compatibility.
- Popularity Score: This is the number of referrals to the site and downloads. A higher popularity score does not always mean it’s a good extension — especially if it’s free. The opposite is also true.
- Developer Info: Is the developer a solution partner? Have they published other extensions? Do those have good reviews as well?
- Extension Versions: Is the extension updated regularly? Has it been updated recently? Is it compatible with the latest versions of Magento, including the latest security patches?
A combination of good reviews and a high popularity score gives the best possibility of the extension being high quality. Additional vetting of the extension author can help eliminate the possibility of issues down the road if support is needed.
Other than a tight budget, a short deadline is the best reason to use a third party extension or theme rather than developing a custom solution. Extension installation is very simple and rarely causes issues unless there is a conflict between multiple extensions attempting to override the same piece(s) of core Magento functionality.
Third party extensions and themes can be good solutions to a large number of problems / business requirements. The code should be evaluated before installing to ensure that best practices are followed and there aren’t any security flaws, but good reviews and high popularity score are typically good indicators of code quality.
While third party extensions and themes are appropriate for some situations, they are not always the best solutions. Poorly developed extensions and themes can lead to conflicts, upgrade issues, security vulnerabilities, and unnecessary headaches.
If the budget and deadline allow, custom solutions can solve the same problem as a third party extension with greater levels of efficiency and customization. If the solution architect and developers are familiar with the code base’s integrity, they can adjust the solution for that particular merchant. Whether the store needs a simple report generated each day or reporting functionality that’s scalable and customizable, the solution can be tailored to the specific need of the merchant.
Enterprise Edition (EE) merchants often have a higher budget, which allows for more custom solutions. Based on the size of the merchant, many EE (and larger Community Edition) installations have restrictions on the solutions that can be implemented.
For instance, if a merchant has 100,000 products and needs an importer that updates some custom attributes on each product every day, dataflow profiles or an import with normal product saves are probably not a viable solution. As developers know, full product saves are notoriously inefficient because the related indexes are updated at that time. Saving individual attributes or using direct MySQL queries are much more efficient and can cut down the import time drastically. While direct queries are not typically considered to be an appropriate solution for smaller merchants, cases like this require creativity.
Magento merchants should rely on the guidance and expertise of Magento Solution Partners to help determine the best possible solution for each requirement. That said, merchants need to understand the limitations of each proposed solution and how those solutions are able to scale as the merchant’s store grows.