Zappos - Company Info

Established in 1999, Zappos.com has quickly become a leader in online apparel and footwear sales by striving to provide shoppers with the best possible service and selection. In 2008, the company’s gross merchandise sales exceeded $1 billion. Zappos.com currently stocks millions of products from over 1000 clothing and shoe brands. Zappos.com was recognized in 2009 by FORTUNE MAGAZINE as one of the “100 BEST COMPANIES TO WORK FOR”, debuting as the highest-ranking newcomer to FORTUNE’s 2009 list. More information about the company’s customer service philosophy, unique company culture, and job openings can be found at About.Zappos.com.

First Steps

By 2008, Zappos.com's group of sites had grown to over 10 sites including:

Lifestyle driven vertical sites like

Powered By Zappos (PBZ) Sites, which are white label brand partner sites, like:

The increasing maintenance of non-ecommerce portions without any kind of CMS was stretching the small front-end development team’s resources thin. This maintenance was forcing code deploys for simple wording updates. The need for some kind of tool or CMS was a priority.

At SXSW '08, I attended a session called Content Management System Roundup where SharePoint, Expression Engine, Collage and Drupal were presented. Jeff Eaton, from Lullabot gave a great presentation on Drupal, including a showcase of some higher profile sites that were running Drupal. I was impressed with the variety of sites running Drupal and the fact that they were high-traffic sites. I had a chance to talk to Jeff Eaton and Mike Essl after the sessions about the strengths and weaknesses of Drupal and Expression Engine and both agreed for the things we'd use a CMS for at Zappos, Drupal would be a solid solution.

First Drupal Project

At the end of 2007 we implemented Blogs.Zappos.com using Jive's Clearspace software. We considered using Clearspace to be our CMS of choice but by early 2008 the absence of certain features and other issues made us consider other options. About.Zappos.com was a project that had been discussed by Tony, CEO of Zappos, as a central place to put all culture and company related content. Since this site would be a standalone site, it gave us a great opportunity to try Drupal with little risk. We already had a front-end developer working on adding more blogs to Blogs.Zappos.com and a new hire, Geoff, who we assigned to the About.Zappos.com project. The idea was to let each work on their projects and occasionally switch places and work on the other CMS so they could compare and contrast the features and development time. Drupal ended up being superior in terms of templating and development as well as adding new features and ease of use for the end user. About.Zappos.com successfully launched and Zappos had its first Drupal powered site.

About.Zappos.com

More Drupal

With one Drupal site under our belt we turned to the new Zeta site (the Beta version of Zappos.com), which had quite a few Customer Service and FAQ pages that could be managed inside of Drupal. So began our next project of moving those CS and FAQ pages into Drupal. Other projects included a term glossary and various mini-apps that were more easily done with Drupal than writing them from scratch.

Customer and FAQ questions

One of the issues we had to overcome involved the maintaining of two separate platforms (the Zeta platform and the Drupal platform). The two platforms often had the same header and footer content, which would require us to make dual updates whenever there were updates to the header and footer. To alleviate this, we ended up pulling in a static layout file allowing us to inject content and remove regions which may not be needed on a per page basis. As for JavaScript, Zeta is using Mootools. Instead of loading both jQuery and Mootools, we decided to only use Mootools when an unauthenticated user as well as another set role is viewing the site. Therefore, to make things more centralized, we decided to keep all CSS, JavaScript, and template related images on Zeta and the rest would appear in Drupal (this included admin specific static assets).

Advanced Landing Pages

Advanced Landing Pages and Powered By Zappos customer service pages were the next initiatives. With Advanced Landing Pages (Ex. Shoes ) it's the first time Drupal is being used on an e-commerce portion of the site. Given the short-time frame for this project, leveraging Drupal's powerful CMS tools while simultaneously querying the Zappos product catalog and displaying it with Drupal was a quick and effective way to give the User Experience team the control they desired in a robust system customizable fashion. The Advanced Landing Page project again made use of pulling in template data into Drupal from non-Drupal parts of the site. This allowed for changes to be made in one place rather than multiple places.

Zappos Template Construction

This project really showcased Drupal’s flexibility needed for the landing pages. The landing pages are comprised of a number calls to internal APIs (including SOLR). Combined with these internals calls and contributed CCK related modules, we have nice balance of both flexibility and automation.

Modules Used

