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?






























I totally agree–Magento is super flexible, but like most software flexibility, it adds a lot of code complexity. (I have first hand experience there as well
)
Ultimately, I think Magento’s documentation could be better across the board, but I also see how someone could potentially build an entire business around the customization and implementation of Magento sites across the web!
I love the interface though. Very slick!
It’s a powerful and flexible system, but the EAV database model they chose makes the system terribly slow. Also, there is far too little separation between display and logic, meaning that templates are very brittle and liable to break when the Magento core is upgraded to a newer version.
@Scott:
I agree that there is definitely some slowness in Magento and it is a huge resource hog. However, their improvements to their caching do seem to make a significant improvement to the site’s performance.
Also I think they realized some of the problems with the templates breaking at upgrade issues so they have changed how templates are done in their most recent version (1.4.x). Magento probably did not solve all the problems but I think they are working in the right direction.
Have you used the caching piece and seen performance improvements?
@Matt:
Do you think that the tutorial series that I link to is a big help in the area of documentation? I know that they were a huge help to me in understanding how and why things work.