Magento eCommerce Review

dwaadmin

Introduction

Executive Summary

The fastest growing eCommerce platform in the recent past, Magento is a PHP based Open Source eCommerce platform. Magento is also the youngest member of the eCommerce platform family; that said the brains behind the product have been around in the industry for quite a while - and that experience quite as well reflects in the product offering.

Magento offers a rather unique combination of a broad set for out-of-box ecommerce features and an intuitive user interface. This comprehensive feature set covers most aspects of an eCommerce solution including product and catalog management, order management, marketing and promotions, customer self-service, user management as well as customer support functions. These features not only allow merchants to deploy simple yet feature rich eCommerce storefront rather quickly, but also provide the backend admin interface with the toolset to allow you to manage your ecommerce operations effectively. This combination is not too common in the product segment that it is most popular in - the small and medium eCommerce platform segment.

Magento is well suited for direct to customer storefronts that offer a limited number of products to its customer like Boutique storefronts, single or Multi-Brand storefronts, Manufacturers and the likes. Magento however is not the best solutions for merchants who offer a large number of products (above several thousands) like large retailers or enterprises that need tight integration of eCommerce with their enterprise systems.

Magento offers three editions as well as a SaaS offering which serve as a cost effective alternative options for customers who are just starting on their eCommerce journey and are not willing to invest in large enterprise solutions.

Do remember that Magento has been dogged by performance issues and is also known for system complexities – the primary source of Magento’s limitations and shortcomings.

Vendor

Magento traces back its root to Varien Inc. – a company originally founded by Roy Rubin in 2001 and later joined by Co-Founder Yoav Kutner. The company worked on osCommerce (an Open Source e-Commerce project) however the team wasn’t too satisfaction with osCommerce as a platform. In 2006 Varien planned a fork from osCommerce but then later dropped the idea and decided to build a completely new e-Commerce platform from scratch. This development work began in January 2007 on what is now known as Magento and the first beta version was release on 31st August, 2007. The product was well accepted and the first stable release on 31st March, 2008. In January 2009 itself Magento was names as an ‘Emerging Player to Watch’ by Forrester in ‘Forester Wave: B2C eCommerce Platforms, Q1 2009’.

Varien was officially renamed at Magento in 2010, around the time when eBay bought a 49% stake in Magneto in March 2010. The minority stake buy out wasn’t officially disclosed until a 100% acquisition by eBay in July 2011. While the official figures are unknown, unconfirmed reports claim that the acquisition was prices at $180M US. This acquisition seems to have been part of eBay’s X.Commerce strategy and Magento is expected to be an important component of it.

While this is defiantly good news for Magento – the eBay support and funding will give Magento an opportunity to fire all its cylinders and accelerate its growth; do keep in mind that eBay has also recently acquired other ecommerce product like GSI Commerce (for $2.4billion) and Intershop (majority stake only of 27%).

Product

Magento is a PHP based Open Source eCommerce platform – licensed under Open Software License (OSL 3.0). Magento eCommerce offering is available in three editions – Magento Community, Magento Professional and Magento Enterprise edition. Of these Magento Community is the freely available open source editions; the other two are commercial open source editions - have an enhanced feature-set, maintenance, supports and come with a price tag. Magneto also offers a hosted SaaS service ‘Magento Go’ that helps customers gets started on their eCommerce journey rather easily.

Magento’s first stable version was released on 31st march 2008 and has been rapidly gaining popularity ever since. In April 2009, Magento launched its commercial open source offering ‘Magento Enterprise Edition’ – this version has a border feather set and complemented with a support services agreement. This was followed by the release of Magento Mobile platform in September 2010 – the platform allowed developers to easily create native storefront applications for mobile devices. These mobile apps tightly integrated with their Magento eCommerce platform.

Keep in mind that Magento is undergoing constant evolutions with new features getting added at a fast pace.

Technology

Architecture

