views:

1071

answers:

4

We are looking at Magento as a possible commerce solution, but we are reading more bad than good on the free product. However Magento sells itself as the best thing ever, so I am confused on its actual value. Thought I'd ask the pros here.

Can any seasoned developer here explain the difficulties in using Magento not only as a commerce solution, but a CMS solution? Can it do easy content management like Drupal, Joomla, etc? If I wanted a custom list of products, is that simple or do you have to spend hours learning where to create the code? Is it modular in the way Drupal is where you can say, here is my custom code, and interact with Magento and change some of its function?

Is it difficult to conceive how it works from a developer, user, and customer standpoint?

We don't use Zend Framework and are not familiar with Smarty syntax (which I think Magento uses for templating). The risk in my mind is that the learning curve will be really steep (especially for the designers), and trouble tickets may take a long time to resolve (resulting in some pissed off customers).

Any thoughts from people who have used Magento extensively?

+12  A: 

The biggest win with Magento is they've solved a lot of common e-commerce programming problems really well. Payment gateway and shipping integration are top notch, and if you've ever struggled with a payment processor's poorly documented API or had to download a UPS "enhanced" PDF to get at their service information, you'll know that's worth the price alone. The company behind Magento did a ton of e-commerce consulting before building Magento, so they knew what kinds of things needed to be solved. These things are exposed pretty well from a customer point of view.

Magento has an incredibly robust module system for overriding, changing, and adding to core system behavior. Part of the negativity you see directed at Magento is people used to dealing with simple PHP scripts encountering a module system for the first time. Remember the first time you saw Drupal? (what's a hook? a node? Argh!) There's also a growing number of free and commercial extensions written for Magento the fill gaps people have in it's functionality.

The other big gripe is performance and cacheing. Magento pushes the edge of what you can do with OOP PHP code, and relies heavily of internal caching of objects and configuration to get acceptable performance out of the system. This caching that causes confusion for developers trying to learn the system. Also, you're not going to run this on a $5 Dreamhost account.

Magento uses some components of the Zend Framework, but it's a really a framework in and of itself. If you're familiar with MVC (CakePHP, CodeIgniter, etc.) patterns it's not that difficult to get up to speed on what they're doing. The template and skin systems are separate from the back-end module system, so the main gripe your designers will have is learning where the files they need to edit are, as well as learning the magical incantation to grab what they need.

Magento uses straight PHP for its templates, no smarty required.

End of the day? If you've got sharp people it's not that difficult to conceive of how it works, and it solves so many problems out of the tarball that it's worth the investment. Every system has it's crap to deal with. If you had a crap free system, you wouldn't be considering the switch. My biased, I do this for a living, advice is to bring in (perferably on-site) a Magento expert for your first project and let the team soak up as much knowledge as possible. A few weeks with someone explaining how it works it all you need.

Alan Storm
I see. I expect a learning curve and crap with any system, just trying to get a feel of how much crap and how steep a curve. I'm sure I could pick it up, but not in anything under 3-6 months (which I assume is typical with anything).
Kevin
+12  A: 

As Alan shows you the biggest win of Magento and its advantages I will play the devil lawyer and show why Magento is not that good.

Magento is complex

Magento is not the regular php script made by the new kid on the block, but developed by a company with good programmers. Is based on Zend Framework which is pretty complex in its term, although is not respecting ZF philosophy in all aspects. I did several ZF full projects before working with Magento and I was still find surprises in their approach, as sometimes they don't inherit from ZF objects and they should (Zend_Form and such) or their naming conventions feel familiar but actually represent different concepts. EAV model may appear simple at first view but extending Magento means working with it and you'll need to understand it well. OOP model is hugely complex and after some months working with it I still didn't saw a document that will explain exactly the processes that the Varient team is doing in the background.

Magento is heavy

6000+ files. Very long and complicated call stacks. Your server needs some power in order to process Magento calls. The fact is that Magento is not targeted at small shopping carts owner, but more to the upper level of the medium segment, owners that can affor dedicated servers, maybe a small development team and maybe a paid Enterprise licence.

Magento is (basically) undocumented

I learned more from Alan Storm blog posts (and others) than from Magento official docs. It is possible that this is on purpose as Varien is giving paid support but this is a pretty ugly fact. Parallel documentation that are better than the official one already exists. There are a few books but they are only scratching the surface. You'll spend most of the time digging for answers rather than coding.

Magento is difficult to debug

A lot of magic class loading is involved. Processes are not clear and they are very lengthy. EAV model makes all this even more difficult as data is coming from different sources and is difficult to follow. This adds to development time.

Magento is hip now

If we are going to be honest, Magento is the latest entry in the show and it gets a lot of publicity. We saw during the time the rise in popularity of other systems like PHPNuke, Drupal, Oscommerce or you name it. I never recommend putting all you eggs in one basket and dedicate to one CMS or shopcart, as the trends can change very fast. Magento is very well promoted and very well advertised and it fills a pretty big hole by itself. I am pretty certain that somebody will address all this Magento issues in a product that will be better, and that the market has a lot of space for another open source shopping cart.

Elzo Valugi
Thanks for unbiasedly explaining to me why so many developers whose opinion I respect *love* Magento, while so many developers whose opinion I also respect say it's a piece of crap (or rather, 6,000 of them :). This makes it very clear what Magento is good for, and what it isn't.
Pekka
my feeling over Magento is pretty common: a love/hate duality :)
Elzo Valugi
Thank you. Are there any comparable solutions out there beyond Magento and Ubercart?
Kevin
no idea as I didn't researched. in my company choosing Magento was a marketing decision, not a technical one.
Elzo Valugi
A: 

Since I cannot comment on the posts from Alan and Elzo, I'll 'answer' them with one personal observation.

The idea that Varien knew exactly what they were doing in the beginning is a fallacy. They made many rookie mistakes that we are still dealing with today. An example of these is in the VERY slow migration away from EAV on many of the core models. The EAV concept was good (arguable) on paper but bad in actual use and is the single worst part of Magento (IMHO).

I'll leave all the positive comments to you guys. ;)

Lee
+1  A: 

I've got about 10 hours, 3 fresh installs into it, and after trying all the forum suggestions for php memory...etc, talking to web hosting company..etc..it still isn't working well enough to use.

So 1.4.1.1 did NOT work 'out of the box' for me...even after the suggested mods. Too bad, the features looks great...but right now its making x-cart look good.

jeff