Part 14: Site Management Offering
Submitted by Matthew Turland on Fri, 10/09/2009 - 15:24Note: All references to the user guide in this post refer to the public user guide available on the Magento wiki, as opposed to the user guide book for the Enterprise Edition of Magento, unless otherwise explicitly stated.
This post is the fourteenth part of a series covering the feature set of the Magento PHP-based e-commerce package. In particular, it reviews the site management features. Several of the features listed in this area have already been covered in this series. As such, sections for those features in this post are simply linked to other posts where appropriate.
Content Staging and Merging
This feature is limited to the Enterprise Edition of Magento and is covered in the Magento User Guide book — Chapter 9 Website (content) staging beginning on page 28. A screencast also explains the feature's function, which is to allow for a variable number of staging websites to be created where content and design changes can be developed internally before being made visible to customers. Both on-demand and scheduled merges and rollbacks of content are supported and staging sites can be password-protected to limit access to them.
While it seems fairly nice on paper, this feature is focused on content entered into Magento. That is, it doesn't handle things like Magento upgrades or installing Magento modules. The recommended practice is to maintain a separate Magento installation where these things can be tried and tested before being deployed manually. Methods for this range from rsync to Subversion for synchronizing filesystem changes as well as a few database tools for implementing database upgrades or locating and copying new content.
These same tools could be used for pushing content changes to production as well, so aside from the Magento EE feature being the sanctioned method, little seems to be gained by having two different methods for doing these things when one will suffice.
Support for Multiple Websites and Stores
One section of the user guide provides a conceptual description of this feature with excellent visuals while another section describes how to use it. What the feature facilitates is operating multiple stores from a single installation, allowing them to share inventory and offer support for multiple languages under the same domain name. Websites, stores, and store views can be managed from System - Manage Stores in the admin area.
Multi-Lingual
See the International Support post.
Support for Localization
See the International Support post.
Support for Multiple Currencies
See the International Support post.
Administration Permission System Roles and Users
This feature is covered in the user guide and a screencast. It's accessed via the Users and Roles options in the System - Permissions menu. Each user is assigned a single role with associated access privileges, which can be changed in the User Role tab when editing a user. Likewise, all users assigned to a role can be viewed and removed from that role from the Role Users tab when editing a role. Leaving a user account without a role is equivalent to setting its Status to Inactive: the user won't be able to log in.
Web Services API
This feature was added in Magento 1.1, with WSDL support being added in Magento 1.3. While it makes sense that no documentation would be included in the user guide for this feature, Magento Core API seems a rather misleading title when searching the Magento web site for it. This feature is also interesting insofar as it's one of few that are included in the feature list and aimed at customization or integration.
The Introduction section of the Core API documentation provides some basic examples, but like the Technical Docs offer very little useful information beyond that. A wiki tutorial provides a few more in addition to information on accessing permissions for the API, which are located under System - Web Services in the admin area. An ACL system similar to the one for Magento itself is provided to restrict acces to API methods. A forum thread clarifies that the username and API key are used for authentication and provides an example. The Core API documentation also provides examples of how to implement custom extensions to the web service API.
The API structure appears to be compatible with REST ideology, but REST isn't currently supported. Magento 1.3.x is based on Zend Framework 1.7.x and improved support for implementing REST services only began to surface in Zend Framework 1.9, so this isn't especially surprising. More surprising is the lack of JSON-RPC support, since the version of Zend Framework used in Magento does bundle a server component for that purpose.
That said, it does make sense that support for XML-RPC and SOAP were added first. SOAP in particular is fairly common in the enterprise, especially when integrating with external systems based on Java or .NET. XML-RPC is a bit more antiquated, but provides a more lightweight alternative for client systems that support the standard. Both allow clients to interact with them using very little code and without having to implement a custom library as would be required with REST. JSON-RPC remains the newer protocol with smaller adoption, but also a smaller bandwidth footprint, and seems a likely candidate for future support.
Flexible Tax Rate Management
See the International Support post.
Fully 100% Customizable Design Using Templates
Like the Core API web services documentation for developers, designers also have their own documentation in the form of the Designer's Guide. Rather than focusing mostly on a bare-bones API listing, however, the Designer's Guide is organized more like a reference guide and includes more visuals for explaining different areas of the templating system. There's also an accompanying screencast. Aside from the claim of "Full 100%" customizability sounding like an embellished sales pitch, it's difficult to further review this feature without more extensive experience using the templating system. As such, this will likely be covered in more depth in a future post.
Customer Groups
The user guide explains how to manage these. They are what they sound like: categories for customers. Each customer may be in exactly one customer group. They can be managed from Customers - Customer Groups in the admin area. There is unfortunately no option to manage which customers are in a given group from this area. Instead, the customer group assigned to a particular customer must be changed by editing that customer from Customers - Manage Customers and changing the Customer Group selection in the Account Information tab. Tax rates, which are covered in the post on International Support, are assigned per customer group.
One-Click Upgrades
While the upgrade process itself is relatively simple, it's not necessarily "one-click" nor as simple as that phrase is intended to imply. Conflicts with customizations, including themes, aren't unheard of. Looking at the forums for upgrade issues is a good way to look before you leap. It's also recommended to apply the upgrade to a testing copy of your production installation and manually migrating changes over as per earlier recommendations for content staging and merging, rather than doing an in-place upgrade on a live site.
Content Management System for Informational Pages
See the Landing Page Tool for Campaigns section of the Marketing Promotions and Tools post.
Google Website Optimizer Integration for A/B and Multivariate Testing
From the Google Website Optimizer Beginner's Guide, the service is described as "a free tool which allows you to test different variations of your site's content to find out which combination results in the highest number of conversions." Magento integration for it was added in the 1.1.7 release. An hour-long webcast was later published to provide a walkthrough of what A/B testing and multivariate testing are and how they can be performed with this feature. Unfortunately, there appear to be no other documentation resources for this feature and it's not without unanswered forum posts.
Wrap Up
Some features covered here, such as customer groups and the permissions system, are integral to how Magento works. A few, like the templating system and upgrade process, come across as sales pitches where the devil is in the details. Google Website Optimizer integration and the web services API don't have the level of documentation they really need. CMS pages and content staging and merging seem superfluous. All of this, added to the redundancy in the feature list, make this stand out as an area for potential improvement.

