Magento connect: the worst and the best

Introduction to Magento connect

Magento connect is the module’s repository for the Magento community.
Wether they’re free or offered with a commercial licence, you will for sure find here what you’re looking for.

The modules available here affect as well the translations, the themes, or features enrichment of Magento.
It gathers today more than 2,000 modules.

With one click, you’ll be able to setup this wonderfull feature your were dreaming of to be on your Magento and that will save you precious days of developpement :no need to read every code line, to have access to your environment sources, one click and the dream’s here…
But sometimes it turns out into a nightmare…

Magento connect, the worst…

Magento connect: Production or test?

Magento connect is a setup system based on the PHP Pear library.

During the setup of one of my Magento, I once went wrong in the repository I wished to consult with the Pear setup : it so listed the packages available on the Varien core repository.
I was expecting to see the entire list of packages from the Magento connect administration interface. They were here, that’s for sure, but they were not the only ones hosted in this repository : a countless number of packages looking like testing packages were there in this repository too. Here’s the available list in 2011, May.

  • Blah
  • Channel_Test1
  • Core_Test
  • dfg56456
  • dsdsdssdfdsf
  • e
  • Find_Feed
  • Interface_Frontend_Blank
  • Interface_Frontend_Default_Blank
  • Interface_Frontend_Default_Default_Blue
  • Interface_Frontend_Default_Iphone
  • Interface_Frontend_Default_Modern
  • joejoe
  • Lib_Google_Checkout
  • Lib_Js_Calendar
  • Lib_Js_Ext
  • Lib_Js_Mage
  • Lib_Js_Prototype
  • Lib_LinLibertineFont
  • Lib_Phpseclib
  • Lib_ZF_Locale
  • Locale_Mage_Core_da_DK
  • Locale_Mage_Core_de_DE
  • Locale_Mage_Core_fr_FR
  • Locale_Mage_Core_no_NO
  • Locale_Mage_Core_th_TH
  • Magento_Extension_Test_3
  • Magento_Mobile
  • Magento_Mobile2
  • Mage_All_Latest
  • Mage_AmazonPayments
  • Mage_Checkout
  • Mage_Chronopay
  • Mage_Compiler
  • Mage_CoreTest
  • Mage_Core_Adminhtml
  • Mage_Core_Modules
  • Mage_Cybermut
  • Mage_CybermutExt
  • Mage_Cybersource
  • Mage_Downloader
  • Mage_Eway
  • Mage_Flo2Cash
  • Mage_Ideal
  • Mage_Ogone_Official
  • Mage_Oscommerce
  • Mage_Paybox
  • Mage_Protx
  • Mage_Strikeiron
  • Michael_Test
  • Michael_Test2
  • Mobile_Admin_Panel
  • My_Magento_Extension_Test
  • new1
  • new3
  • new_extension1
  • Old_Core
  • patsanchik_com
  • Phoenix_Moneybookers
  • rondatatest2
  • rtyrtyyrt
  • sadasdasd
  • sample name
  • Sample_WidgetOne
  • Sample_WidgetOne-0_0_1
  • Sample_WidgetTwo
  • sdfdsf_dfdfd
  • show_maintainers2
  • Snowcore_CommunityTest
  • Snowcore_CoreRedesign2
  • Snowcore_CoreRedesign3
  • Snowcore_Includepath
  • Snowcore_Newpacktest
  • Snowcore_RssReader
  • test123bbk
  • test3
  • testets
  • testing
  • testi_m_trying__but_some_idiots_in_the_yard_dont_want_me_
  • test_-_Jan01
  • test_1
  • Test_Extension_By_Alok_Just_For_Fun_Yeah
  • test_extension_one
  • tet
  • ttt
  • volik_test
  • Xml_Connect

As a consequence we’re free to ask how setup tests are done…

These are to my opinion historic sources, but honestly, they have nothing to do on a production environment.

I guess one day the channel will be cleaned, but I made this remark to myself more than one year ago, and regrettably it still hasn’t been corrected.

An “Apple Store” model type

Extensions offered on Magento connect are distributed under two kind of licence: commercial or community. The community kind is free of rights, whereas commercial extensions may be sold as a payable product.

Unfortunately, it’s not yet possible to try the payable extension within your project context : you have to buy it first.
So we are again in the same model as with the Apple Store, where if you want to try an application, you have to pay for it first.

Of course, some companies offer to refund their clients, but regrettably not all of them do that.

And sometimes this extension that looked so well corresponding to your need turns out to be a hoax, or will require some important rewriting work which lessens the real interest of its purchase.

No validation of the extensions

Unfortunately, once proposed the extension is offered unchanged : it will be visible in the Magento connect repository.

This of course exonerates Varien of the validation of a large number of modules, which would surely be tedious according to the number of contribution.

As a result, anyone who feels like contributing, whether he’s really expert in this technology or if his only knowledge is about templating or setup, will be able to offer his work to the community. Despite a vote establishment about the extensions on the magento connect site, no other comment will be available.
And that’s the real drawback of these extensions : quality’s not here…APIs aren’t respected, configuration system are non-existent, and worse, versions are mentionned compatible although most of features generate bugs or induce a loss of fonctionnality, and all of this leaves you with a bitter taste in mouth…

