The Product Catalog repository allows you to associate specific catalog items (catalogs, categories, products, and SKUs) with specific sites. Each of these items has a siteIds property that lists the sites the item is associated with. If an item is not associated with a specific site, it does not appear in that site’s catalog hierarchy.

Oracle ATG Web Commerce Merchandising users can set up catalogs and associate them with sites. The siteIds properties of categories are populated based on these associations. When the catalog repository is deployed, Catalog Maintenance System services populate the siteIds properties of products and SKUs, based on the categories they are associated with.

Setting a User’s Catalog and Price Lists

Commerce includes logic for setting a user’s catalog and price lists on a given site. To do this, it adds CatalogProfilePropertySetter and PriceListProfilePropertySetter components to the profilePropertySetters property of the /atg/dynamo/servlet/dafpipeline/ProfilePropertyServlet component in the DAF servlet pipeline:

profilePropertySetters+=/atg/userprofiling/CatalogProfilePropertySetter,\
                        /atg/userprofiling/PriceListProfilePropertySetter

For the profile’s catalog property, the CatalogProfilePropertySetter calls the determineCatalog() method of the /atg/commerce/catalog/CatalogTools component. This method invokes the /atg/commerce/util/ContextValueRetriever component. If this component’s useProfile property is false (the default), the following logic is applied:

Similar logic is used to set the profile’s priceList and salePriceList properties. For price lists, the PriceListProfilePropertySetter component calls the /atg/commerce/pricing/priceLists/PriceListManager component’s determinePriceList() method, which calls ContextValueRetriever.

Note that Business Commerce can run in a multisite environment, but does not actually support multiple sites. Business Commerce disables CatalogProfilePropertySetter and PriceListProfilePropertySetter to prevent catalog and price list settings stored in customer profiles from being overridden.