Magento has been built on the LAMP (Linux, Apache, MySQL and PHP) however it also runs on Windows. Magento has been built using the popular Zend framework. One the most important unique selling point (USP) of Magento is its flexibility - Magento adopts OOPs standard, Model View Controller (MVC) architecture and Event-Driven Architecture (EDA) enabling loosely coupling of the various layers and components. Magento also implements Entity-Attribute-Value (EAV) data model instead of the traditional RDBMS data model. While these architectural decisions bring in significant flexibility into the system; on the down side they result in an equally complex system that’s a difficult to customize and extend. As a result the platform is also known to be sluggish and requires a heavy hardware footprint.

Architecturally Magento can be considered as a collection of modules – each module is an independent application implementing MVC. MVC implemented in Magento is not the traditions MVC implemented in Java or PHP – it implements configuration based MVC. This means that each module’s is governed by a config.xml – the module will only load the classes / configuration explicitly declared in the file. Unlike the conventional MVC is will not automatically load a class once added in the module codebase.

Magento model implements Object Relational Mapping (ORB) that allows you to manage your database directly from your PHP code – no longer need to write SQL queries. Nevertheless a Magento model also comprises your business logic – something that’s traditionally delegated to the Controller. Magento Models can be classified as traditional Table-Column-Record model and the EAV model that’ spans across multiple table.

Unlike tradition controllers, Action Controllers in Magento MVC do not pass data object to View. Instead, Views are broken up into Templates and Blocks (see Templates section). Blocks are PHP objects that handle data while templates handle the presentation of this data – it is a combination of HTML and presentation related PHP.  

Installation

Similar to other LAMP/WAMP offering, installation is a pretty straight forward process. Do however ensure that system prerequisites have been met.

Figure 1 Magento offers an easy wizard like step by step installation process.

Security

Out of box, Magento used its native authentication and authorization system. It allows you to register customer for your storefront as well as user for Magneto’s administration interface. Magento user management allows you to define your own custom Roles – these roles can be granted access to granular level access to individual Magneto resource allowing you to create a strong authorization model for your stores.

Surprisingly though Magento does not support integration with external or enterprise authentication systems like OpenID, LDAP or Active Directory. There are however extensions available from the Magento community that can help you fill up this void. Alternatively you could also leverage the Zend Framework plugins for this integration.

 

Figure 2 Administrators can define custom roles and grant them access to only the required resources.

Caching

Magento provides for a native caching mechanism that can cache various site components like configurations, site layouts, resource bundles / language translation files, Web Services definition, data collections and the most importantly HTML Pages. However do note that caching can only be enabled for these components at the site level. This means that every time you a change one of the items in the site components the entire cache set will be flushed and rebuilt eg. For change in one configuration file to take effect, you will need to flush all configuration file cache and rebuild the cache.

Figure 3 Admin interface can be used to manage/ which Magento components should be cached

Site Staging

Magento provides you the flexibility to stage your site on multiple locations before you actually make it available to your customer. This allows you to test your new site, a new product, category or a campaign - Magento creates a duplicate instance of your site data which is separate from your production data. Once through with the testing, you can publish the content manually or schedule the same. Magento also lets you backup you site before updating your site so you can quickly rollback the site to its previous state in case of any problems.

Performance

Performance has long been an area of concern for Magento – customers have often complaint of slow performance and the need for heavy duty hardware to keep performance under control. Magento has been built for flexibility – it has been developed as a decoupled system; uses the Entity-Attribute-Value data model and has rich AJAX based user interface. While all great features to have, it has its down side – adds complexity to the system and results in performance overheads too.

That said, and to be fair to Magento, part of the performance issues can also be attributed to the extension code contributed to the Magento the community. Being a complex system, it is important that Magento developers have good knowledge and experience of the tool. However that is not the case all the times – inappropriate code and SQL queries can be taxing on the system, drastically impaction performance.

While calculating your Total Cost of Ownership (TOC), make sure you have done your hardware sizing and capacity planning well – your hardware costs will be an important part of it.

Also make sure you test your extensions well and plan for rigorous performance testing of your solutions.

Merchandising

Merchandising is an important aspect of any eCommerce solution and Magento offers a rich set of merchandising features. These features empower the business users to build a comprehensive eCommerce storefront that can attract prospective customer and convert them to orders.

