Tutorial: Indexing profit margin data for use in dynamic product recommendation for Apache Solr

HCL Commerce Developer In this tutorial, you customize HCL Commerce search to use specific search conditions to dynamically recommend products to customers based on the profit margin for the products.
Profit margin of a product is how much profit in percentage your store earns for every dollar of sale. This tutorial uses the following formula to calculate the profit margin.
      Profit Margin (%) = (offer price - cost price) / offer price * 100
In HCL Commerce you can have offer prices for products in different currencies and have a different range price. This tutorial guides you to use the base offer price (the price that customers pay for the product when they buy one unit of the product) in US dollar to calculate the profit margin. You can use the other currency to calculate the profit margin as well. Cost prices are not stored by default in HCL Commerce. You must either create a separate price list in the Management Center Catalog Filters and Pricing tool to manage the cost prices, or use an external system to manage the cost price list.

In this tutorial, you can manage the cost prices externally and upload them with the Catalog Filter and Pricing tool. For testing purposes, a sample cost price file is generated where the cost price of a product is set to 10% - 90% of the offer price. For example, if a product's offer price is USD $100, the cost price can be any value between USD $10 and $90. Therefore, the profit margin in this tutorial falls into the range of 10% - 90%.

After you create both offer prices and cost prices, you can calculate the profit margin and index it. Normally, the indexing process in HCL Commerce search is divided into two stages:
  1. Preprocessing, where the highly structured relational data is flattened and stored in summary tables.
  2. The actual indexing, where data is extracted from the flattened tables and sent to the search indexes by using the Data Import Handler (DIH).

You must customize the index building process to calculate the profit margin and include it into the search index by configuring the DIH configuration file. After, you must add support for using the profit margin as a filter and sort criteria in product recommendations by registering the field in search attribute tables with the proper property names.

You must display the profit margin data in store preview to help you verify that the correct products are being recommended. To display this profit margin in store preview, the field must be added to the mediator configuration file. You can then add the control in the JSP file to display only the fields in store preview, not in your storefront pages.

Notes:
  • Workspaces are not supported while you are completing this tutorial as the profit margin is not workspace-enabled since product recommendations are based on production-ready data.
  • To demonstrate customizing HCL Commerce, this tutorial uses a HCL Commerce Developer environment. Complete the customization in your development environment and then deploy your changes to your production environment.

Learning objectives

After completing this tutorial, you should be familiar with the following concepts and tasks
  • HCL Commerce search indexing
  • Understand and customize HCL Commerce search.
  • Understand and customize the preprocessing and indexing process.
  • Understand and customize the product recommendation that is based on a custom field.

Time required

Expect this tutorial to take 2 hours to complete. The tutorial takes longer if you explore concepts that are related to this tutorial.

Skill level

This tutorial is intended for advanced HCL Commerce developers responsible for creating and customizing HCL Commerce BOD services and customizing HCL Commerce search.
To complete this tutorial, be familiar with the following terms and concepts:
  • HCL Commerce search
  • Web services
  • XML
  • HCL Commerce services
  • Relational databases
  • SQL

Tutorial resources

Download and extract the following compressed file into a temporary directory in your development environment. This file includes the sample price data that you use in this tutorial and includes the source code that is used in this tutorial for reference.