Product cross-selling is a very powerful policy that you might be familiar with. For instance Amazon.com was one of the early adopters of recommendation systems in a very sophisticated manner, and it boosted its online selling rates by hundreds of millions of dollars. If we move on to more algorithmic complexity, a more sophisticated example is Netflix, an online movie rental service, and the core of its business is its recommendation system and the hype that surrounds it. Finally, the most recent and simplest to implement is Last.fm with a very elegant and efficient recommendation algorithm. By adopting Drupal and Ubercart, things become pretty straightforward, as you have good modules that encapsulate the complexity of recommendation algorithms and require little configuration, and you may as well provide to your end customers a great consumer experience. In addition to that, do not forget the powerful and robust taxonomy mechanism that Drupal implements in its core and the site-wide content tagging it provides, so the relevant items and items that could be used in conjunction could be categorized. So now without further delay, we will go through all these interesting possibilities that our Drupal online shop could offer.
As we have already mentioned, taxonomies are the core of the Drupal system and grasping the high-level implementation can save us a lot of trouble most of the time. Taxonomies often help us create references for our Drupal system nodes, differentiate between them, and create easy-to-use, intuitive, and searchable views on our content. Therefore, in our example, the basic idea is to create a taxonomy not only for products that can be sold as groups (as we already have Ubercart product kit for that), but rather for the products administrator to be able to tag all these relevant products in a way that high-revenue electronic shops like ExpanSys and PixMania have adopted.
To achieve this we do not need any new module installation but rather the plain old Drupal taxonomy system. We will make two taxonomies: one for product mangers, which they can edit while they add new products, and another in which users can free tag your content. These free taxonomy vocabularies are also referred as folksonomies. Furthermore, everyday practice has shown that relevant taxonomy blocks can really boost your site traffic, page views, and eventually conversions that translate to purchases. The vocabularies that we will alter are the following:
- Community Tagging. We need this particular free tagging vocabulary to allow our end users to tag the products of our site in order to provide non-intuitive connections.
- Product Types. This stands for an internal tagging vocabulary with predefined terms namely offer, best price, and new product and will help create the corresponding views in order to perform product promotion in your online electronics shop.
To create the new vocabularies and change the existing one, we take the following steps:
- Navigate to Administer | Content management | Taxonomy. Click on Add vocabulary.
- Fill in the name as “Community Tagging” and provide a short description.
- Choose Product and Product Kit as the Content types that will be associated for tagging.
- In the Settings pane choose Tags to allow free tagging and Multiple select.
- Finally choose Not in Sitemap for XML Sitemap.
- To add another taxonomy for product visibility options and positioning, go back to the taxonomy page and again click on Add vocabulary.
- Add the name “Product Type” along with a short description and click on Product and Product Kit in the Content types section. Finally add a priority 1.0 to the XML sitemap element and click on the Save button.
- Navigate to your newly created vocabulary terms and add the terms “offer”, “best price”, and “new product”.
This is an example of a user-defined term-tagging procedure on one of our products.
Use Taxonomies for Navigation and Menus
You can also use Drupal’s system pages using the taxonomy view module for category listings. The end of the URL should look like this: taxonomy/term/1 or taxonomy/term/2.
Note that taxonomy URLs always contain one or more Term IDs at the end of the URL. These numbers, 1 and 2 above, tell the Drupal engine which categories to display. Now combine the Term IDs above in one URL using a comma as a delimiter: taxonomy/term/1, 2. The resulting listing represents the boolean AND operation. It includes all nodes tagged with both terms. To get a listing of nodes using either taxonomy term 1 OR 2, use a plus sign as the operator: taxonomy/term/1+2
Using recommendation systems
Recommendation systems have existed a long time and make a crucial contribution in some of the most successful online shops. In this section we will focus on examples of implicit data collection of the customer’s activities that include the following:
- Observing the items that a user views in an online store.
- Analyzing item/user viewing time.
- Keeping a record of the items that a user purchases online.
- Obtaining a list of items that a user has listened to or watched on his or her computer.
- Analyzing the user’s social network and discovering similar likes and dislikes.
Having these data and customer behavior in our account, it is then easy to find the optimal item suggestions that fit people’s profiles. We can then provide sections like “customers who bought this book also bought” on Amazon.com suggestions.
Further to our discussion we will install recommendation API and two other modules that depend on it. The Ubercart-oriented module is the Ubercart Recommender module. This module collects data through the Drupal Core Statistics module about user purchases and provides suggestions about other products that could be relevant to the returning customer. All recommendation systems assign special weights in their recommendation algorithm to purchased products since this generates returned value and we have a fully converted customer. In order to handle suggestions to users that have not made any purchases yet from our online shop we will also use the Browsing History Recommender and Relevant Content modules. You can find more information about the algorithms and the recommendation procedure implemented in the Drupal Recommender API at http://mrzhou.cms.si.umich.edu/recommender.
Next we provide a synopsis of the added value and the functionality of each module:
- Browsing History Recommender: This module adds two blocks in your site “Users who browsed this node also browsed” and “Recommended for you”. To calculate the recommendations, this module uses Drupal statistics and in particular the history data and keeps track of 30 days of users’ node browsing activity. The “Recommended for you” block provides personalized node recommendations based on a user’s node browsing history.
- Relevant Content: This module provides two ways of referencing content relevant to the node in sight. Both of these methods provide configuration to filter for specific content types and vocabularies, limit the maximum size of the result, and provide some header text. The result in both cases is a list of nodes that the module considers most relevant, based on the categorization of the current page. You can configure multiple blocks with individual settings for node type, vocabulary, maximum result size, and optional header text.
- Ubercart Products Recommender: This module actually adds two extra block in our blocks section, one named “Customers who ordered this product also ordered”, which performs a cross check between orders of customers that bought the particular product in sight and another named “Recommended for you”, which provides personalized products recommendations based on a user’s purchasing history.
To configure your online shop to provide content-related recommendations we need to perform the following administration steps:
- Download Recommender from Drupal.org by navigating here:
- Unzip the file in your site’s modules directory.
- Navigate to the modules administration screen and activate this module.
- Follow the preceding procedure for the following modules also:
- After you have uploaded and installed all modules you will be able to see the following blocks in your blocks page (Administer | Site building | Blocks). Although these modules have configuration screens, they do need extra configuration or property change actions and can be assigned to your theme regions as they are from the blocks section.
You can find a very thorough discussion about all recommendation modules on Drupal at http://groups.drupal.org/node/12347.