From a development perspective we have chosen an e-commerce platform that we believe to easily be the best available at the moment for a LAMP (Linux Apache MySql PHP) environment. We are of course talking about Magento. Why do we consider it to be the best? Well the feature set out of the box is excellent, the enterprise like best practices adhered to when developing Magento (thanks should also go to the Zend Framework underneath of course) make it an excellent platform on which to develop (and upgrade). There is also a great community around Magento with many quality third party extensions and support where needed. Having said that Magento is by it’s nature is quite a large complex beast, especially in comparison to other PHP e-commerce systems. And as such can be a little slower than one might first expect. Both of these points however can be mitigated almost completely by familiarity with the system and intelligent use of caching.
One thing we love about Magento is it’s facility to override just about anything and the tempting fallback mechanism which we take advantage of when creating a new package/skin for the project at hand. We then go through the necessary pages and trim out any functionality not required (and turning if off via the XML layouts) then progressively adding the design page by page and function by function.
We like to start with home page (who doesn’t) and as we implement a page we get quick feedback from the client generally well before all the required functionality is even on page. We keep repeating this process gradually as we add more functionality to each page and move on to subsequent pages. As per the brief for the MiBolsa site we found ourselves removing a lot of default Magento functionality that we were just not going to use, at least not in this first instance.
Some interesting functionality we added were the next/previous buttons with representative images of the products. This allows the user to easily browse through a category of products without having to return to the category page itself. Also on the product page we kept the add to cart functionality quite simple yet graphical and interactive by introducing a moving element that appears in the centre of the page when the product has been added to cart. In a similar way we handled the out of stock functionality with a drop down that allows the user to contact us regarding the item.
The remainder of static pages, account pages and cart/checkout pages were all kept as simple and lean as possible. Again this was keeping on brief, but it is also a way in which we love to work, and that is by striping everything down to it’s fundamentals and only adding when and where needed, and hopefully with some evidence to support the inclusion. Too many sites now add every single piece of functionality they can simply because they can.
In the end we were very happy with the result and are looking forward to progressively tweaking pages based on customer feedback and of course analytical data.