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:
If there is a current site (i.e., the application has multisite support enabled), use the value of the
defaultCatalog
property of thesiteConfiguration
item for the current site.Otherwise, use the value of the
defaultCatalog
property of theCatalogTools
component.
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.