Websphere Commerce Catalog Subsystem


The Catalog Subsystem contains all logic and data relevant to an online catalog, including catalog groups (or categories), catalog entries, and any associations or relationships among them.
  
Master Catalog
It is the single catalog that contains all products, items, relationships, and standard prices for everything that is for sale in your store. Every store in the Web Sphere Commerce system must have a master catalog. It is possible to share the master catalog across stores.

Master Catalog Restrictions
1)The master catalog must be a proper tree, which means that there are no cycles.
e.g.The parent category "Women" has a subcategory "WomenDress". It is important that WomenDress and any of WomenDress's subcategories like tops,jeans etc are not the parent category of "Women" category.

2)A catalog entry or category cannot belong to multiple parent categories in the master catalog. To place a catalog entry or category in multiple categories, use a sales catalog.
e.g.If you want to place a product under both men and women category go for sales catalog .

3) The Catalog tool and the Product Management tools work with only products that are associated with a master catalog.
 
Sales Catalog
A store could be associated with more than one sales catalog.In a sales catalog a product can belong to more than one category, Sales catalog is usually used as taxonomy for the site and serves to display the front end category navigation for an E-Commerce site.Display sequence of categories in a sales catalog is maintained using sequence field, Sales Catalog can be managed by a business user using Management Center.

STORECAT  Table- This table stores information between store and catalog, this table will have information on both master and sales catalog associated to a store.

STORECAT Table MASTERCATALOG column value "1" indicates that is it master catalog.

Products : Product is a group of items which exhibit same attributes. We can say Shirt is a products, but a shirt of red color of size 44 is a item. So it is clear in this example that there are two attributes size and color which belong to this item. And we can also say , that items belong to a particular product exhibit the same set of attributes.

Items : An item is a tangible unit of merchandise that has a specific name, part number,size and price. For example, a 44 size shirt with red color is an item for the above item.

Bundles-(Components or products under bundle can be modified before adding to cart or after adding to cart)


A bundle is a collection of catalog entries to allow customers to buy multiple items at once. For example, a bundle for a laptop might be composed of a central processing unit, mouse and a hard drive. A bundle is a grouping of items, or a combination of products, items, and fully resolved packages. If you select a bundle which only contains items, the bundle is decomposed into separate orderable SKUs that are added individually to the shopping cart. However, if you select a bundle which contains products, these products need to be resolved into items through SKU resolution before they can be added to a shopping cart. In either case, once a bundle is decomposed and its component items are added to a shopping cart, you can modify or remove each item.