Business User Experience

Magento offers a separate browser based backend interface for all its business users like site administrators, merchandisers, customer support representatives and site designers. These users can be granted access to Magento resources based on their role in the eCommerce process and their level of authorization.   

Magento User Interface and User Experience is quite slick when compared to other open source eCommerce solutions like Apache OFBiz and osCommerce. The look and feel is quite intuitive while the information architecture is easy to get around with.

Business users are presented with a simple dashboard once they log in into admin interface that gives them a limited view orders placed, keywords being searched by customer and total sales. You could however customize this dashboard however that would mean overriding the dashboard module – extensive development effort.  

Product and Catalog Management

Magneto support multiple catalogs but you won’t need to create anything more than the default one unless you’re planning to have multiple stores. Magento allows you to create need basis catalog structure of categories and sub categories – there is not limitation on the depth of the structure. A Magento catalog category is unique within the catalog – it can’t be reused elsewhere in the catalog. That is however not the case with a product though – a product can be associated to multiple categories or sub categories within the catalog.

Figure 4 Admin interface can be used to create any number of categories, sub-categories as well as catalogs.

The entity-attribute-value data mode used by Magento gives you the flexibility to define any number of attributes for a product. Note that all attributes don’t need to be associated with each product. You can instead group related attributes into attribute sets and associate only the relevant ones to a product. This allows each product to have its unique as well as common attributes. e.g. while price and name are common attributes to all products; color and size may not be only be required for garments.

 

Figure 5 You can define custom attributes and attribute sets for products.

You can create almost any kind of product in Magento -from simple to complex products like bundle and configurable products:-

  • Simple product is the simplest form of product with no variations / configurable options. Eg a GI Joe 6” action figure; an Intel i7 CPU.
  • Grouped product allows you to group multiple products available in the store together. Eg a Superman 6” action figure and a Spiderman 6” action figure.
  • Configurable product allows you to select your product from the variants that are available. Eg buying a garment with several color and size options
  • Virtual products are non-tangible product or services rather that are offered to customers. E.g. PC installation services.
  • Bundle – are kits that can configured to suit your needs e.g. configuring your PC or Laptop
  • Downloadable – a digital product that are available to download immediately after the purchase. E.g. software, eBooks.

Another important feature provided Out-of-Box by Magento is Product comparison. Easy to configure, just make sure that the product attributes are comparable. Customers can compare products across the catalog (irrespective of their category or type) as long as there is at least one common attribute that’s comparable.

Figure 6 Product comparison can be enabled just buy selecting the product attributes that can be compared by the customer.

Pricing

Product pricing is just another attribute of the product and managed thought the product configuration itself. Unlike most enterprise class eCommerce product, Magento doesn’t allow the product pricing to be managed independently of the product attributes / catalogue. This means that your content authors managing the product information will also have the ability to edit product pricing – something that may not be desirable by enterprises where product specification and pricing are the functions of different teams.

Marketing Promotions and Campaigns

Marketing activities are broadly targeted to attract prospective customer to the online storefront and then converting them into actual orders. Magento offers a range of features that can help you with your marketing activities like private club sales including Events, Invitations and Category access permissions; free shipping option, multi-tier pricing for quantity discounts, bundled products, newsletters, landing page for campaigns, Up-sells in Shopping Cart, Cross-sells on product pages, SEF URLs, SEO tools and flexible coupons.

SEF URLs and SEO

Search engine ranking plays an important part in the success of any online business and that includes eCommerce. Magento auto generates Search Engine Friendly (SEF) URLs for your site, but you don’t need to get tied down by it. You have the flexibility to rewrite your site URLs and also to custom manage the Meta Information of our product and categories to suite your precise needs. Magento creates the Google Site Map that allows Google to easily navigate and index your site – a big plus for Search Engine Optimization (SEO). Magento also automatically generates your Site Map that facilitated easy site navigation for your prospective customers.

That said, be aware that the website performance (response and page load time) also has a bearing the search engine ranking.  Magento’s slow performance has been known to have a negative on the search engine ranking.

