When a search query is issued, the /atg/commerce/search/PriceListPropertyMapping
component creates the property mapping dynamically, based on the user’s profile and other settings that you specify through the following properties of the component:
price
The name of the price property created in thePriceListPropertyProvider
component. The default isprice
.
priceLists
An ordered array of the profile properties that specify price lists assigned to the user. The order of the properties determines the order of precedence when querying the search index. The default ispriceList
.
pricePropertyPrefix
The prefix for the price property in the XHTML document. This must match the prefix specified in thepricePropertyPrefix
property of thePriceListMapPropertyAccessor
component. The default ischildSKUs.price@
.
The PriceListPropertyMapping
component constructs the propertyMapping
tag and sets the value of the PriceListPropertyMapping
.priceMapping
property to this tag. For example, PriceListPropertyMapping
might set priceMapping
to:
<propertyMapping>
price,childSKUs.price@pl90002,childSKUs.price@pl90004
</propertyMapping>
To include the propertyMapping
tag in the search request, set the propertyMappings
property of the /atg/commerce/search/ProductCatalogParserOptions
component by linking to the value of the PriceListPropertyMapping
.priceMapping
property:
propertyMappings^=\
/atg/commerce/search/PriceListPropertyMapping.priceMapping
This maps the price
property in the query to the childSKUs.price@pl90002
and childSKUs.price@pl90004
properties in the index. The index properties are listed in order of precedence. When the query is executed, Oracle ATG Web Commerce Search looks for the childSKUs.price@pl90002
property for an item. If there is a property by that name, Oracle ATG Web Commerce Search uses the value of that property. If there is no childSKUs.price@pl90002
property (which means that price list pl90002
does not have a price for the item), it uses the price from the childSKUs.price@pl90004
property. So for example, if pl90002
contains sale prices and pl90004
contains list prices, Search uses the sale price if there is one, and otherwise uses the list price.