When you index your catalog, the item prices are read from the price lists and used to construct meta tags in the XHTML documents. A separate meta tag is created for each price list, and the property name in the tag identifies the price list the tag is associated with. To read the prices from the price lists, you use a property accessor of class atg.repository.search.indexing.accessor.PriceListMapPropertyAccessor. (This class is a subclass of atg.repository.search.indexing.accessor.GenerativePropertyAccessor, which is described in the GenerativePropertyAccessor section.)

Oracle ATG Web Commerce provides a component of this class, /atg/commerce/search/PriceListMapPropertyAccessor. You can specify this property accessor in the definition file like this:

<property name="price" type="float"
   property-accessor="pricePropertyAccessor"
   is-non-repository-property="true"/>

The property name you use is the one created in the PriceListPropertyProvider component (by default, price). The property-accessor attribute is set to pricePropertyAccessor, which is mapped to /atg/commerce/search/PriceListMapPropertyAccessor in the ProductCatalogOutputConfig component. The is-non-repository-property attribute indicates that the property is not actually stored in the catalog repository; this attribute prevents warnings from being thrown when the IndexingOutputConfig component starts up.

When the PriceListMapPropertyAccessor is invoked for an item, it iterates through all available price lists and outputs a separate meta tag for each one. Each tag contains the item price from one price list. The format of the names of the output properties in the XHTML is set through the pricePropertyPrefix property of the PriceListMapPropertyAccessor component. By default, the value of this property is:

childSKUs.price@

The price list ID is appended to this prefix in the tag associated with a given price list. For example, if there are four possible price lists, the XHTML output might include:

<meta name="atg:float:childSKUs.price@pl90001" content="9.99" />
<meta name="atg:float:childSKUs.price@pl90002" content="7.99" />
<meta name="atg:float:childSKUs.price@pl90003" content="5.99" />
<meta name="atg:float:childSKUs.price@pl90004" content="4.99" />

So, for example, the price for this item in price list pl90003 is 5.99.

If a price list does not have a price for the item, the property accessor does the following:

  1. Determines if the price list inherits a price for the item from another price list. If so, the accessor outputs a meta tag using the inherited price.

  2. If the price list does not inherit a price, no tag is output for that price list.


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