Monday, October 8, 2012

Why We Moved Our Rental E-commerce System To Magento


History: We do a lot of client projects for E-commerce using our rental e-commerce solution Sales Igniter. We started in 2002 using Oscommerce which was then the go to open source E-commerce system in PHP. We used that for 5 years, but were very disappointed in how the Oscommerce source code was not maintained much, it stayed pretty much the same. Many clients wanted extra features and contributions added to their site, so what we found was that contributions were many times full of bugs and conflicted with one another.

So in 2008 we started off on developing our own E-commerce framework. Our goal was to create something where client customizations could be kept separate from our source code. Because if you are a developer, you know that clients will ask for some pretty crazy stuff and it doesn't make sense to put it into the base. For our new framework we used Doctrine ORM to make it easier to work with the database. We developed our own custom overwrite system so that client code would not interfere with our main rental software framework.

Being a smaller company, we found that it became way too time consuming to maintain our own E-commerce framework. We had also experimented building our own WYSIWYG visual template manager for the design portion of Sales Igniter. This was a big time hole for us as there were some issues with loosing sessions and sometimes the template code getting lost as a template was saved. We began to realize that this was not the way to go and began to investigate other solutions. We considered going to Ruby on Rails and using the Spree shopping cart. We also considered all of the top PHP shopping carts: Prestashop, Magento, Open Cart, Tomato Cart, CS Cart, and Virtuemart.  http://www.itwebexperts.com/oscommerce_zencart_xcart_comparison.php

The problem was we were spending 95% of our time on maintaining the shopping cart and 5% of our time developing and improving the rental portion which is way out of balance. We were no longer able to run a profitable business because of this imbalance. So though it pained us we knew something had to be done and we’d have to move to another framework. After considering all of these options we decided on Magento for the following reasons:

1. Largest number of available extensions of any of the open source shopping carts for adding things like gift certificates, caching (speed improvement), analytics, advanced customer groups, ebay/amazon integration, points and rewards, design templates and mobile device templates, shipping & payment modules, Social Integrations, and more.

2. Magento has an excellent overwrite system built-in for adding extensions like our rental system. This prevents other modules from interfering with your extension and breaking it when you add others.

3. International Language Support is part of the rails framework. You don't want to know how many hours we spent building onto and enhancing the languages feature in our PHP rental solution. We had it using XML files, translating these dynamically in Google Translate API and then storing these and then built an editor so clients could put in better translations for where Google Translate didn't really do it right. Well that time hole is now gone.

4. Encourages correct coding methods MVC. A problem probably all web development companies run into with their employees is that they get lazy and start hardcoding things, putting code in the wrong directories, and your codebase will start to get junked up. Magento actually makes it easier to code the right way from the start - so your programmers will be encouraged to code the right way from the start.

5. QA & Unit Testing support is built-in. QA is a huge pain. If you add even a simple thing to an app, maybe it will break some obscure thing elsewhere in your system. Well Magento solves that by having a great way to add test code built-in. It doesn't take long to learn how to do and is standard.

6. Excellent cache and index system built-in to the core for great speed. Caching is very important to any modern web app as there are over 10,000 files and huge database arrays which can clog up the cpu of any server no matter how powerful it is if you don’t use proper caching and indexing. 

Please checkout our rental e-commerce shopping cart and see what you think. A free 30 day trial is available.