Oracle ATG Web Commerce uses a SQL repository to define the product catalog. Before reading this chapter, you should be familiar with the repository as described in the ATG Repository Guide.
A catalog repository is similar to any other SQL repository. There are three main parts:
The database schema on your SQL database server.
The repository component, which is of class
atg.adapter.gsa.GSARepository
.The repository definition file, which is an XML file that defines the relationship between the SQL database and the repository component.
A given user can only have permission to view one catalog. This catalog can be assigned in the catalog property of the user’s profile, or derived from the user’s parentOrganization
.
If you are using Oracle ATG Web Commerce’s multisite feature, you can assign catalogs to sites. The categories, products, and SKUs in that catalog inherit membership in that site from the catalog.
Catalogs consist of rootCategories
and rootSubCatalogs
. A catalog’s rootCategories
combine with the rootCategories
of its rootSubCatalogs
to make up the list of the catalog’s allRootCategories
. For example:
Catalog A:rootCategories = category1, category2
Catalog B:rootCategories = category3, category4
rootSubCatalogs = CatalogA
When a user of Catalog B views the allRootCategories
, they see all of the root categories of Catalog B (category3 and category4) as well as the root categories of the subcatalogs (category1 and category2) meaning there appear to be four root categories.
The catalog repository component is located at /atg/commerce/catalog/ProductCatalog
. You can extend the product catalog or create a different catalog structure in several ways:
To modify the product catalog by adding or removing items or properties, change the standard repository definition file, then use the
startSQLRepository
script to generate the database schema.To design your catalog from scratch, write the repository definition file, then use the
startSQLRepository
script to generate the database schema.To use an existing database schema, write a repository definition file that corresponds to that schema.
If you replace the standard repository definition file or extend it through XML file combination, you must configure the SQL repository component appropriately.