What to Look for When Extending Magento with Custom Code or An Extension
January 13, 2021
One of the strengths of the Magento platform is its flexibility and scalability. Customization is common and can be accomplished a few different ways – through community-developed extensions from the Magento Marketplace, or by building your own custom modules. The Magento Marketplace allows you add new features and themes easily, while a custom module approach might be needed to actualize a unique vision. Many merchants also pursue a hybrid approach, by customizing pre-built extensions to save time and money Understanding the benefits of each approach empowers you to make the right decision when looking to extend the out-of-the-box capabilities of your store.
There are several points to think about when considering adding a new extension or custom feature to a Magento installation. The upfront cost can potentially be dwarfed by maintenance and development effort solving issues in the future. These issues can be avoided, minimized, or at least accounted for ahead of time by choosing a module carefully, and following Magento best practices.
FINDING THE RIGHT MODULE
Finding an extension that fits your business needs exactly can be difficult and may introduce labour cost for discovery/exploration/analysis of modules in the ecosystem. The Magento Marketplace is the premier place to find extensions, although sometimes concessions may be necessary in order to get as much coverage as possible out of a module that accomplishes most of your objectives. Once you've settled on a module, it may be required to add your own layer of customization on top to get the desired result. Fortunately, Magento 2 is extremely flexible and gives you multiple ways to modify the platform for your needs.
Does the extension you're considering do everything the way you expect? That might be true today, but as business requirements evolve, there may be a need to modify the extension to fit unforeseen requirements. In this case it may be best to develop a custom module yourself. There are many ways to enhance existing behaviours in Magento 2, most notably:
• Plugins - Also known as interceptors, this feature allows you to intercept most public functions and alter arguments, output, or override internal logic.
• Observers - Can be used to trigger custom code in response to a specific event. While many events are built-in to the platform, you can also inject your own custom events.
• Dependency Injection - Allows for overriding and extending existing classes - and much more.
Using these, and other techniques, you can directly control core platform and third-party behaviours to enact desired results.
PLATFORM VERSION CHANGES
There's no way of knowing how long a module provider will offer ongoing maintenance and support, or if a module will lose relevance as your integrations change. But that is the reality of all software updates. In E-commerce as with any software upgrade, it’s recommended to test any customizations in a pre-production environment to ensure no code conflicts exist, and that functionality or performance is not impacted. It is advisable to consider a module provider's longevity, and ability to provide long-term support when choosing to integrate with them. Selecting a provider from the official Magento Marketplace is a reliable way to find verified providers.
QUALITY ASSURANCE & TESTING
It's not just a matter of adding the extension and calling it a day. Have you considered all edge cases? Since module installation is remarkably easy with Magento 2, testing is often a higher labour cost - and it's worth the investment. Having the specific domain knowledge of how a module operates in edge conditions, and with different configuration setups will give you an advantage when trying to debug potential issues down the line.
After you've brought your new extension online, the vendor may release a new version with additional features or bug fixes. Depending on your needs, you may decide to upgrade. Upgrading to a newer module version using the Magento Marketplace is remarkably easy. Review the Module Upgrade Guide to see for yourself.
Extensions are a key part of Magento implementations. There is a rich ecosystem of extensions available for Magento and utilizing them can be very beneficial. However, being able to fine-tune their behaviour, or build your own custom module from scratch will give you the highest level of control over your customers’ shopping experience.
Founded in 2003 in Chicago, Bounteous creates big-picture digital solutions that help leading companies deliver transformational digital brand experiences. Bounteous is a Platinum Regional Adobe Solution Partner and partnered with Magento even before Adobe acquired the business in 2018. Our expertise in Magento implementations includes developing the first fully integrated AEM + Magento Headless solution and The Bounteous Connector for Magento Commerce and AEM Assets. Bounteous has over 12 years of rich Magento Commerce experience highlighted by the delivery of complex commerce implementations for multinational brands. For more information, please visit www.bounteous.com.