In 2011, Exaltation of Larks worked with several organizations to create a seamless way for book-buying customers to use the Espresso Book Machine, a cutting-edge technology that takes a digital file and delivers a hardbound book in the time it takes to make a cup of coffee.

The organizations involved with the project are the American Booksellers Association (ABA), On Demand Books (ODB), and McNally Jackson Books, an independent bookseller in New York City. We worked with McNally Jackson to provide them with technical leadership and custom module development services for a complex e-commerce, web services and hardware integration project.

Our challenge was twofold. First, we needed to create a way that customers could search for a digital book on the McNally Jackson website from among an ever-changing list of external sources, like Google Books, the Internet Archive and various commercial publishers.

Second, we needed to help the book-buying customer purchase that digital book from the website in an intuitive way, and then send that order to the bookstore — and the Espresso Book Machine — for printing, pickup and/or shipping. We've known for years that Drupal can publish to any device, but this was an opportunity for us to take Drupal where it hadn't been before.

Why Drupal was chosen: 

American Booksellers Association has a large Drupal multisite platform and the McNally Jackson website is part of this network. McNally Jackson was already using Drupal.

McNally Jackson owner Sarah McNally consulted the American Booksellers Association about modifying her current Drupal setup to work with the Espresso Book Machine provided by On Demand Books, but learned the American Booksellers Association wasn’t available to make large customizations to their multisite platform. Sarah then reached out to Exaltation of Larks to build a customized solution that would work with her existing Drupal website and allow her customers to use the Espresso Book Machine.

Describe the project (goals, requirements and outcome): 

Goals and Requirements

McNally Jackson Cafe

With the rise of big-box bookstores, independent booksellers have had to innovate in order to remain a vibrant and relevant business in the publishing world. In this case, independent bookseller Sarah McNally of McNally Jackson Books partnered with a handful of other booksellers, the American Booksellers Association and On Demand Books to create a cutting-edge and novel approach that is revolutionizing the way booksellers do business.

McNally Jackson provides its customers access to the Espresso Book Machine, which has been called “an ATM for books” by Time Magazine, and was named one of the best inventions of 2007. This technology has dramatic potential for point-of-sale purchases, and even more so for the online and out-of-print market, especially as more book publishers are releasing their catalogs digitally. This publishing model can reduce the amount of inventory that a bookseller needs to keep in stock, as well as make books available that have been out of print for years. It also facilitates self-publishing, which is becoming ever more popular as better self-publishing tools become available. The Espresso Book Machine is truly a part of the "internet of things” and is a smart physical object that gathers and processes data to fulfill each user's specific needs.

The American Booksellers Association has a large Drupal multisite platform that houses hundreds of websites for its members’ bookstores, one of which is McNally Jackson Books. Our overarching goal was to help make the Espresso Book Machine as easy as possible to use by seamlessly integrating it into McNally Jackson's website without adding complexity to other websites hosted on the same platform. Our first goal in this project was to build a way for customers visiting these participating member websites to search for digital books. We created a custom integration module that would allow Drupal to search through an often-changing list of multiple vendors, like Google Books, the Internet Archive and a number of commercial publishers.

Our second goal had to do with the hardware integration: we needed to build a solution to allow the customer to purchase a book from the website in an intuitive way, and then send the order to the bookstore for printing and either pickup or shipping.

On Demand Books was negotiating with an ever-growing list of digital sources, so the source search had to provide shoppers real-time access to a list of searchable sources. Once the source search was completed and a list of results displayed, our Ubercart Print on Demand integration hit On Demand Books’ application programming interface (API) again to retrieve the chosen book’s details, where the information was converted on the fly into an e-commerce product and added to the customer’s shopping cart. The resulting user experience was seamless.

Approach and Timeline

McNally Jackson Search

