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.
Comments
Thanks for great
Thanks for great write-up.
I'm more inclined to use Domain Access for D6, because extra modules have only D6 version.
You guys have done an
You guys have done an awesome job on both the site and the write-up. Definitely makes me want to buy a bottle. ; )
A big +1 for submitting your contrib, as well!
I'm glad Ubercart worked out, and I look forward to your contributions and further work on these larger sites. I regularly get e-mails and PMs through the forums about Ubercart's performance on large scale e-commerce sites, so I'll be happy to point them to this showcase post.
You should definitely try to make it to the Uberdinner in DC.
----------------------
Drupal by Wombats | Current Drupal project: http://www.ubercart.org
How long did it take?
Hi Great Job, impressive.
Are you willing to let us know how many hours went into the project?
Hours
We don't have the hours at hand, but the cast majority of time went into the designs for 5 sites and working those out in detail with the client. It was also our first Ubercart project, and we would say there is a significant learning curve with that module. Our Ubercart projects since then have been much less time consuming. There were also the customizations to the module. In short it was an expensive project in terms of time, but the learning from it has reduced our time needed and enhanced our ability to deliver on the next set of Ubercart sites.
...we're all learning here...
Thanks. Well done.
Thanks for the useful information
Great job and thumbs up for all the team. Hope to see more case studies like this, makes us all wanting to contribute more to the community.
Thanks!
--
Travel to Peru
great work!up up ;)
great work!up up ;)
Drupal User-mydrupal
Wonderful
Great design and very informative write up on the project. Well done!
-x-
---
Able Muse Review
Good and Good
Came here looking for interesting themes (part of my Drupal vs. Joomla investigation), got way more than I bargained for. Thanks ISL!!
Everything about this thread is GOOD: exemplary use of Drupal, terrific group of websites, very well-written coverage of the project, and I too now want to go buy a bottle.
I'm a stick-built front-end website designer, and I decided a CMS (open source natch) was a good way of putting my toe into the back-end pond so here I am. But now... can I work for you guys please?
Hopefully my last stick-built: Valdor Fiber Optics
Good work
Hi islcon,
Great work and nice article describing the site.
Do you have any plan on upgrading to Drupal 6? How do you plan to do that?
---
Regards,
Web development
upgrade to 6
We have no plans at this time to upgrade to 6. It could be tricky with all the modules having to be compatible. More importantly, however much we as a web development firm might like to upgrade, it would first have to be in the client's business interest.
DA
Thanks for the write-up!
Domain Access handles full domains. Some of the D5 documentation may be dated, though. Here's the first section of README from the D6 version (which is also on the module overview page):
The D6 version is stable, and adds more features, if you ever need to upgrade.
Great job!!
All of the sites look incredible. They show a lot of class and all the brands are nicely differentiated.
I just wondered, you said "fortunately, the client provided sufficient wine samples to inspire us".
Did that slow you down sometimes? :-)
Nice designs!
Nice designs!
Thank you
Thank you guys for this great write up, it was great to read about your multi-site solution. I would expect nothing less from all of you fantastic folks at ISL. I always loved working with you and hope one day to be able to do so again in the future.
All the best!
Suanne Brady
Document, document, document
I'm new to drupal and have to implement this system for a big international organisation. I find drupal philosophy and concept the best of CMS I've worked on. The only downside is it has no proper documentation such as this one.
I was searching for a way to create exactly the same as this case study (and I bet many people are) and only found it after browsing a long time and stumbling across other suggestions that weren't a good match.
Thanks for sharing this case study and I hope Drupal will put this info on an easier place to find.
Wine web site development
This works lets us know where the goal line is in web development. Nice work. Great insight and comprehensive. Cheers.
Thank you
This is very cool and helpful. Great work.
That helped a lot!
That was a great overview. I am starting a similar project and your case study pointed out a few things I would have surely screwed up!
This really helped!!
This article, though terse, was to the point and really helped avoid some pitfalls that I would have run into. I am trying to simulate more or less the same kind of sceneario where I want the nodes or contents to be shared across two domains: in one case a product to the purchased and in another, leased out.
This really provides good guidance. Thanks a lot.
http://knowmykerala.in
Finding "old" write-ups like
Finding "old" write-ups like this scares me. Especially when the example website no longer uses Drupal. All the hard work gone into developing a website lasts at best a few years. Where do we strike the balance between progress and sustainability?