Magento’s ungood.
Posted: November 30th, 2010 | Author: Deke | Filed under: The IT Life | Tags: FOSS, ITBack in the early 00′s, I had the responsibility of cleaning up a project that was way off track. At the time, I was working for EYC out of Brussels; our client was a specialty steel company who’s problem was simple: for each new order, find existing scrap from previous orders that could be used to fulfill the new order. It was a simple problem; the solution (in print) filled about 4 large binders. They (the code monkeys) had built a rocket to Mars.
My last remaining (ever!) PHP project is for the implementation of a Magento shop. The owners are friends of mine so it was with great pleasure that I offered my services. Now, a few weeks into it, I can’t help but draw comparisons with that recycled-steel/rocket-to-mars project.
Magento is overly complex. So much so that typically trivial things such as moving hosts, changing basic configuration, importing and exporting data, theming and extending, etc require heavy doses of sedatives and near-Papal patience. Here’s just a few specific examples:
- Themes. Themes and styles are in completely different locations making customisation a real pain in the ass. There’s no easy way around this; structure is in app/design/frontend/design/default/YOURTHEME with styles hunkered down in skin/frontend/default/YOURTHEME. Even using Nautilus’ tabs, this is a nightmare.
- Extensions. Want to include custom XML layout in your CMS WYSIWYG editor? Magento’s got that mastered.
- Configuration. This one rocks! Configuration is completely obscured (app/etc/config.xml and app/etc/local.xml) and is mystically merged together with other configuration settings from dis-joined locations; yes, including configuration from the DB. If you’re not a fan of simple configuration, Magento’s for you!
- MagentoConnect. Fans of WordPress’ cool remote installation feature might like this for about 10 seconds. It’s a built in extension-manager that sorta works. I’m not entirely sure who the audience is for this feature but if it’s for the site’s non-technical staff, prepare your diapers and stiff drinks for support calls.
- A class called Object. Oh my!
I could go on an on about how ungood Magento is. In their defense, I can tell they had two primary motivations (aka: they’re not stupid folks) for this architecture:
- Build a consultancy out of an open-source solution.
- Maximize flexibility.
Finally, I’d be completely idiotic to not mention that once everything is in place and you’re bald from the learning curve, things work. For an open source solution, that’s already something ain’t it?





Leave a Reply