Magento, from the beginning, has offered a system of packaging extensions, and installing those packages. It was a smart move, and one that I really appreciated. There are a lot of developers out there who properly package their extensions (everything that you can get directly off Magento Connect is packaged). However, there are still loads of developers who do not package their extensions. This is especially true with developers who sell their extensions.
One particular developer that I’d like to point out my frustration with is AITOC. Before I get started though, they ARE talented developers, and they make good functioning modules. However, I can’t stand their pricing and distributing philosophies.
Most of their modules are based off of how many enabled products you have in your catalog, how many stores/websites you have setup in Magento, or how many admin accounts you have setup. Let’s say you want to use one of their modules for 50 of your products, but you have 10,000 products in your catalog. Or, you want to use one of their modules for one of your websites, but you have 10 websites setup in Magento. With both of these scenarios, prepare to spend big bucks. You can easily go from a $99 module, to a $599 module. I hate that.
Also, let’s say you have 950 products in your catalog, and you buy a module from them and you get the license that allows up to 1000 products. When you hit 1001, the functionality of that module will disable itself.
Now to their distribution. When you buy one of their modules, prepare for a headache! They are loaded and bloated full of files. It’s a mess. You cannot install their module with a simple command line. Instead, you need to upload a ton of files, set special permissions, and then walk through a somewhat complicated installation process. There’s even a module in there just to install/manage the module you want to install, loading up your Magento install with over 100 additional files. They override a few Core Magento files and send out a web service request, checking your license to make sure it’s valid before it will fully install your module. Almost every single file in their module is wrapped in a PHP call that checks to make sure you have properly installed it, and that you are not exceeding the license rule (# of products, stores, admin accounts, etc.).
They make it a headache to install, a headache to maintain, and a nightmare to fully uninstall and remove all the files. If they properly packaged their extension, it would be cakewalk to install, update, and uninstall.
Why do they do it? It’s simple. As for their pricing, they want to make more money off you. They tease you with a price, but many people will not pay the base price for their modules. Why do they not package their extension? They want more control over you and your store, and more control ensuring people aren’t abusing their license (because of the dumb limitations they enforce) or re-using it over and over, or passing it along to other people to use.
They are smart in that regard, but when it become a total pain for the end-user, you should re-think the process. I think they need to ditch the limitations. And, when it comes to the modules, properly package them up so that they can be installed with one command or using Magneto Connect. There are other ways of protecting a module from being re-used or re-distributed like IonCube that are far less of a headache to deal with.
So, if you are a Magento developer distributing or selling modules, please, make them into a proper Magento extension. It doesn’t take long, it’s not hard, and it works way, way better. And, don’t put annoying limitations on them like AITOC does.