Row Eleven Wine Co. – Multi-domain E-Commerce Site
Row Eleven Wine Company in Marin County, CA came to ISL Consulting determined to create an online store that reflected the many sides of this unique specialty wine producer. It had to both serve the company's immediate objective to sell more wine online and be able to incorporate a number of new features in the coming years.
Requirements
Since the company had a number of specialty wines, at least three separate branding sites were needed, run by the same administrators.
The firm’s founder, Richard de los Reyes, a charismatic winemaker, needed his own blog to share his thoughts and deep knowledge of Napa Valley vintner history.
A single e-commerce shopping cart was needed to integrate products across all brands. Finally, the platform needed to be able to incorporate the first of a growing list of community features, and be expandable in the future to service the needs of the firm’s many distributors and restaurants in the coming years.
ISL recommended Drupal because it would allow, with a little training, largely non-technical managers to run the website. The registration system could allow Row Eleven to begin building relationships with its community of customers and re-sellers.
We had not yet used Ubercart, but were positively impressed by a demo at last years Drupalcon in Boston (Ryan was phenomenal). We knew we had to customize the transmission of orders to the fulfillment house.
Multiple Sites
The need to host multiple sites from a single Drupal installation was actually a complex problem. The client wanted separate websites to convey the unique brand experience of each of its three major wines: the flagship brand Row Eleven (www.roweleven.com), Stratton Lummis (www.strattonlummis.com), and Civello (www.civellowinery.com).
Then there was the corporate holding company www.rowelevenwines.com, and a blog (www.thewinelife.com). The hardest part of the initial challenge fell to our designers, who had to create separate aesthetic experiences for each site.
Fortunately, the client provided sufficient wine samples to inspire us and to convey the essence of each brand, and we were able to come up with illustrations (Civello.com) or manipulated photographs (StrattonLummis.com) to represent each brand.
Given the great importance the client attached to each brand experience, this was one of the most time-consuming parts of the project. For our designers, it was one of the rewarding because it gave them so much freedom to try things most clients avoid.
Since each site was accessible from the others, a custom Drupal theme for each site was designed. Each also used a similar top navigation scheme, to maintain the user’s orientation.
Domain Access Module
Managing these sites from a central location was somewhat more complex. On a previous project, www.psr.edu, different administrators ran each site, with different content across the sites, which resulted in a single Drupal file system running with multiple databases. This time we decided to use the Domain Access module. It permitted us to share nodes across sites for display and/or edits by running all sites off of a single database.
Administration for all sites is at one URL. Although the module literature describes its use for subdomains, Domain Access seemed to work well for full domains as well.
We made several customizations so that different sections would only display on a particular domain, while select sections show up on all domains.
For example, the Events pages all appear on separate domains with the same data, but use separate themes. At the same time, the Domain Theme sub-module let us tie individual themes to each site. While our experience with the Drupal 5 version of this module has, in general, been excellent, selecting this module over, say multi-site manager (http://drupal.org/project/multisite_manager) or even database table prefixes (http://drupal.org/node/147828) is a matter for individual site and client requirements.
UberCart
The site runs an e-commerce system powered by Ubercart and was set up to interact with Payflow Pro and a fulfillment house that ships all Row Eleven wine brands. Our general experience with Ubercart has been excellent. In this case, we used Ubercart to integrate a single shopping cart across all three brand sites. The main e-commerce processing is done on a single domain. All three wines and associated sites are presented on the home page of the store.
Part of Ubercart’s appeal has been its clean, modular structure. It allowed us to develop custom enhancements to store behavior using hooks and APIs. These enhancements include changes to the information stored in orders, the handling of gift messages, product availability features, and the development and integration of modules to handle more complicated issues.
UberCart Custom Modules
In particular, selling wine online remains a complex legal issue, and the client wanted to be sure that we did not ship wine to states where this was prohibited.
We therefore customized Ubercart to determine, at the very start of a potential transaction, whether it would be legal to ship to the buyer’s state.
If the ship state is not on the allowed list, the user comes to a screen which shows which states are, based on settings determined by the administrator; this map was generated using the Google Chart API, which was surprisingly easy to use for this purpose.
Additionally, the user must confirm that he or she is over 21 years old to continue shopping. These restrictions are reflected in the overlay that appears before the user is allowed to shop, and in the UI and validation during checkout.
ISL took the code for this shopping/shipping qualifier and turned it into an extensible contributed module, Ubercart Restrictions, available at http://drupal.org/project/uc_restrictions.
Ubercart Tweaks and Integrations
We integrated the Ubercart payment system with Payflow Pro. To handle fulfillment of orders, we send orders to the fulfillment partner using the New Vine Logistics API. Throughout the day, we transmit orders to New Vine via XML once payment has been authorized. Once an order has been processed, the fulfillment house informs us and the credit card transaction is settled and the customer is notified.
The client required several unique forms of discounts, which are applied under certain conditions of order volume or whether a product of a certain type is included in the order. The uc_discount module looked to be promising, but at the time of development the version available was incomplete and did not work for our needs. Instead of using the module, we took advantage of the open source model by studying the work in progress of that module to learn how a module might apply discounts to an order, and wrote our own custom module more tailored to the client's needs, and provided information to help improve the uc_discount module in the Issues forum.
The greatly enhanced shopping experience on the Row Eleven websites has led to a dramatic increase in sales for the client.
Drupal 5 or 6?
We built the site in Drupal 5 because Ubercart was not ready for Drupal 6 when we began work in mid-2008. This was our last Drupal 5 site. We are currently building a number of e-commerce websites with Ubercart and find its beta version for Drupal 6 stable. Our experience with Ubercart has greatly reinforced our commitment to this module. We plan to contribute modules later in the year that make Ubercart an easier choice for large e-commerce websites.
Modules
Modules used on this site besides those discussed above include the Administration module (which the developers can't live without) and CCK, in this case not so much for custom content types but to add custom fields to standard types - for example, the Ubercart product type needed another field for the fulfillment house. The Event module was used to list events and Image and Image Cache provided standard image handling. Simplenews, Google Analytics, Pathauto were also employed as designed. The Secure Pages module was very helpful in automatically redirecting based on URL patterns to secure or non-secure pages; we recommend it highly. Thickbox was used for its JavaScript code base used primarily to present overlay screens to users.
The User Interface module jQuery extensions and JavaScript components were utilized by various modules and our own custom front-end code to improve the user experience. Views was used to present lists of content and teasers and was further leveraged by the Domain Access module to show content relevant to a particular sub-site. Workflow-ng is used by Ubercart to handle the process flow for orders. We also created our own version of the Custom Breadcrumbs module to to keep menu items highlighted per content-type when you view a full node (in Drupal 6, this functionality is provided by the much more convenient "Menu Trails" module).
ISL Consulting
The five Row Eleven sites were built by ISL Consulting in San Francisco. The project was managed by Alexander King, programmed by Bob Hinrichs, and themed by Jeff Turner. Joe Kraynik and Cat Oshiro designed the five websites.
Drupal version: Drupal 5.x