Part 6: Customer Service Offering
Submitted by Matthew Turland on Tue, 09/01/2009 - 16:06This post is the sixth part of a series covering the feature set of the Magento PHP-based e-commerce package. In particular, it will review the customer service features.
Contact Us Form
The user guide section for this feature describes it in a bit more detail, but it's essentially a simple form-to-e-mail. It can be enabled or disabled fairly easily and the sender and template used are fully configurable. With the default theme, it is accessible on the front-facing web site from the footer navigation on any page. A wiki tutorial and a related forum thread describe how to add custom fields to the form. A blog post is also available on how to position the form within its containing page.
It appears that no data from the form is stored in the database, which suggests that it's possible for submissions to get "lost in the mail". Were they stored in the database, a page in the admin area could be used to get a listing and even mark items as resolved to help with organization. A natural extension of this functionality would be integration with popular CRM software packages such as SugarCRM. This possibility about which some users have inquired in the forums.
Feature-Rich Customer Accounts
This seems like a very odd feature to have on the list in this section. Customer Accounts seems like it would have been a more appropriate place for it. Using the phrase "feature-rich" within the feature listing itself also seems redundant and a rather bare assertion. In any case, customer-focused features are described more in detail in the user guide and the previous blog post in this series.
In terms of the administrative side of this functionality, the Customers menu offers a Manage Customers section to create, edit, remove, search, and other wise manage customer accounts. For existing customers, all data accessible from the front-facing web site is also accessible in Manage Customers. Customers can be organized into groups for tiered pricing. Lastly, an Online Customers area allows session information to be viewed for both registered and anonymous customers.
Order History with Status Updates
This feature is also present in the Customer Accounts feature list and is covered in more depth there. For a screenshot, consult the user guide. Magento's implementation of it is par for the course as its implementations in various shopping carts go.
Customers can also track status updates via RSS, which is covered in a bit more depth at the bottom of this user guide section. The instructions there aren't as clear as they could be, though. To enable this feature, go to System - Configuration - Catalog - RSS Feeds - Order in the admin area and set Customer Order Status Notification to enabled.
At that point, when a customer views an individual order on the front-facing web site, a Subscribe to Order Status link with an RSS icon next to it should appear to allow status updates for that order to be tracked. The link appears to used a hashed identifier for security reasons.
Order Tracking from Account
The user guide states that, if an order has an associated shipping or tracking number, that order will be listed (in the My Orders page of the customer dashboard) with a link to a pop-up window that retrieves the status from the shipping or tracking gateway.
Unfortunately, it doesn't go into much more detail than that and the demo store doesn't appear to use that feature, so there's no way to review it unless you have a live store handy. This feature will likely be covered in more depth from an administrative perspective in a later blog post focused on shipping features. In the meantime, for more information on that, check out this user guide section.
Forgot Password E-mail
Another standard feature of most shopping carts enables customers to reset their password by following a link sent to their registered e-mail account, which Magento naturally supports. On the login page in the default theme, a "Forgot Your Password?" link can be found at the bottom of the login form for registered customers. This displays a form where the customer can enter their e-mail address to receive an e-mail containing a new password.
This feature can also be used from the admin area when editing a customer: go to the Account Information tab of the form, check the Send auto-generated password box, and click either of the buttoms to save the customer record. An option is also available to manually set a new password. In either case, an e-mail with the password is sent off to the customer.
Order and Account Update E-mails
The user guide describes this feature in some detail. When certain events occur, such as when a new customer account is registered, a customer's password is changed, or a new order is placed, Magento fires off an e-mail to the customer. These e-mails are configured to use specific originating e-mail addresses and templates.
Customizable Order E-mails
This old screencast, which is rather outdated but still somewhat accurate, reviews this feature in some detail. Ironically, the Designer Guide doesn't appear to address it at all, when it seems likely that a designer would be tasked with the responsibility of this particular area of Magento customization. This wiki article and this blog post both do a bit to fill in the gaps by providing a list of template paths, variables, and more information on customization.
Create and Edit Orders from the Admin Panel
The admin area provides functionality for creating orders similar to the front-facing web site. It also facilitates modification of existing orders. This is covered in the user guide. Both features are fairly common in e-commerce software for order cancellation or issue resolution. To access the feature from the admin area, go to Customers - Manage Customers, add or edit a customer, and the form for doing so should include a Create Order button near the top.
Wrap Up
One common issue I noticed throughout while working on this blog post is that all operations involving e-mail appear to return a message indicating success, regardless of whether the operation was actually successful or not. Not returning sensitive information is understandable, but giving a false success message is misleading at best. It appears that users have had no shortage of issues with e-mail — or even debugging it — since at least Magento 1.1 with very little official guidance or support.
In looking at source code related to this issue, the default Sendmail transport for Zend_Mail is used and there is no easy way (at least not one that's obvious or documented) to globally switch it out for a different transport without hacking the core. Among other things, this appears to mean that it's not possible to have e-mail features work on a local Linux installation (like mine) without installing and configuring an MTA.
Overall, as with the last post in this series on Customer Accounts, most features addressed in this post are commonplace in e-commerce solutions. The user guide covers most of these relatively well, but documentation on customization and inaccurate success messages are still painful points.

