Part 1: Analytics and ReportingSubmitted by Matthew Turland on Fri, 05/15/2009 - 07:00
The new kid on the PHP e-commerce block, Magento, has gotten a good amount of attention leading up to and since its initial release. I was recently entasked with doing an analysis of its features and thought it might make for an interesting series of blog posts. This first one will cover the Analytics and Reporting feature set.
If you're not familiar with Magento, this series won't assume much prior knowledge. If you need to get familiar with Magento, this series might help you, but I recommend checking out the Resources area of the main web site, the Guide to Programming with Magento book available from php|architect, or their official Magento training course.
Administrator Action Logging
Some time after the initial release, Varien began offering an Enterprise Edition of Magento. One of the differences between the Community and Enterprise editions is that certain features are limited to the latter. Generally, a company that takes this approach will limit paid-only features to those that have high value, but are also supplemental in nature. Ubuntu, Zend, and MySQL are good examples of such companies.
In the case of Analytics and Reporting, this restriction applies to logging of administrator actions. I don't understand what the reasoning behind this could be. Whether security is the feature's primary intended application or not, it can be used for that purpose. Security is a very real, very serious concern, and users should have tools available to them for monitoring their storefront activity.
Google Analytics Integration
Shortly after the last Magento release (1.3.1 on 4/17/09 as of this writing), the Google Analytics API was announced on 4/21/09. The API offers an opportunity to facilitate tighter integration and provide a more tailored user experience, an opportunity that I hope Magento takes in a future release. That would actually make this a much better contender for the Enterprise Edition only feature in this section than administrator action logging.
Admin Dashboard for Report Overview
The purpose of a dashboard is to provide summary information or quick access to features. The emphasis here is on the frequency of access. The contents of the Magento dashboard are mostly statistics that seem to lack a purpose, particularly for larger store fronts with high order throughput. It comes across as an area that, at the time of its design, everyone felt should exist, but no one knew what to put in it.
Magento's dashboard also offers no visible configurability a la Wordpress 2.7. The ability to choose and position modules maximizes the dashboard's ability to perform its intended function. While WordPress has certainly had its issues and growing pains in the past, I think most of its userbase would agree that its usability has only gotten better in the past few releases. I think a similar transformation is needed for this area of Magento to maximize its potential.
New Orders, New Reviews, and New Tags all have RSS feeds available. I'm unsure of how these are useful. People who want to monitor any of these events would most likely rather check them via their respective sections of the Magento administration area for new activity or receive e-mail notifications.
Reviews and Tags aren't currently included in the dashboard, which seems a natural place to put them since "Last 5 Orders" is already there. They also seem unlikely to remain useful for larger storefronts with higher throughput and simply add clutter to the interface.
This is a collective name I've chosen for a group of reports that deal mainly with incoming and outgoing funds. These include the Tax, Best Viewed Products, Best Purchased Products, Coupon Usage, Total Sales Invoiced, Total Sales Refunded, and Best Customers reports. They all share a fairly uniform interface, which is good for usability. Once you've learned how one report works, you pretty much know them all.
The table-based layout of report results isn't the most easily read thing in the world, however, and could do with a graphical equivalent to make it easier to view aggregated data at a glance. Think Google Analytics. Beyond that, a few more options in the existing features would be nice. A Week option in the Increment menu and a PDF option in the Export menu are good examples of this.
I refer to another set of reports by this name because they facilitate improvement of a storefront's user experience in some way.
The Tags report seems fairly functional and allows browsing of tags by product or originating customer. Aside from lacking the Increment menu and its associated suggested improvement, it shares the Sales report's areas of functionality that could be improved.
The Abandoned Shopping Cart report offers the ability to search by specific customer, which doesn't seem particularly useful. What might be more useful is the ability to search by specific product or to get a specific list of products in the cart at the time of abandonment.
The Low Stock report also shares the Sales report's faults. Having it report on trends (e.g. Product X goes out of stock approximately every Y days) might be useful. The report offers an RSS feed, but the earlier comment made about those also applies here.
The Search Terms report seems to be organized like its equivalent on Google Analytics, which limits its usefulness. Functioning more like the tags interface in del.icio.us might make it more effective, so that it's easier to navigate between search terms and find relationships between them.
The Product Reviews report aggregates product review counts and rating averages. Oddly, it uses only a percentile for the latter while a 5-star system is used when reviews are submitted, which proves a somewhat annoying inconsistency.
Out of the box, Magento certainly offers a feature set equivalent or superior to its competitors. However, I have uncertainties about the value of some features and the design decisions behind the current incarnations of others.
At this point, I think Magento has 80% of the users covered as per the Pareto principle. Focus should be placed on improving the corresponding 20% of features to add polish to the overall user experience.