If your Commerce catalog uses price lists, a single item may have multiple prices, depending on who is purchasing the item. A customer is assigned a price list, and when that customer accesses a product or SKU, ATG Commerce looks up the item’s price in that price list. Another customer looking at that same item might see a different price, if that customer is assigned a different price list.
When a customer issues a search query, the results may depend on the correct prices for that customer being present in the index. For example, if the query has a constraint such as “return items whose price is less than $5.00,” the set of items matching this constraint will depend on the price list the customer is assigned. Therefore, ATG Search must be able to determine which price list is assigned to the user, look up the price in that price list, and apply the constraint based on that price.
There are three key aspects of working with price lists in ATG Search:
Because prices in price lists aren’t stored in properties of the product or SKU, you must create a special property to represent the price in queries. This property can then be used for faceting and in constraints.
The XHTML document created from a product or SKU must include a price for each price list, so the resulting index will include all of the prices.
The search client must determine which price list is assigned to the customer issuing the query, and determine which price in the index is associated with that price list.