Initial Thoughts on the Magento E-Commerce Platform

December 4th, 2008 by Jim Keller

This past week, we have been working to integrate Magento as a shopping cart and complete E-commerce solution for two of our clients. This is our foray into the world of Magento, after having used CS-Cart for E-commerce deployments in the past.

Magento Demo Store

I chose to go with Magento this time around for several reasons. First, after browsing the documentation, a little bit of the code, and the administrative backend, it was immediately apparent that the software architecture of Magento is superb. It’s written on PHP and built on an MVC framework, and here at Context we always strive to work with as much Model View Controller code as possible. However, proper software design alone isn’t enough to push me toward a given product. To maintain our time frames and ensure that our clients receive a deliverable that can offer ROI as quickly as possible, any third party products we implement also need to have good documentation and an easy to use administrative interface, especially since we’re going to be training clients on how to use the system once the site is ready for deployment. Finally, one of the projects called for very specific custom layout design, and I felt that Magento had the most robust templating system of its competitors.  Since all of my initial criteria were met, I decided it was time to move forward.

The installation itself is as easy as it can be, though you need to make sure that your PHP and mySQL versions are somewhat recent (PHP 5.2+ and mySQL 4.20+). We were able to get Magento up and running on both our local Windows XP environments and our staging server, which is currently running FreeBSD 6 without any headache.

Magento Admin Panel

Magento Admin Panel

As I mentioned above, Magento has a very robust templating system. However, this templating system is what’s probably going to cause the biggest learning curve for your development team. I won’t go into too much detail, but in order to provide extreme levels of customization without hacking up the code with if/else blocks or switch statements, Magento uses xml based layout definitions (or “blocks”) that apply dynamic data (e.g. products, categories, etc) to “skeleton” PHP templates that mainly consist of placeholders for the blocks. It will be a little confusing at first, but it’s worth getting over the learning curve since the extensibility is almost limitless.

Magento also offers a nice built-in CMS, though we chose to deploy Magento to a subdirectory beneath our already content-managed sites, one being written in ExpressionEngine, the other being a custom Fuse-based CMS we built ourselves. We integrated each one differently in order to product the same result. For the Fuse-based CMS, we were able to include the Fuse bootstrap and templating engine in Magento’s PHP-based template files, giving us full access to Fuse functionality from within Magento. ExpressionEngine didn’t play as well with Magento directly due to naming conflicts and such, so we chose to use jQuery to load content from individual ExpressionEngine files (e.g. the header and footer) via AJAX. Each is working well so far.

At this point, we’re about a week into these Magento projects, and things are going well. Acquainting ourselves with the template system definitely caused some head scratching and foul language at first, but I think we have a good handle on it at this point. I know Steve, one of our developers, is having an image uploading issue in his local environment that he hasn’t pinned down, but image uploading is working fine on the development server. I’m looking forward to the launch and hoping that Magento delivers as well as I expect it to.

Enter your email address:

Delivered by FeedBurner

Add to Google Reader or Homepage

Tags: ,

4 Responses to “Initial Thoughts on the Magento E-Commerce Platform”

  1. ConvenientGadgets Says:

    We’re thinking of switching to Magento from ClickCartPro. We’ve heard that early versions of Magento performed very slowly. Do you have any feedback on the performance on Magento based on your experience so far?

  2. JimKeller Says:

    After a few weeks of working with Magento, I would say that my only complaint is that the performance is a little bit lacking. However, we’re running it on a fairly modest server, and I know the performance issues are a top priority for the Magento development team. I trust that the problem will be alleviated, and the speed isn’t unbearably slow, so the benefits of Magento far, far outweigh this one (temporary) downside, at least for me. Magento also has excellent support for clustering, so it can scale in that respect.

  3. anaemdekdeque Says:

    Hello. Your site displays incorrectly in Explorer, but content excellent! Thank you for your wise words:)

  4. admin Says:

    Thanks for the heads up about IE – it looks like some MS Word formatting had made it into one of the posts and was causing IE to behave erratically

Leave a Reply