The following illustration shows the architecture that supports the recently viewed products functionality:

This diagram shows both the process for updating the recently viewed list and the process for retrieving and rendering the Recently Viewed panel on the product detail page.
When updating the recently viewed list, the following happens:
The customer views a product on the product detail page, thereby generating a request for the
store.war/browse/gadgets/productLookupForDisplay.jspgadget.The
productLookupforDisplay.jspgadget calls theProductBrowsedcomponent. This component dispatches a JMSViewItemmessage.The
RecentlyViewedHistoryCollectorreceives theViewItemmessage, extracts the product, and calls theRecentlyViewedToolscomponent, passing it the product.The
RecentlyViewedToolscomponent updates theRecentlyViewedProductslist for the current customer.For detailed information on this process, see Adding Products to the Recently Viewed List.
When rendering the Recently Viewed panel on the product detail page, the following happens:
The product detail page includes the
store.war/browse/gadgets/recentlyViewed.jspgadget.The
recentlyViewed.jspgadget calls theRecentlyViewedFilterDropletto initiate filtering. TheRecentlyViewedFilterDropletcalls theRecentlyViewedFilterto filter the list of recently viewed products.RecentlyViewedFilterinvokes someRecentlyViewedToolsmethods to remove any non-existent or expired products from the recently viewed list, and then filters any remaining products in the list based on the site context and site scope.RecentlyViewedFilterreturns the filtered list toRecentlyViewedFilterDropletfor rendering in the Recently Viewed panel.For detailed information on this process, see Filtering Products in the Recently Viewed List.

