Magento Extensions Are Not iPhone Apps
In the Twitter discussion of Stop Putting Garbage 3rd Party Extensions In The Magento Core, Isaiah from Trellis, highlighted a very difficult issue that agencies and developers face working with merchants on Magento.
I created a poll about a week ago that touched on this issue as well because the issue seems to be bigger on Magento 2 as compared to Magento 1.
The struggle here is the expectations being set by 3rd party vendors vs. the reality of installing/testing/deploying/configuring an integration or extension.
A Magento extension is not like an iPhone app because Apple’s app developers have to operate in what is often referred to as a “Walled Garden”. What this means in practice is that they can only access the functionality of the phone that Apple explicitly allows them to, which has some pros and cons. The cons are that often-times there are things that developers would love to do on the iPhone that they can’t do. The pros are that you can install/uninstall an app and you don’t have to risk it breaking your phone.
Magento does have some restrictions… or guidelines. The most well-known is: do not edit the core. But due to the extensible nature of Magento, you can do all sorts of damage without touching the core. And that’s what makes Magento so powerful and flexible. But with power comes responsibility.
Shopify operates much more like the iPhone walled garden model and they’re able to control the stability of their apps in some ways, but you’re frequently limited too.
And these days a lot of 3rd-party SaaS extensions that plug-in to Magento have been developed badly and have so many problems that agencies often have to fix the bugs in the extensions.
The main problems agencies and developers face with these extensions are:
- Magento versions — Extensions may be tested with a newer or older version of Magento, but oftentimes there are issues with other versions. I’ve seen issues with Magento Open Source vs Magento Commerce as well when the vendor is improperly requiring Commerce features that they shouldn’t be.
- Extension conflicts — Frequently extensions will create issues with other extensions on the frontend and backend. This is very hard to test for the vendors because they would have to test against so many other extensions so its usually on the agency to report, debug, and fix these issues.
- Theme/Frontend issues — Due to the customizability of Magento’s frontend this can create frequent incompatibilities in your theme and requires additional work to make it work.