Surprisingly the Magento binaries that I installed on my machine didn’t come with the robots.txt file. This means that you will have to create one for yourself – better off you get some expert Magento advice to create one. Else the search engine robots could go haywire, create multiple URLs and end up impacting your search ranking.

Lastly, given that a product can’t be part of multiple catalogs, it means that your product can be accessed through multiple URL’s. So make sure you use Canonical tag ‘rel="canonical"’ to specify the preferred version of your product URL.  This gives you better control over the URL returned in search results and also helps to make sure that properties such as link popularity are consolidated to your preferred version.

Search

Not surprisingly Magento search is powered by Apache Solr search engine. Magento utilizes Solr’s faceted search capabilities that provide dynamic clustering of search results into categories, thus letting users easily drill down into search results.

You can use the admin interface to select the product attributes that can be searched. You can also use the admin interface to view the most common keywords searched, keywords that didn’t get the desired results or even the typing mistakes typically made by your site visitors. While these could typically result in customer dropout, you can instead use Magento admin interface to define synonym, spelling mistakes as well as URL redirect for these keywords.

Figure 7 You can select which product attributes are searchable; Magneto also supports faceted search.

Figure 8 Customer search experience can be improved by defining synonyms and URL redirect for keywords.

Recommendation / Rules

Magento does not offering a strong / fully functional rules or a recommendation engine. It however provided limited capabilities native rules engine component that lets you create marketing promotions and campaigns using ‘Catalogue Pricing Rules’ and ‘Shopping Cart Pricing’. Promotions created using the Catalogue pricing rules will be available to customer before they enter the shopping chart i.e. while browsing the products on the online store. The promotions created using the shopping cart pricing rule will be available to customer once they enter the shopping cart. Merchandisers can restrict these pricing rules and coupons to a stores, customer groups, time period, products, and category.

Storefront

Storefronts are functionally designed around Website, Store and Store Views.  A Magento website represents to the overall storefront rendered by a merchant. A website can comprise of multiple stores that provides for logical grouping of merchant offering – while you would typically have a single store, you might want to run different services line / brand / group company / geography offerings as a separate store under the same website. Each store intern can have multiple Store Views that could be used to render the same store in multiple languages.

Localization / Internationalization

Magento has been well internationalised to cover 60 countries–it supports multiple currencies, taxes and payment methods. The localization support is however limited to English, Spanish, French, Dutch, and German languages only.

Presentation Management

Storefront presentation is managed using Blocks, Layouts and Templates (see Template section). Magento offers two types of Blocks - Structural block and Content block. Structural blocks represent the sections that from the site page like header, footers, columns and the main content area. Content Block represents the data / collection of data that is to be presented to the site visitor. These structural blocks and content blocks are brought together by Layouts – it defined the overall structure of the site as well as positioning of the content blocks within these structural blocks. Templates is XHTML & PHP code that transforms the content block data and aggregates other presentation content like layouts to generate the final HTML that’s presented to the site users.

Magento also offers CMS module that for site designer to create site pages, static content blocks, banners, polls and frontend apps. These frontend apps are primarily provide navigational capabilities for the storefront.

Figure 9 Magento CMS module can be used to create instances of Frontend Apps.

Do keep in mind though that uupgrades and backward compatibility have historically been an issue with Magento - that includes template upgrades concerns.

Self Service

Magento offers reasonably sufficient set of features to magneto storefront customers – they can place orders and re-order goods, track order status as well as view order history. In addition customer can also manage their account details like billing address, shipping address, wish list and products tagged.

Collaboration

Site visitors can share their comments and rating for the products offered via the storefront. They can also tag products and even create wish lists. You would however need to look at third part offerings or extensions if you’re looking to implement features like Live chat, Click to Call and discussion forums.

eCommerce

Shopping Cart and Checkout

You can implement single-page checkout as well as guest checkout using Magento. You can also provide your customers the flexibility to ship to multiple addressees in a single order. Magento supports several payment options; you can also integrate it with a variety of payment gateways. While in your shopping cart, your customer can redeem discount coupons, gift cards as well as store credit. Magento also supports gift messages per order as well as per item.

