Case Study: Packt Publishing
You may already have heard of Packt, the fast-growing publisher of hardcopy and digital books on specific technologies, due to the large number of Drupal books it has published over the years. However, you may not be aware that they recently relaunched their website, www.PacktPub.com, using Drupal as its framework.
Packt Publishing is a modern, unique publishing company with a focus on producing cutting-edge books for communities of developers, administrators, and newbies alike. Packt has so far published over 15 Drupal books and remains committed to producing practical solution-based books for Drupal developers, along with the best available online bookstore. The new website, which took 12 months from design to launch, was developed with UK-based Bluetel Solutions. The new version not only adds to the existing functionality of Packt’s original website, but now also offers a new, enhanced customer experience with an advanced design.
So how was Drupal chosen for the project?
It was a difficult choice to select one CMS, due to the depth of quality in the market. However Drupal became the obvious choice for us for a number of reasons, primarily:
- Drupal is open source, which fits Packt’s values and allows us to walk the walk, as it were.
- Its modularity means it’s easily extendable. The wealth of modules and extensions made Drupal a more attractive choice as there were existing solutions to many of our requirements.
- The support from the community is strong, helpful and immediate, which has proven to be extremely valuable for our developers.
- It is very well designed for SEO. Incoming visits from organic search provides PacktPub.com with around half a million visits a month, so maintaining and ultimately growing this level of traffic was important for us. By default, Drupal is well structured for SEO and provides users with a number of tools to improve their site’s searchability. From setting cleaner URLs through to introducing better rewrite rules, we have been able to clean up the way our site is structured for search.
- As a plugin, Ubercart has been exceptionally easy to set up and integrate with Drupal as well as our payment provider and in-house sales systems. We have over 400 books on our site and every book has an eBook, which means 800 products in total, this is an extensive store, and Ubercart has been able to handle it very well. Its seamless integration with Drupal has made is surprisingly easy to administer and manage.
Improved layout, design and content management
Packt is committed to making the use of the new website as simple and usable as possible, ensuring users can easily find the variety of content that Packt provide. The new website has improved search, an aesthetically pleasing design and navigation.
Jeff from the Bluetel Solutions’ Development team explains how they approached its development:
The modules that were core to the development of Packt's content are the usual trio of suspects: CCK, Panels and Views. As we deal with a multitude of different content types and a number of associated behaviours, these modules are essential in organising, presenting and relating them together. For example, in our forthcoming blog feature Views provided almost 100% of the functionality we needed.
Views in particular gave us the flexibility of quickly extracting the raw data and prototyping capabilities for the various display contexts we had for our books, and then the power to lay it all out in a pixel perfect representation of the site's design. If you're new to Drupal it's worth spending some time getting to know how Views works; about a third of the work we had planned for as proprietary modules for the site was accomplished using the Views module instead.
Honourable mentions go to the ImageAPI+ImageMagick and ImageCache modules: we developed a few extra filters to create the reflection and shadowing effects you can see when viewing our book pages. Using the ImageMagick instead of the default GD API produces much higher quality output, which is critical for an ecommerce site to show off its products with the highest quality images derived from the originals.
The three modules allow you to format any image you want to include on the site; when we have need to display the same image content in multiple contexts this pays dividends in consistency.
The various members of the Packt content team will need to post book news and articles online immediately, and they need to be able to link the various content types without learning HTML or any other tools. These requirements made Drupal a natural choice and makes the node referrer module a worthy mention. The node referrer module provides a counterpart to the unidirectional link that nodes have in the CCK, so we can relate eBooks back to books that link to them, authors back to articles, and so on.
Enhanced checkout system
Customer accounts clearly illustrate previous purchases as well as free eBooks available from Packt, while the checkout system has now been improved to move customers from selecting a book to the order confirmation page in a matter of clicks. Packt is now certified to handle payments in-house, while previously customers would be redirected to a third party payment provider, payments are now handled by Packt, which results in a speedier checkout process for customers.
Again, Jeff from Bluetel Solutions explains:
For e-commerce we chose Ubercart as a base, but had to modify it to accommodate the unique business logic and checkout flow that Packt has, as well as integrating it with our legacy order processing system. However, because of the well documented and comparatively straightforward process that Ubercart and its modules were designed with, this was significantly easier than it could have been. As a result we've been able to link in cart functionality to a number of places, and improve our discounts system to show the modified price of a book in relation to the objects in your cart, such as for bundle and multi-buy deals. For our hundreds of individual promotions, the uc_discounts_alt module provided a good foundation to build on. We wanted something that was easy for our staff to use for managing these discounts and extracting them for display on the site.
Data Migration
As you may or may not know, Packt has been using the previous bookstore website for the last five years and the development team had to move content from the old system to Drupal; over 4,000 pages. This proved a challenging task due to the inevitable issues associated with such a large migration of content.
Once more, Jeff explains:
We used the Migrate module (and Table Wizard that it depends on) to move some of our content from our old proprietary CMS to Drupal. The major difficulty was moving from unstructured, ad hoc HTML to structured, clean organised content which required a lot of manual work. However Migrate was useful both in its intended function - to copy data into Drupal's data structure without writing data import scripts from scratch, but perhaps more importantly for developers as a learning tool to educate us on how Drupal creates, names and accesses data from its database. Using this shaved a fair amount of learning time off the migration effort.
Developers and Contributors
- Bluetel Solutions
- Damian Carvill
- Abhishek Shirodkar
Drupal version: Drupal 6.x