Magento thoughts, strengths, weaknesses, best practices, when to use

I have a lot more to post about Magento in the near future, but I wanted to spend a bit of time just giving some general feedback and what considerations to take into account when assessing whether it’s the right solution for you or your client.  I am by no means a Magento expert, but after implementing it for a couple small business clients I’ve seen some of the strengths and pitfalls of using it, both for them as well as a developer/consultant.

Magento is an incredible package that has a community edition offered for free by Varien.  As the typical story with free software like this, Varien has an expensive enterprise version of Magento as well as customer and developer support for the community edition.  The current version of Community is 1.4 and it’s a fairly polished package.  The previous versions did work, but there some persistent bugs.  Extensions for all the versions, both free and paid, are available to extend the functionality of the base package.  I’ve found the extensions to be great, with only one problem which I will point out later.

Magento 1.4 is a 78 MB package with 12,574 files, and those aren’t all  image files.  There are approximately 214 tables in the database.  It’s a very complex package written on top of the Zend framework.  This needs to be pointed out because installing and running this is not like installing and extending WordPress.  For a developer who hasn’t spent much time with such a complex install and the Zend framework I recommend spending some serious time getting familiar with it under the hood to see whether you are comfortable dealing with it.

Magento’s strengths:

  1. Free
  2. Very capable out of the box and endlessly customizable
  3. Backend Admin is fairly intuitive for novice users
  4. Good SEO out of the box (depends on theme used though)
  5. Good support for merchant and shipping services
  6. Importing products can be fairly easy
  7. Fairly large community for help
  8. Lot’s of useful extensions/plugins available

Magento does have some weaknesses:

  1. Since it’s free professional support must be paid for
  2. Very large complex install
  3. Tends to be slow, requiring a fast optimized server
  4. Upgrading can be a painful process.  Very painful.
  5. Upgrades typically break themes and features.
  6. Importing products can also be a total pain.
  7. Out of the box the front page functionality is very weak, for instance no featured products, top sellers, latest additions functionality.  Cannot edit the front page easily like you can in WordPress, which isn’t great for clients seeking independence from their developer.
  8. Additionally, the DateFlow engine is a bit overkill for some operations like updating stocks, which I’ve had to rely on a custom script to accomplish correctly.

The biggest problems I have run into:

  1. Upgrading versions.  I’ve found, and I’ve seen this with other web software as well, that upgrading from successive versions have a higher tendancy to fail, usually because of files, and Magento is no exception.  I will talk about how to deal with this in a future post.
  2. Plugin unsupported in future versions.  This is especially problematic if the plugin is for your merchant gateway.  Either be really good at writing SOAP extensions or use one of the default merchant gateways.
  3. Filtered navigation breaking.  One of Magento’s greatest features.  Did have problems in 1.2 and 1.3 versions which I believed were fixed in 1.4.  There is a nice remedy for this though that will be in a later post.

I will post about best practices in detail at a later date, but I will give two away right now, and I can’t stress this enough.  Always always always test your feature updates and upgrades on a development site and do your upgrades in a staging environment, no matter how minor the upgrade.  I cannot stress this enough!  Secondly, use Git for SCM, learn how to use it if you don’t (Peepcode has a great screencast, and I know Tuts+ have tutorials), spend a lot of time making a good .gitignore file (it will be big, I’ll post mine here or on Github later).  Using Git in my mind is crucial to keeping your head straight as you develop your template views, controllers, and config files.

Lastly, I want to touch on whether Magento is the go to choice for a ecommerce solution.  For small business I’m a bit torn on this now that I have a few years under my belt with Magento.  I have been able to quickly deploy sites with it, and the built-in functionality is awesome, but it’s also caused me more then a few headaches.  I think for any client just venturing into being an online retailer where there is no sense of the volume of online sales from a cost standpoint might be better off looking at a Yahoo store, which is priced by business volume, or the new Adobe BusinessCatalyst package.  My current clients have been very happy with Magento and I think it has been the right solution at the time, but for new clients I will always consider these alternatives.

This entry was posted in Featured, Magento and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>