Packages/Prebuilt kit(Components or products under package can't be modified)

A package is an atomic collection of catalog entries. For example, a laptop package might contain a specific central processing unit, monitor, and hard drive that cannot be sold separately. Similar to a product, a package has defining attributes and is a container for fully resolved packages. A fully resolved package is comparable to a SKU. A package has its own price and is an actual orderable SKU that can be added to a shopping cart. You cannot decompose or modify a package either during navigation or after the package has been placed in the shopping cart.

A prebuilt kit has its own price and can be added to the shopping cart. Once added to the shopping cart, you cannot change the prebuilt kit contents.Viewed in similar ways as a product, a prebuilt kit can have descriptive attributes.
 
Inventory for a prebuilt kit is independent of the inventory of its component parts.For example, selling a laptop prebuilt kit does not affect the inventory of the processor, monitor, and hard drive that the prebuilt kit contains.

Static kits (Components or products under Static kits can't be modified)

A static kit is a group of products that are ordered as a unit. The information about the products contained in a static kit is predefined and controlled within WebSphere Commerce. The individual components within the order cannot be modified and must be fulfilled together. A static kit will back order if any of its components are unavailable. A static kit is first created as a package, and then configured by an administrator.

A static kit has no inventory of its own. When a static kit is purchased, the inventory of its component parts is lowered. For example, if a computer was sold as a static kit and not a prebuilt kit, the inventory amounts for the processor, monitor, and hard drive would be decreased when a computer was sold.

(Package / Prebuilt kit) vs. Static kits

Prebuilt and Static kits are both considered to be a kit (kit and dynamic kit are the two options provided) in Management Center. They differ only in how the inventory is configured and managed. For a prebuilt kit/Package , the inventory must be tracked at the kit level whereas a static kit's inventory must be tracked at each individual child component.

Dynamic kits (Components or products under Dynamic Kits can't be modified once configured  but can be configure by an external configurator)

A dynamic kit is a type of catalog entry which can be dynamically configured by the customer.This configuration (or grouping) of products is based on the customer's requirements and is sold as a single unit.The components of a dynamic kit are controlled by an external product configurator through a set of predefined rules and user interaction,and supplied at order entry time. Adding a dynamic kit to an order is similar to adding a package.Like a package, the individual components of a dynamic kit cannot be modified and the entire configuration must be fulfilled as a whole.However, you may change the dynamic kit components by reconfiguring it using an external product configurator.

On the product display page for the dynamic kit, you must have a 'Configure and Buy' button. This button takes the customer to a page where the contents of the dynamic kit can be customized. Once the customer has chosen which components to include as part of the dynamic kit, a configuration_id must be assigned to this configuration and the DynamicKitConfigurationAddCmd command is  called.

DynamicKitConfigurationAddCmd

This controller command is used by an external Product Configuration to define the components of a dynamic kit. This command assumes that each configuration of a kit has a unique configuration id. The kit definition can be passed in via the individual class set methods, or by setting the entire XML definition of the dynamic kit. If both the class setters and the XML definition are used, the values defined in the XML document take precedence.

We can use the CATCONFINF database table to store information that can be required by your external configurator to configure the dynamic kit.

CATCONFINF Table
This table holds additional information for catalog entries that represent configurable products. This information may be required by an external configurator to configure these catalog entries.

OICOMPLIST Table
Each row contains information about the components of a configured Order Item.

OICOMPREL Table
Stores all kit level information for an Order item that is a kit. A kit may contain other kits and catalog entries outside of a kit. This table stores information about kit components and the OICOMPLIST table stores information about catalog entries outside of a kit.



Commands used in Catalog Subsystem

TopCategoriesDisplayCmd
This command sets the view task that will display the root Categories in a specified Catalog.

StoreCatalogDisplayCmd
This command can be used as the first page of a shopping flow to display the catalogs of a given store.

CategoryDisplayCmd
This command retrieves the configured display page for the specified category in the specified catalog.

ProductDisplayCmd
This command retrieves the configured Display Page for the specified CatalogEntry which will in turn be launched in order to display information about the CatalogEntry.This command first ensures that the CatalogEntry specified by the ProductId can be displayed in the current store, if published, and is not marked for delete.

ErrorProductAttributeCmd
This error task command is set when a Product to Item resolution fails due to incorrect product attributes

ErrorMissingAttributeCmd
This error task command is set when a Product to Item resolution fails due to missing product attributes.

ProductSetPublishCmd
This product set publish publishes a product set, or all product sets, to the catalog.


Tables used in Catalog Subsystem
 
Catalog tables
CATALOG This table holds the information related to a catalog.
CATALOGDSC  This table holds language-dependent information related to a catalog.
STORECAT  This table has relationship on store with catalog and also says that whether the catalog which is referenced to the stores is master catalog or sales catalog.


Category\CatGroup tables

CATGROUP  This table hold the information related to a catalog group. A catalog group is similar to a generic category that can contain both other catalog groups and also catalog entries.

CATGRPDESC This table holds the language-dependent information related to a catalog group.

STORECGRP This table holds the relationship between StoreEntities and the CatalogGroups that they can display and process.

CATTOGRP This table has the information on relationship of CATALOG_ID and ROOT CATGROUP [category]

CATGRPREL This table  has the information on the relationship between the CATEGORY or CATGROUP, like it says which is parent and which is child.

CatalogEntry tables

BASEITEM BaseItems represent a general family of goods with a common name and description. BaseItems are used exclusively for fulfillment. Each CatalogEntry that represents a Product in the catalog has a corresponding BaseItem for fulfillment purposes.

BASEITMDSC Each row of this table contains language-dependent information for a BaseItem.

STOREITEM  Each row of this table contains attributes that affect how a particular Store allocates inventory for the specified items of a particular Base Item. If there is no row for the Store, then the row for its Store Group is used.

ITEMVERSN Each row of this table represents an ItemVersion for a BaseItem. An ItemVersion expires when its expiration date is in the past. Each BaseItem must only have a single ItemVersion defined.

VERSIONSPC Each row defines the relationship between a product version and a specified item.

DISTARRANG Each row of this table represents a DistributionArrangement, enabling a Store to sell its own inventory.

CATENTRY This table holds the information related to a catalog entry. Examples of catalog entries include products, items, packages, and bundles.

CATENTDESC This table holds language-dependent information related to a catalog entry.

CATENTREL This table holds containment relationships between catalog entries. Examples of these relationships are Product-Item, Bundle, and Package relationships. This table should not be used for peer-to-peer catalog relationships, such as cross-sells.

CATGPENREL This table relates catalog groups (or categories) to the catalog entries that are inside them. You can also use this table to dictate the navigational flow from catalog groups to catalog entries. Each relationship is also qualified by a Catalog ID.

STORECENT This table holds the relationship between StoreEntities and the CatalogEntries that they can display and process.

LISTPRICE Each row of this table represents a ListPrice in a particular currency for a CatalogEntry.

ITEMSPC  Information about specified items. A specified item is a product with values for all its attributes. A specified item could correspond to a 2L bottle of milk, with 2% fat content. A specified item is the customer view of what the merchant sells.



5 comments:

  1. Replies
    1. can we get catalog data in xml using REST services?

      Delete
  2. Hi

    Where you have multiple products that can be in multiple categories in a sales catalogue, is it possible to sequence products in a category (in a sales catalogue not master) with a CSV?

    Thank you

    ReplyDelete
  3. Question regarding Dynamic Kit. Do the external configurator directly call DynamicKitConfigurationAddCmd?
    I believe they deal with OrderConfigurationAddCmd which in turn calls DynamicKitConfigurationAddCmd to add the configuration in cart.

    ReplyDelete
  4. I really appreciate information shared above. It’s of great help. If someone want to learn Online (Virtual) instructor lead live training in TECHNOLOGY , kindly Contact MaxMunus
    MaxMunus Offer World Class Virtual Instructor led training on TECHNOLOGY. We have industry expert trainer. We provide Training Material and Software Support. MaxMunus has successfully conducted 1,00,000 + trainings in India, USA, UK, Australlia, Switzerland, Qatar, Saudi Arabia, Bangladesh, Bahrain and UAE etc.
    For Demo Contact us.
    Saurabh srivastava
    MaxMunus
    E-mail: saurabh@maxmunus.com
    Skype id: saurabhmaxmunus
    Ph:+918553576305
    www.MaxMunus.com


    ReplyDelete