Posted on May 2, 2010
Magento for Ecommerce Introduction
So what is Magento?
Magento is an open source framework/application for E-Commerce web sites that is built upon Zend Framework. In the PHP world, Zend Framework is a very popular and highly respected framework. The great thing about Zend Framework is that it is first and foremost, a code library. Built within that library is an application layer that enables Zend Framework controlled MVC behaviour. However, you do not need to utilise this functionality in order to use Zend Framework thereby making it highly flexible. I digress..
Magento was originally designed to give businesses a platform on which they could provide an online solution for their commercial aspirations while also providing a highly extensive “Back Office” to administer the site from site design to product and order management. Along with this, Magento comes with a fully functional user area which is account management for your customers.
Varien (who own and develop Magento) have made the platform scalable by abstracting everything into objects and attributes. Attributes can be applied to any object and an object is an independent object who’s dependencies are not defined by process alone. This means that from an architect’s perspective, while we are primarily working in MVC (which is not my favourite architecture granted, but it works this time), manipulating objects on an API (Application Programming Interface) level is completely possible. This means that your developer can extend the platform to meet any business logic and work cross platform using any web service such as SOAP (Simple Object Access Protocol) or REST (Representational State Transfer). On some Magento projects, I have had to integrate with separate inventory and warehouse systems with 2 way communication between each system. The API functionality became essential at this point.
So WHY Magento?
Well this is a very difficult question to answer unless you as a company have a clear idea of what you want for your online store. However, thanks to Magento being completely flexible, it can be configured/extended/upgraded to professional or enterprise to suit any needs. There are also, like most CMS systems these days, a large backing from the community who develop plugins to add that extra functionality you may need or more importantly, want!
From a developer’s point of view, Magento follows programming best practises. The code is clean and documented and due to Magento utilising Zend Framework’s functionality for MVC structure with XML configuration, bespoke pacakges can be added with ease. In fact, Magento would teach budding developers crucial techniques for commercial development. For example, most applications will force you to copy code into a new class in order to add bespoke functionality. The XML configuration allows to add new levels to the class naming convention, meaning we can create local classes to EXTEND the main. No copying and pasting here! This means that when we upgrade Magento for new features and improved functionality, your bespoke code gets automagically upgraded too. A very nice feature for programmers indeed. Code should only ever be written once and be available everywhere it is needed.
Magento will happily either manage your static pages through its CMS system built in, but it will also become just a store front for the rest of your site. Due to it being completely open source, its appearance can be completely configured using normal web development techniques to integrate your style 100%.
Best of all – Magento Community addition is FREE! Yes you read right, gratis! This significantly reduces cost on using 3rd party software which means every penny can then be spent on all those extras you want. A fully functioning site with all your bells and whistles without the necessary time to build a system from scratch.
Sounds good to me!
Magento tips to follow…
For more information: http://www.magentocommerce.com/