A most risky submission

How complex is this to submit a module !

First, the generation of the archive to provide. Basing on Pear, you have to provide a PEAR package. How do we generate it ?
Most Magento versions embed a feature in the back-office that allows creating its own pear archives. But this interface is really complicated to use:

  • the mentioned fields expect some values, some format, that are not explained. Therefore you search, you try (desperatly) to find…
  • the picking of embedded files in your archive is done manually. So you have to choose one after the other the directories and files to add.

If your project has got many css, javascript files, etc..it will take a lot of time to pick all those files. Morever your interface could become less readable. In short, you will loose time and increase the risk of making a mistake.

Magento connect for entreprise edition ?

Magento is distributed under two licences : community opensource and licencied enterprise. This second edition has got more features and a technical support in addition to the first edition.

But I haven’t understand why in the history of this release, why we should wait the 1.9.0.0 version, the fourth major release of the enterprise edition, to be able to use the same automatic installation setup than in community? You pay 9000$ / year for a license and you can’t access to magento connect repository?

Now, new releases embedded the installer, so we can install extension coming from magento connect. But it’s still lock to magento connect repositories, and so, for commercial extensions, we have no choice to provides our own setup system. For me, giving source to an enterprise which pay my extension require at least to have an automatic setup system (Some companies which develop commercials extensions have found a solution by selling also installation support, perhaps I should do that :))

Quality of the offered extensions

The submission process to the community must be done directly from the interface of the clients accounts on the Magento connect website.

Everyone can leave there its archive, and the day after, the package is visible on the repository.

But we’re in the end in a Drupal-like model, where contributions are not checked : documentation, setup process, quality of the feature enrichment, everything depends ont the good will of the community developers. And unfortunately, it’s clear that the quality of the extensions is sometimes unsatisfactory : one of the Magento’s asset is that you can overload a part of its working to adapt it to your needs.

But with this mechanism, only two overloading can be done. This will become a problem for objects that represent data which are frequently adapted : I think particularly of products and categories.
Developers often use shortcuts to overload Magento objects.

This will work once, possibly two, but thereafter if a third element should be overloaded you would have to do refactoring in the sources of the modules that you set up. Annoying, if you’re not a technical profile, and the gain of time you did is not as intereting as it should have been.

I frequently heard “We’re gonna developp this on our own” because of these problems, me first.

Varien, do you really feel like using PEAR?

With the new version v2 of the installer setup, mage (available since v1.5 community and v1.10 entreprise) we were hoping for being able to use at last the new features.

Regrettably, these new features aren’t included : this setup is only a rewrite of a previous version.

Yet this seemed at first interesting. But the API backside is incomplete : the announced features are the following :
Listed commands in Magento mage Installer

However, the features of authentication management to a pear channel, and of pear channel setup using a local configuration aren’t available.

Example of the doLogin command in the Magento mage installer

Is it a choice of the editor ?

And the best

Some very interesting extensions

I have found some very interesting modules which are almost clean for me and yes, they provides me the expected ean of time on my Magento’s projects.

Just a few example, the Embedded ERP module from the “La maison du Logiciel” is really well done. After tasting many bad extensions, I keep a little hope to have some valid modules 🙂

Magento enterprise developper

It seems that Varien start to saw that it’s very difficult to find some module with great quality and so some enterprises are validated as develop with the good practices. The modules developed by theses enterprises have the following label in Magento connect:

With this logo, we are sure that this extension will work fine

Growing community

On the other hand, I extremely appreciate watching this community grow increasingly, and seeing some extensions included in the Magento core. This proves that the quality of the extensions enhances gradually. Unfortunately, beyond the technical mistakes that may be observed in the poor quality modules (which often are algorythmic errors, or programming errors in general), most mistakes are conception errors due to the lack of knowledge about the APIs of this product : no documentation, not every module is compatible with the available versions of Magento, all of this brings the community to develop its own modules on “THEIR” version, on their own, for their projetcs, without thinking about making it evolve and live.

Conclusion

Yes you probably found that I’m very negative with magento connect. But it’s a shame that this tool does not provides which we can expected.

As far as I’m concerned, the magento connect observation results in a failure :extensions laborious to generate, poor quality of some of them or requiring technical profile to set up, all of this must be taken into account when you think of one of those extensions that seems promising on the repository but that you never tried.

Morever, this concept still lacks of ressources at Varien to be well-administrated : I don’t know the dedicated number of persons at Apple to manage their repository, but I absolutely understand that at the time Varien didn’t have at his disposal the required ressources to correctly administrate it.

I don’t know if we could have an automatic and reliable installation process for theses modules: by three times I have requested directly to some importants guys in Varien the problem we have to provides fiable setup for commercial modules and asked them which is the future for pear / mage installer, but each time I have no answer…

I just hope than E-bay will understand that a more reliable / flexible / automatic / sure deployment system could be benefit for the plateform: I don’t wants a repository like drupal’s one, but like wordpress one!

Let’s hope for a better future for the next few years 🙂