Recommendations are products that are presented as an additional offer. They may occur on any page in an online store. You often find them on product (detail) pages and on the shopping cart page. Recommendations are often located at the bottom of the page and are introduced with headings like "You might also be interested in", "Customers Who Bought This Item Also Bought" or "What Other Items Do Customers Buy After Viewing This Item?". These kinds of recommendations are based on product(s)-to-product(s) recommendations. This means, the user gets recommendations for products in relation to one or more other products. There are some other recommendation options, like search recommendations (based on a search term), category recommendations (category-to-products) and recommendations without direct input parameter, e.g. "Top Sellers".
There are two ways to provide recommendations for products:
To provide recommendations that are based on the user behavior, recommendation engines observe all actions in an online shop (like product A viewed, product B ordered etc.) and store this information to compute relevant recommendation products at the end. For this observation, recommendation engines use events that are provided by Business Tracking events. Every engine should have a TrackingEventHandler that is registered to one or more events in which the engine is interested. Different engines may use different events. Requests are used to fetch recommended products from the recommendation engine. In most cases, one or more products are used as input parameter(s), and the output is a list of recommended products that are computed from the input.
Both artifacts are described in detail in the following sections.
There are Java interfaces for all events that are supported. An implementation of a recommendation engine has to implement Java classes for these events that implement these event interfaces. These event classes normally extend an abstract superclass that contains some common logic for this recommendation engine implementation. If an event class is created for a concrete recommendation engine implementation, this event can be selected in the back office of the engine.
As mentioned before, the recommendation component uses events from the business tracking to evaluate the storefront behavior.
In this context, two different topics have to be considered:
Both aspects are explained below.
The adapter cartridge for a recommendation engine should provide an implementation of a TrackingEventHandler that is registered to receive storefront events. The TrackingEventHandler evaluates those events, and depending on the type of event it stores additional information in a data container to maintain information about the event. The events themselves are lost after being consumed. E.g., if a ProductAddToBasket event is received, the handler stores the product ID (SKU) and the quantity in this container. The data container is provided to the storefront components via TrackingSFI interface.
More information about TrackingEventHandlers can be found in the section TrackingEventHandler of Concept - Business Tracking and in the Cookbook - Business Tracking.
In accordance to event interfaces, there are also Java interfaces for all requests that are supported. An implementation of a recommendation engine has to define Java classes for all requests that are declared in the implemented request interfaces. These request classes normally extend the same abstract superclass as do event classes. This superclass may contain some common logic for this recommendation engine implementation. If a request class is created for a specific recommendation engine implementation, this request can be selected in the back office of the engine.
As mentioned above, the TrackingSFI interface is used for events to integrate the event templates into the storefront. This way only works with events; the integration of requests works completely different. Requests need CMS components that include the request templates.
At the moment, there are two default CMS components for recommendations regarding product-to-products-recommendations:
To use these components, they have to be added to the storefront pages. For information about doing so, see the Recipe: Including Recommendation Components In the Storefront in the Cookbook - Recommendation.
The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.