I wrote this article for a general web development blog, but it ended up not being published. It constitutes a simple checklist of tips and reminders for people building e-commerce websites on Drupal that I hope can still be useful published here. Feel free to contact us if you'd like to use the information / article in the attached PDF elsewhere.
- Know your tools.
Drupal is notorious for its abundance of modules written to address thousands of minor and major features. E-commerce on Drupal is no exception, and the tool you use depends on your business needs and timeline. Sites launching in the near future will be using Drupal 6 and have two e-commerce systems to choose from:
Ubercart - This is a full fledged e-commerce system designed to "just work" out of the box. It offers the standard shopping cart features, integration with several payment and shipping quote services, and the ability to automate your order workflow without writing any code. Additional features can be added by dozens of related contributed modules, and with over 18,000 live sites and hundreds of users and contributors, you're bound to find support for the functionality you need.
e-Commerce - The most recent version is a trimmed down e-commerce API that defines the components you'll use to build the e-commerce functionality you need. The pool of contributors and users is relatively small compared to Ubercart, so you should feel comfortable doing some heavy lifting on your own and possible Drupal module development if you go this route.
For future sites targeting the upcoming Drupal 7, users should keep an eye on the Drupal Commerce project. Spearheaded by the former project lead of Ubercart, the project is joining the attention to detail of the e-Commerce API and the attention to usability of Ubercart with the latest and greatest features of Drupal 7. Drupal Commerce got some stage time at DrupalCon San Francisco and the CMS Expo and has attracted the attention of some of the top contributors to Drupal 7 with expertise in core API development, usability, and security.
- Don't hack your modules.
Developers coming to Drupal from other e-commerce systems will be tempted to change a few lines of code here and there to quickly address any string changes, problems, or business needs. This often results in the edited modules not being updated as bugs are fixed and the module maintainers create new releases. This becomes a serious problem when security fixes aren't applied to live sites handling customer contact and payment information.
There are several books on Drupal module development and security you can consult to find out the established best practices for adding and adjusting features on your Drupal site. With your customers' information on the line, you should take the time to learn how to manage and add to your site in such a way that you're always able to run the latest, most secure code. Recommended reading:
- Secure checkout and login pages with the Secure Pages module.
Maintained by the man behind the e-Commerce module, Secure Pages is a simple module that lets you protect any or all paths on your website using some simple pattern matching. Once you have an SSL certificate installed, you can browse to the module's administration form to configure which pages ought to be secured on your site. Depending on which module you're using to add e-commerce functionality to your site, you will need to secure different paths. Consult the pertinent module's documentation and issue tracker for more information if you aren't sure what to secure.
- Mind your WYSIWYGs.
There are many ways to add WYSIWYG functionality to a Drupal site, and almost all of them have the propensity to interfere with textareas on settings forms that aren't meant to contain HTML. If you must use a WYSIWYG editor on your site, be sure to disable it on the settings forms that govern your store's contact and payment settings.
In fact, the best thing you can do is alter your editor's settings so the editor is turned off by default and then selectively enable it on the forms you know you want WYSIWYG support. This process is going to vary by module, so there's no one size fits all approach.
- Show your products off in style with a customized theme.
Drupal themes are not generally designed with marketing and product sales in mind. In true democratic fashion, those important Add to Cart buttons and Checkout forms won't receive any more attention than a Login button or a Contact form. However, Drupal's theme layer is incredibly good at letting you create custom templates and CSS to target specific pieces of your Drupal site. Spend some time learning to customize your theme to draw more attention to those buttons that turn into dollars when clicked.
Those who lack the designer's eye can take heart. Several Drupal theme shops create themes specifically targeting e-commerce on Drupal using Ubercart. Top Notch Themes has also contributed a free theme targeting Ubercart sites called Acquia Prosper and distributes a free e-book with tips for configuring themes and contributed modules to enhance your store and increase conversions.
- Minimize "noise" on the checkout pages.
When your customers end up on the checkout form, you're either sending them clear signals on how to complete the sale or distracting them unnecessary noise on the page. Drupal makes it easy to trim down that noise so your customers can focus on giving you money. Drupal's core block system lets you easily hide all the blocks and widgets in the non-content regions of your site using the same URL pattern matching system as the Secure Pages module. Hide as many blocks as possible on the shopping cart and checkout pages so your customers can't help but fill in their shipping and payment information and click those checkout buttons you've just styled.
- Use Views to build custom product catalog and upsell pages.
Views is the mother of all contributed modules for Drupal. It lets you filter through all the content on your website and display it to the user in tables, lists, and grids. Ubercart and e-Commerce both provide Views integration for products so you can easily create custom product catalogs, popular product displays, and related product blocks. Using Drupal's core taxonomy system, you can associate products with one another and add Views to the shopping cart page to upsell similar products to your customers as they shop.
In the land of Drupal, Views is a source of raw power that you should tap into to pump up your product presentation.
- Keep your customers in the loop.
As you add new products and features to your website, you can keep your customers in the loop by taking advantage of custom RSS feeds and newsletters. Drupal provides basic feeds for items posted to your site's front page, blogs, and categories, and you can create any number of additional custom feeds using the Views module. Promote your feeds to your customers so they can be the first to hear about your latest promotions and newest products.
Several contributed modules also add newsletter functionality to your sites. You can use the Simplenews module to run a newsletter straight from your Drupal site offering simple subscription management features for your customers and administrators. Alternatively, you can use modules like MailChimp to integrate your Drupal site with external services offering advanced newsletter features.
- Engage your customers with product reviews and ratings.
When someone places an order on your site, keep them engaged by offering them the chance to review and rate the products they've purchased. This data will help future customers make informed purchases and will help you target your marketing and promotions based on hot items.
Enabling product reviews is as easy as turning on Drupal's core comment system for your product pages. Adding ratings to these comments is a simple matter of installing and configuring the Fivestar module. The comments and ratings your customers enter will then be exposed to Views so you can select and sort products for display based on recent reviews and average ratings.
- Help your customers spread the word!
On the social web, your satisfied customers will be the best promoters of your products and services. Help them tell their friends just how great you are by taking advantage of the many Social network integration and recommendation tools. Contributed modules exist offering simple integration with Facebook Connect and Twitter, and others like Gigya Socialize and ShareThis will integrate your site with multiple services at once. You can also enable your customers to directly recommend your products to their friends via e-mail with the Forward module.