As for modules, we utilized some of the more prominent modules such as Admin Menu, CCK, Contemplate, Devel, Nodehierarchy, Notifications, TinyTinyMCE, Views, and so forth. For more of a break down of modules as seen on Advanced Landing Pages - (Ex. Shoes, Clothing, Sunglasses, Bags)

  • CCK
  • FileField
  • Link
  • Nodehierarchy
  • Views

FAQ/CS Pages – General Questions, Shipping and Delivery Questions, Privacy Policy

  • CCK
  • Nodehierarchy
  • Views

Zappos Glossary

Zappos Glossary

  • Taxonomy
  • Taxonomy Manager
  • Views
  • Views Datasource

Drupal and Powered By Zappos (PBZ)

We are also using Drupal for portions of the individual Powered by Zappos sites. A big proponent for the new PBZs is Domain Access. We have a number of CS/FAQ pages that are consistent across all PBZs, allowing us to publish certain pages to all sites, while at the same time allowing us to create site-specific pages.

BearPaw Shoes PBZ

2010...

We started off 2010 by completing our migration of our Blogs (Blogs.Zappos.com) to the Drupal platform. So far things have been running smoothly and it's been a big improvement in terms of stability compared to our old platform. More to come in 2010.

Final thoughts

Although we have overcome a few bumps along the way, Drupal has assisted us with evolving from tasks that have once been code deploys into easily maintainable CMS editable pages. This has been a big win for the front-end team and the larger Zappos company. The Drupal community has also been a very open and welcoming community, both via online communications and in-person meetings. We saw this first hand when a few of the Front-End team attended DrupalCon DC '09 and met some great Drupal developers, who were both passionate and helpful in all things Drupal.

Zappos is also hiring for various full-time on-site development positions in Henderson, Nevada a suburb of Las Vegas. Positions include Front-End Developers, Drupal Developers and Software Engineers. Click here to see them all.

Written by Alex Kirmse (@alexkirmse) and Geoff Berger (@geoffberger)

Comments

ica’s picture

Interesting evolvement and implementation of Drupal with unique story, thank you for the write up

i have spotted zappo website few months back of 'Real-time purchase information' on map
http://www.zappos.com/map/

inspired me that, it would not be nice if the upcoming drupal.org events, new module, drupal planet etc. updates implemented live on map i.e below on mark's work
http://drupal.markboultondesign.com/iteration5/events.html#

here is also a good review of the site on prwd
http://blog.prwd.co.uk/tag/zappos

mrgoltra’s picture

really nice!

eaton’s picture

Thanks for the great writeup, Alex! It's awesome to see what you guys are doing. To celebrate, my wife just ordered two pairs of sandals...

--
Eaton — Partner at Autogram

n97i’s picture

nice to have such experience sharing
I can learn a lot from it

www.n97i.com

gdemet’s picture

As the person who put together that Content Management System Roundup panel at SXSW last year, I'm glad to hear that folks found it helpful when deciding which CMS to use, and I'm really glad to hear that Drupal has been such a good fit for Zappos!

duntuk’s picture

Thank you for this great writeup. Very informative.

fender-dupe’s picture

is it customized heavily or is it using only originals

sarah_p’s picture

This is great article, thanks!

Drupalized’s picture

Good presentation and nice project, congratulations!

David Strauss’s picture

This write-up needs two changes:
* Make it less of an ad for Zappos.
* Put *something* about Drupal into the teaser.

Otherwise, nice post. :-)

alexkirmse’s picture

I removed some content from the article and put a more Drupalish teaser at the top.

(thanks to everybody for the comments ;))

David Strauss’s picture

Thank you. The changes look good.

butler360’s picture

Interesting article. I'm actually wearing shoes from Zappos.com right now, too.

socialtalker’s picture

working with two cms on the same site? sounds insanely complicated. I was just on zappos this weekend, a great job! thanks for the write up!

tozen’s picture

Great article. Thanks!

janklaza’s picture

Is the blog for admins or the community users? Or both?

alexkirmse’s picture

If I understand the question correctly...

Blogs.Zappos.com is publicly accessible and anybody that has an account at Zappos can post comments. Actual blog posts are done by employees at Zappos. Blogs.Zappos.com isn't using the Blogs module but Stories, hence regular users don't have their own blogs.

- Alex

mukwenhac’s picture

Nice implementation of Drupal there and syncing it with other software.

I'm inspired to say the least...

purrin’s picture

I somehow managed to overlook this article this whole time. Nice post, Alex!

@purrin