This was a project with many moving parts. Initially, it seemed as if it might be challenging for us to coordinate our team, our customer and partners, and their development teams. This actually turned out to be extraordinarily easy, because the individuals from the various teams were wonderful. The clear benefits of this technology were obvious to all of the players, and each individual worked to make the vision a reality. There was no one who was anything but helpful. Sarah McNally of McNally Jackson Books was especially invaluable in helping make sure everyone understood and agreed with each step of our process. Another good thing was that there was only one person from each team represented, and they were all empowered to make decisions. We also worked very carefully to make our spec brief clear and detailed.

We worked closely with Thor Sigvaldason at On Demand Books, who wrote the API for the Espresso Book Machine at the same time that we were developing the custom module. Thor is brilliant and a total pleasure to work with. We also worked with Githa Nathan, of American Booksellers Association, and Sarah McNally to seamlessly integrate this new functionality into the bookstore's website. We continue to work with McNally Jackson today.

Outcome

This project was a success. Not only was this a clever software solution, it was a creative organizational solution. We love working with forward-thinking organizations who want to try new things, and we love it when organizations partner up to remain competitive. Our hats are off to Sarah McNally of McNally Jackson Books, and other small businesses who are innovating in a competitive industry.

Technical specifications

Drupal version: 
Drupal 7.x
Key modules/theme/distribution used: 
Why these modules/theme/distribution were chosen: 

Ubercart/Print on Demand integration

This was a custom module solution we built to search a growing list of external publishing sources in a dynamic way. Once the search was completed and the list of results was displayed, the module then retrieved the details of the book the shopper had chosen, converted the book information into an e-commerce product, and added it to the customer's shopping cart. These are the steps we took to build this module:

First, we polled for available sources. The return was a list of available sources. This was used in creating the form that the user sees and having a select list of the sources, along with "all." We used cURL with authentication. It was very important to have that select list be dynamic and responsive. On Demand Books adds sources all the time.

Next, we obtained search results. On submit, the module sent another cURL request back to On Demand Books’ API and returned search results. The search results were not displayed as nodes. Instead we folded the HTML into the display results so it looked like a view and added a purchase button to each. This was one of the places that Thor was particularly awesome in altering return results so they were prettier: things like capitalizing sources in the returns so it said "Google" instead of "google."

Lastly, when an item was chosen, an Ubercart content type node was created and added to the shopping cart. (On install, the module created an Ubercart content type.)

This is the extent of the standalone module that we wrote. Having the order of this particular content type trigger particular actions and notifications was on the American Booksellers Association side of the project. Our module was also generalized so that it would work with other booksellers who were American Booksellers Association members in their gargantuan multisite with hundreds of Drupal websites.

Ubercart

This complex e-commerce package for Drupal worked with our custom module to allow customers to purchase books from the McNally Jackson website and send them to the Espresso machine for printing.

NB: The McNally Jackson site is a complex Drupal website that uses at least a hundred modules. For this particular project, though, none of them were used in unique ways except the custom print-on-demand module and Ubercart. Here's why: the American Booksellers Association multisite was so large that once we were able to download the site, its size made it challenging to work with, so we went with a blank slate installation of Drupal and Ubercart, and made tests throughout development on a site that was part of the multisite. We were easily able to properly leverage the Drupal framework as to avoid negatively impacting other parts of the McNally Jackson website as well as other websites hosted on the same multisite platform.

Community contributions: 

None

Organizations involved: 
Project team: 

McNally Jackson Books
On Demand Books
American Booksellers Association

Five members of Exaltation of Larks worked on this project.

McNally Jackson - Print on Demand
McNally Jackson Kids Staff Picks
McNally Jackson Online Magazine Rack
Sectors: 
Arts
E-Commerce
Entertainment
Media
Publishing
Retail and Distribution
Small business

Comments

eusuf1’s picture

it's very helpful article for student of e-commerce .


fifa world cup 2014

diomede’s picture

Goals, requirements and outcome are well defined.
Thanks for sharing your project!