dw.catalog
Class ProductSearchRefinements
This class provides an interface to refinement options for the product
search. In a typical usage, the client application UI displays the search
refinements along with the search results and allows customers to "refine"
the results (i.e. limit the results that are shown) by specifying additional
product criteria, or "relax" (i.e. broaden) the results after previously
refining. The four types of product search refinements are:
- Refine By Category: Limit the products to those assigned to specific child/ancestor categories of the search category.
- Refine By Attribute: Limit the products to those with specific values for a given attribute. Values may be grouped into "buckets" so that a given set of values are represented as a single refinement option.
- Refine By Price: Limit the products to those whose prices fall in a specific range.
- Refine By Promotion: Limit the products to those which are related to a specific promotion.
Properties
categoryRefinementDefinition
:
ProductSearchRefinementDefinition
(Read Only)
The appropriate category refinement definition based on the search
result. The category refinement definition returned will be the first that
can be found traversing the category tree upward starting at the deepest
common category of the search result.
priceRefinementDefinition
:
ProductSearchRefinementDefinition
(Read Only)
The appropriate price refinement definition based on the search
result. The price refinement definition returned will be the first that
can be found traversing the category tree upward starting at the deepest
common category of the search result.
promotionRefinementDefinition
:
ProductSearchRefinementDefinition
(Read Only)
The appropriate promotion refinement definition based on the search
result. The promotion refinement definition returned will be the first that
can be found traversing the category tree upward starting at the deepest
common category of the search result.
Constructor Summary
This class does not have a constructor, so you cannot create it directly.
Method Summary
getAllRefinementValues(definition
:
ProductSearchRefinementDefinition)
:
Collection
Returns a sorted collection of refinement values for the passed refinement definition.
getCategoryRefinementDefinition()
:
ProductSearchRefinementDefinition
Returns the appropriate category refinement definition based on the search result.
getNextLevelCategoryRefinementValues(category
:
Category)
:
Collection
Returns category refinement values based on the current search result filtered such that only category refinements representing children of the given category are present.
getPriceRefinementDefinition()
:
ProductSearchRefinementDefinition
Returns the appropriate price refinement definition based on the search result.
getPromotionRefinementDefinition()
:
ProductSearchRefinementDefinition
Returns the appropriate promotion refinement definition based on the search result.
getRefinementValue(definition
:
ProductSearchRefinementDefinition, value
:
String)
:
ProductSearchRefinementValue
Returns the refinement value (incl.
getRefinementValue(name
:
String, value
:
String)
:
ProductSearchRefinementValue
Returns the refinement value (incl.
getRefinementValues(definition
:
ProductSearchRefinementDefinition)
:
Collection
Returns a collection of refinement values for the given refinement definition.
Methods inherited from class
SearchRefinements
Methods inherited from class
Object
assign, create, create, defineProperties, defineProperty, entries, freeze, fromEntries, getOwnPropertyDescriptor, getOwnPropertyNames, getOwnPropertySymbols, getPrototypeOf, hasOwnProperty, is, isExtensible, isFrozen, isPrototypeOf, isSealed, keys, preventExtensions, propertyIsEnumerable, seal, setPrototypeOf, toLocaleString, toString, valueOf, values
Method Detail
getAllRefinementValues
Returns a sorted collection of refinement values for the passed
refinement definition. The returned collection includes all refinement
values for which the hit count is greater than 0 within the search result
when the passed refinement definition is excluded from filtering the
search hits but all other refinement filters are still applied. This
method is useful for rendering broadening options for definitions that
the search is currently refined by. If the search is not currently
restricted by the passed refinement definition, then this method will
return the same result as
getRefinementValues(ProductSearchRefinementDefinition).
For attribute-based refinement definitions, the returned collection
depends upon how the "value set" property is configured. (Category and
price refinement definitions do not have such a property.) If this
property is set to "search result values", the behavior is as described
above. If this property is set to "all values of category", then the
returned collection will also include all refinement values for products
in the category subtree rooted at the search definition's category. This
setting is useful for refinements whose visualization is supposed to
remain constant for a certain subtree of a catalog (e.g. color pickers or
size charts). These additional values are independent of the search
result and do not contribute towards the value hit counts. If the search
result is further refined by one of these values, it is possible to get
an empty search result. Except for this one case this method does NOT
return refinement values independent of the search result.
Parameters:
definition
-
The refinement definition to return refinement values for. Must not be null.
Returns:
The collection of ProductSearchRefinementValue instances, sorted according to the settings of the refinement definition.
getCategoryRefinementDefinition
getCategoryRefinementDefinition()
:
ProductSearchRefinementDefinition
Returns the appropriate category refinement definition based on the search
result. The category refinement definition returned will be the first that
can be found traversing the category tree upward starting at the deepest
common category of the search result.
Returns:
The category refinement definition or
null
if none can be found.
getNextLevelCategoryRefinementValues
Returns category refinement values based on the current search result
filtered such that only category refinements representing children of the
given category are present. If no category is given, the method uses the
catalog's root category. The refinement value product counts represent
all hits contained in the catalog tree starting at the corresponding
child category.
Parameters:
category
-
The category to return child category refinement values for.
Returns:
The refinement values for all child categories of the given category.
getPriceRefinementDefinition
getPriceRefinementDefinition()
:
ProductSearchRefinementDefinition
Returns the appropriate price refinement definition based on the search
result. The price refinement definition returned will be the first that
can be found traversing the category tree upward starting at the deepest
common category of the search result.
Returns:
The price refinement definition or
null
if none can be found.
getPromotionRefinementDefinition
getPromotionRefinementDefinition()
:
ProductSearchRefinementDefinition
Returns the appropriate promotion refinement definition based on the search
result. The promotion refinement definition returned will be the first that
can be found traversing the category tree upward starting at the deepest
common category of the search result.
Returns:
The promotion refinement definition or
null
if none can be found.
getRefinementValue
getRefinementValue(definition
:
ProductSearchRefinementDefinition, value
:
String)
:
ProductSearchRefinementValue
Returns the refinement value (incl. product hit count) for the given
refinement definition and the given (selected) value.
Parameters:
definition
-
The definition to return the refinement for.
value
-
The value to return the refinement for.
Returns:
The refinement value.
getRefinementValue
Returns the refinement value (incl. product hit count) for the given
refinement attribute and the given (selected) value.
Parameters:
name
-
The name of the refinement attribute.
value
-
The value to return the refinement for.
Returns:
The refinement value.
getRefinementValues
Returns a collection of refinement values for the given refinement
definition. The returned refinement values only include those that are
part of the actual search result (i.e. hit count will always be > 0).
Parameters:
definition
-
The refinement definition to return refinement values for.
Returns:
The collection of refinement values sorted according to the settings of the definition.