Skip to content

Magento is Messy

2010 November 8
tags: ,
by Joe

Magento is a PHP Zend-based ecommerce solution. Go check out their site.

Looks great doesn’t it? Magento most certainly is NOT great and this post serves as an additional warning (there are a lot of them out there now so I am just piling on) to those that are considering it for anything. These notes were made against v1.3.2.4 so some of it may have improved though I doubt anything substantive.

Feature Dice

For all the chatter about how feature rich and impressively architected Magento is it lacks a lot of features. A sampling:

  • You cannot delete an order (without directly hitting dozens of tables in the DB to do it manually).
  • You cannot directly change the status of an order (without hacking on some core config files to make this possible in a buggy way).
  • You cannot edit an existing order directly.
  • You cannot control the initial order status of orders in a custom way.
  • Canceled orders still show up in all sales reports.
  • You cannot export orders in any format.

Technical Stuff

Lots of flawed stuff going on with the general structure of this thing as well:

  • Magento is SLOW. Check out this post where they proudly trumpet 5 requests per second in a new version. 5 requests per second? That is some horribly slow stuff.
  • Related to the above, they pointlessly used a poorly implemented EAV model for the database schema. In practice their schema generates dozens of joins on every query, makes it borderline impossible to figure out manual SQL queries, forces you to use their PHP objects to build up queries, and most importantly ensures that literally dozens of database queries run for every single page load.
  • The worst combination of convention and configuration imaginable is in play. You must configure EVERYTHING with countless, verbose objects and huge balls of XML to stitch everything together and then they put a vast, undocumented layer of conventions on TOP of all that configuration to ensure no one can pick up the system easily.
  • Theming Magento requires creating dozens of files in multiple folder hierarchies and modifying way too may configuration files. It is a really heavy weight process though at least this side of it is better documented than the rest.

The main overarching problem with Magento? It is overwhelmingly a vehicle for drumming up consulting and support contracts. I suspect most of the above pain points go away if you are willing to pay the $3k – $13k every year for a commercial version plus who knows how much for consulting on top of that. Its creators have no desire for anyone to pull down the software and do something useful with it without paying. The support forums are deadly silent, even the most trivial of plugins (or plugins to fill in sorely lacking features that should be built in) cost hundreds of dollars, and useful documentation is painfully difficult to find. Magento is an incredibly impressive accomplishment of architecture astronauts trying to see how complex they could make an ecommerce solution. This is the most closed and uninviting open source project I have ever encountered.

Side note, this guy’s blog is probably the best documentation I have been able to find so if you are stuck working with this platform his posts are absolutely worth a read.

That’s all I have to say about Magento. It absolutely has some positives and some very powerful features but you should stay away if you aren’t willing to pay big money and consider another solution. I would recommend checking out a hosted solution like Shopify or Core Commerce.

2 Responses
  1. December 13, 2010

    LOL, quite correct – I themed a site , in accordance to there documented standard then when the customer did an update the site died. The reason why the theme contains code not just placeholders for content. So as long as you never update your core software you can keep your theme. And BTW expect 10 new releases a year.. As icing on the cake they added a disclaimer to each file of the themed pages stating that they may be updated as part of a version upgrade.

    As far as the data goes, it is in the database, but they use an EAV table structure for the majority of tables so getting it out (ie. using a external reporting tool pointing to the database) can be ahhh enough to drive one CCCCCrrrRRRRRaaazzYYY.. So actually the software ends up being quite financially beneficial to freelancers like me..


  2. jed permalink
    January 4, 2011

    Web devs love Magento! It’s a great billable hours generator!

Comments are closed.