Payment

Magento offers a broad set of options to choose from for accepting payments from your customers, online payment processing methods as well as offline. Merchants can choose to accept Customer Store Credits, Gift Certificates/Cards (Physical and Virtual), Bank Checks and money orders or Cash on delivery. Magneto can also be integrates with PayPal, Amazon Payments, Google Checkout or other payment gateway service providers like Authorize.net. Do note that Magento also supports 3D Secure Credit Card Validation.

Figure 10 Magento offers implementation of a variety of payment methods for your storefront as well as Paypal

If you want to store customer credit card information in any form or means, your system (hardware as well as software) must comply with this strict guideline laid down by PCI in order to be PCI compliant. Magento but itself is not PCI compliant, however it offers separate platform Magento Secure Payment Bridge that enables merchant to build online stores that are PCI compliance.  Magento Secure Payment Bridge is PA–DSS (Level 1) certified standalone platform and is approved to handle your customer credit card information. Available only to Magento’s subscription based users, Magento integrate with Secure Payment Bridge and offloads credit card information handling to it, which can then integrate with payment gateway service providers and process credit card payments.

 

Figure 11 You can also offer Gift Cards to customer and enable 3D Secure Credit Card validation for enhance security.

Taxation

Magneto allows merchants to accept orders from customer in most part of the globe and supports internationalization for about 60 countries as of today. Administrator can configure independent taxation for each of these countries, their respective state down to the level of zip code / range. You can also create multiple ‘Product Tax Class’ and ‘Customer Tax Class’ to define complex taxations rules.

Figure 12 Taxation module allows you to easily create complex taxation rules.

Order & Returns Management

Once an order is placed by the customer, it is available to the business user via the admin console (backend interface) for processing. The order view available to business user via the admin console provides several relevant filters to allow them to access a specific order rather quickly. The users can view and edit orders and even issue Credit Memos (refunds) if required; create invoice/receipt and shipment records for Sales Orders. The users can also place orders and cancel orders on behalf of the customer.

Backend Services

Stock Management

Magento can be configure to manage all the products in the store as well as selected products.

While Magento does not offer an elaborate stock management module, if suffices the need for most small boutique and small merchants.

Figure 13 Product inventory roles can be defined at the system level as well as individual product level. You can also indicate the starting inventory for each of the products which is them managed by Magento.

Shipping

With Magento you can ship to multiple destination from a single order, have multiple shipments in a single order; integrate with third party shipping service providers like UPS, USPS, FedEx and DHL for rates and shipping status tracking. You can also ship for flat rate per order or item or even by weight and destination.

Reporting

Using the backend admin interface you can run the most commonly needed reports to get a snapshot of the storefront around sales, order status, taxation, payment settlements, refunds, best seller products, products low on stock, new customers, frequent customers and customer reviews. The results can also be exported to CVS and Excel formats for further and detailed analysis of data.

Further, you can also run system reports to view the activities performed by users on the backend admin interface.

Analytics

Magento can be integration with Google analytics and Website Optimiser; run A/B testing as well as multi-variant testing. In addition you can also run reports on shopping cart (product in cart and abandoned carts) and search terms used by customers to understand user behaviour patterns on your website.

Customer Service

Beyond offering Self-service capabilities for the end users, Magento offers a reasonably sufficient feature set for Customer Support Representatives (CSR) that allowing them to help customer remotely / over the phone. CSRs are granted access to the admin interface where they have the same account view as the customer themselves. The CSR can view his customer’s shopping cart, wish list, products tagged, and product reviews submitted along with the customer account information like order history, addresses and profile. This allows CSR’s to resolve customer account and order related issue instantly and effectively that could intern significantly reduces customer drop out ratio and improves customer satisfaction. While the CSR is working with the customer, it also gives them a great opportunity to cross sell as well as upsell other products.

Magento does not support out of box integration with external CRM systems, it did offer a product called BridgeConnect back in 2009 however it was withdrawn soon after. There are a couple of extensions thought that provide integration with Sugar CRM and Salesforce.com – do test these out if you intend using them. Alternatively you can also leverage Magento WebSevices to write custom integration modules but this would mean extensive development effort.

