Magento is probably the fastest growing e-commerce platform. There is good reason for this. It is free, provides lots of great features to end-users, and runs at nearly any hosting service. What could there be to not like?
We use and recommend Magento to our clients. One client recently told us how pleased they were with Magento in comparison to the last three e-commerce systems they used.
However, recently we discovered the dark side of Magento.
We had focused mostly on making templates for our Magento sites. This in itself is a feat because it takes a little while to understand how templates are pieced together with a mix of XML and HTML.
Then I was tasked with doing some real development for a Magento project. Immediately I learned just how steep the learning curve is for Magento. A simple task took hours of combing through multiple layers of inheritance and side-stepping to other referenced classes that had additional layers of inheritance. I frequently lost track of what my original goal was and had to backtrack till I could remember.
Finally, just as I felt like I was beginning to understand how stuff worked, I found a very helpful 7-part tutorial. When I read it all the pieces fell into place.
Although I still dislike how complicated the Magento code is, I have gained a respect for the flexibility the system has. I am impressed by the forethought that went into it to allow you to modify nearly every aspect – either through an event or a template replacement defined in XML.
What are your thoughts about Magento? If you are a user do you like what you get with the administrative interface? If you are a developer do you appreciate what the architecture allows?

















