RefinementMenu cartridges render the set of dimension value refinements that are available in the left-hand rail for the current record set. This set of refinement values is driven by the dimension values that are tagged to the records themselves.

In Oracle ATG Web Commerce, applications may incorporate multiple sites and multiple catalogs. This means that each ATG category in the Category dimension may have one or more sites or catalogs associated with it. For example, Category A may be associated with Sites X and Y but not Site Z. In this case, when a customer is browsing on Sites X and Y, Category A should be included in the list of refinement values but when the customer is browsing Site Z, it should not. The RefinementMenu cartridge that is included out of the box with Oracle Endeca Commerce does not take site and catalog associations into account when it calculates the refinement values for the Category dimension. For this reason, the DCS module provides an extension to the RefinementMenu handler that filters out Category dimension values that are inappropriate for the current site and catalog context.

The DCS.Endeca.Assembler module configures the /atg/endeca/assembler/cartridge/handler/RefinementMenu component to use the atg.commerce.endeca.assembler.cartridge.handler.CategoryMenuHandler class, which is an extension of the com.endeca.infront.cartridge.RefinementMenuHandler class with an override for the process() method. The CategoryMenuHandler.process() method makes an initial call to the RefinementMenuHandler.process() method to get the refinement values for the current record set as they would normally be returned by the Assembler. The CategoryMenuHandler.process() method then filters the refinement values to remove any values that are not appropriate for the current site and catalog context. To do the filtering, the process() method invokes the /atg/endeca/assembler/cartridge/manager/filter/SiteFilterBuilder and /atg/endeca/assembler/cartridge/manager/filter/CatalogFilterBuilder components, which are of class atg.endeca.assembler.navigation.filter.SiteFilterBuilder and atg.commerce.endeca.assembler.navigation.filter.CatalogFilterBuilder, respectively. These components calculate the set of sites and catalogs that are specified for the current request. Only those refinement values that have an association with these sites and catalogs are returned.

To do its tasks, the /atg/endeca/assembler/cartridge/handler/RefinementMenu component defines the following properties in the DCS module:


Copyright © 1997, 2014 Oracle and/or its affiliates. All rights reserved. Legal Notices