Figure 14 Customer support representative can have the same view of customer account as the customer himself - like shopping cart and wish list.

Mobile Store

With the mobile adoption growing at a rapid pace, it forms an important delivery mechanism for eCommerce storefront. Magento can detect mobile browsers and render the mobile-optimized version of your site. You also have the option to build native app using Magneto Mobile for your customers using iPhone, iPad and Android. Magento Mobile is however a separately change offering where once the mobile apps are developed by you; it is tested and managed by the Magento mobile team.

Development & Design Capabilities

The flexibility built into the system results in significant complexities into the system. If the out of box solution does not meet your requirements and you are looking to extend the platform, make sure you employ a development team or Systems Integrator who had prior experiences with Magento development. Pure play PHP developers without the guidance of magneto experts could leave you vulnerable to security holes and even add to the already sluggish system performance.

Magento development is considered complex requiring an extensive development effort. Having worked with teams of over 200 resources on a large eCommerce implementation using ATG and IBM WebSphere Commerce, I think that point of view may be a bit over exaggerated. Magento is not your typical shopping cart solutions that can be implemented in a matter of hours. Magento is a full-fledged eCommerce solution that needs to be tailored to suit your eCommerce needs. So evaluate

Templating

Historically Magento’s theming architecture has been change v1.3 and v1.4 and then again between v1.7 and EE v1.8. While these changes have been good, they have been a cause of concern as it makes upgrades challenging thus a cause of concern in the community.

Vendor Services

Communities

The ease by one can scale up on PHP has been one of the important reasons why PHP based solutions have attracted large fan followings. And Magento is not exception. It has a very vibrant and active user base and several independent consultants, small boutique ecommerce shop flourishing around it.

Documentation

While there is a lot of good information available around Magento, it seriously lack as well organized documentation – one of the main reasons for this is that Magento Wiki is primarily maintained by Magento community with limited involvement from Magento team.

Licensing

Magento is licensed under Open Software License (OSL 3.0) and has three editions of its eCommerce offering – Magento Community, Magento Professional and Magento Enterprise edition. Of these Magento Community is the freely available open source edition, the other two are commercial open source editions that have an enhanced feature set and come with a price tag for maintenance and supports. Magento Professional edition starts at $2995 server/year, while Enterprise edition starts at $12,990 server/year.

Magneto also offers a hosted SaaS service ‘Magento Go’ that helps customers gets started on their eCommerce journey rather easily.

Summary

Feature

 

Operation System

  •  

Web Server

  • Apache

Supported Browsers

  • Microsoft Internet Explorer 7 and above
  • Mozilla Firefox 3.5 and above
  • Apple Safari 5 and above on Mac only
  • Google Chrome 7 and above

Database

  •  

Languages Supported

  • English, Spanish, French, Dutch, and German

Strengths

  • Surprisingly broad set of feature offered Out-of-Box
  • Multi-store and multi-lingual support
  • Website management through the think client interface with no need for additional installations.
  • Intuitive user interface facilitates easy user adoption.
  • A very vibrant and active user community.
  • A large developer community and a number of boutique eCommerce shops emerging around Magento.
  • Reasonably large set of extensions available.
  • Open Source offering with relatively inexpensive commercial offerings.

Weaknesses

  • A product that’s still in its early stages of maturity and is undergoing frequent design changes making upgrades / data migration a challenging task.
  • Magento has been persistently known for performance issue
  • Does not support Business to Business eCommerce scenarios.
  • Magento is seriously lacing in documentation and more specifically in organizing what’s available as of today.
  • Complexity of theming and development, Cost of development
  • While there are a large number of PHP developers claiming to work on Magento, only few have the experience and knowledge to work on it.
  • Very limited personalization capabilities are available with Magento.

Competition

  • osCommerce, BoradLeaf, Ubercart, Offbiz,

Target Audience

  • Boutique eCommerce, Multi-Brand and Medium size retailing.

License

  • Licensed under Open Software License (OSL 3.0), commercial version starts at $2995 server/year