Magento is a relatively new system to the open-source ecommerce world and it’s gotten rave reviews from many people. There are several good ecommerce systems such as OSCommerce or Zencart that have been around a long time but suffer from old coding, lack of features and poor SEO out of the box, so I was very interested in giving Magento a try, as we currently develop almost exclusively for ecommerce with OSCommerce, and I’m always on the look for good new technology that may benefit our clients. A good opportunity arose to give Magento a try with a pro-bono client recently, and here’s a recap of that experience.

This project needed the ability to easily add downloadable products, have easy content management abilities for site pages, offer the ability to upsell on checkout, work with Paypal (the client’s payment preference), and work pretty much out of the box since the client couldn’t afford a lot of extra coding time. Since OSCommerce downloadable products were not real user-friendly (files have to be manually uploaded via FTP and linked to, which is more complicated than most non-techies want), and I’ve never been really a big fan of OSCommerce’s attribute handling, lack of search engine friendly URLs and no built-in support for upselling, I figured this project wold be the perfect opportunity to give Magento a try. It claims all of these features "out of the box."

So we attempted to install Magento on the client’s webhost, which was a cheap shared service (I know, not ideal for ecommerce sites, but this client was on a very tight budget). Well, Magento wasn’t having any of that – it wouldn’t even install, despite the host supporting all of the server requirements for the system. So, we switched to another cheap host, only to later find that they didn’t support InnoDB, which is often not supported by low-end hosts due to the load it puts on the server, despite being a pretty cool technology. So, we installed a version of Magento released earlier this year that did not yet require InnoDB, and voila, it installed. The installation process went very smooth – as I would expect a modern system to. We eventually had to move the site to our server though, as the second cheap host just didn’t have enough pep to allow Magento to run well, as it is a bit of a resource hog. This experience was in the back of my mind when I wrote about "The 5 Reasons Cheap Web Hosts are the Devil." Anyway, once on our server, it ran pretty well.

The next challenge was getting Magento set up and a template installed, as this client did not have the budget for a custom design. We purchased a $180 template, and to our disappointment, the documentation that came with it was very poor, and the theming system, although I’m sure it’s very robust, was a beast to figure out compared to the very logical was OSCommerce handles integrating themes, although it does involve cracking open a few PHP files. Although installing the template was very easy, the layouts didn’t seem to work out of the box like the screenshot shown. This may be more of a problem with the template creator than Magento though. But, we had a bit of a time beating this theme into submission. 

Once we got the theme working as we wanted, the next step was loading products. All went well until we realized that all of the MP3 products and samples that we uploaded got "automagically" renamed by Magento, and unfortunately renamed to names that already existed, thus overwriting previous files! So we had 30 products that were all using the download file from the last one uploaded chronologically. Do’h! After playing with it forever and searching the web, it turns out that Magento utilizes Flash technology for the built-in uploading of files, and it just so happens that version 10 of Flash broke this ability in Magento. This really disappointed me. It doesn’t make sense to me that a system would tie in a critical feature like uploading products to a technology that will inevitably change, and installs on the client’s computers, which you have no control over. Because this was an issue with Flash, there was nothing we could do….so we ended up using the remote file options for products, which was one of the reasons I wanted to use Magento, as this was the way OSCommerce handles uploadable products.

Once we got the products loaded it was time to get checkout working. The Paypal checkout worked flawlessly, but unfortunately the email that goes out with links to the purchased product showed a link to the product three times. This appeared to be a problem in the core of Magento with no easy fix, and the code was not documented very well. We are still waiting to hear back on the Magento forums if anyone know what that is about. I was disappointed that a more modern system required manually editing template files to change the default store name from "Magento Store." The system has a place to put in the store name, why not make the template files use that with a variable? Anyway, not a big deal with a little search and replace – just annoying.

After getting that all set up, the next part was trying to get upselling set up so that when a user checks out, it encourages them to look at other similar products that are higher in cost, to improve profit. Unfortunately, neither upselling, cross-selling or multiple downloadable files per product seemed to work, despite me watching the Magento video on how to set it up (The video series are very well done, however). Again, I’m not sure if this was a theme incompatibility with these features or not.

So all-in-all, Magento is very promising. The administrative side for tracking sells, customers, etc. is very slick. It has a nice Google Analytics-like graph showing sales on login, and things are organized pretty well. Also, installing the FCK graphical editor for the content management system went fairly well (The Magento Connect auto-install of add-ons was very nice), although image uploading required some hacking and didn’t work at all with the TinyMCE (Our preferred) editor. As with any system, the first time you use it, there is a pretty steep learning curve. I’d expect that the next time we tackled it, it would go smoother. The things that really disappointed was the lagginess on servers (high server requirements), the whole Flash integration for file uploads issue, which to me was just conceptually the wrong approach – the lack of clear code documentation and just the general bugginess out of the box.

Will we be ditching OSCommerce as our mainstay for ecommerce in favor for Magento? Not likely anytime soon, but I do intend to keep my eye on Magento as I see some real possibilities for this system in the near future once it matures a little more. I really like how you get a number of features out of the box that would take a good deal of hacking to OSCommerce to achieve.  I’d definitely recommend going with a very high end shared server, or even better, a dedicated server environment if using Magento, however. And be aware that it has a pretty high learning curve and be ready to wrestle with it a bit since many of the features that are present out of the box may not work the way you’d expect. So working with a tight budget may not turn out so well if you’re paying someone else to do these things for you.