Sunday, August 7, 2011

Catalog - MasterCatalog. SalesCatalog. and all

Catalog
The catalog subsystem is a component of the WebSphere Commerce Server that provides online catalog navigation, partitioning, categorization, and associations. In addition, the catalog subsystem includes support for personalized interest lists and custom catalog display pages. 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

Different between product and item?
A product, however, is a group of items that exhibit the same attributes.
For example, a hammer is a product, while the 15 inch hammer with a wooden handle is an item
An item is a tangible unit of merchandise that has a specific name, part number, and price.
For example, a 15 inch hammer with a wooden handle (part number 15) is an item.
Although items do not need to be related to any product, and can exist independently in the catalog, each item should be associatedto one product to maintain a consistent view when using the Product Management tools in the WebSphere Commerce AcceleratorA parent product is not required for each item. However, this is necessary in order to use the Product Management tools.Also, pricing and discounts will not be able to default to the parent product level, meaning that all items must have their own prices and discounts,
if applicable

About Master Catalog:
The master catalog is the central location to manage your store's merchandise.
Everything you need in your store is contained within the master catalog. It is the single catalog containing all products, items, relationships, and standard prices for everything that is for sale in your store
You can share the master catalog across stores and define as many stores as needed.

About Sales Catalog
A sales catalog is a subset of the merchandise and services found in the master catalog.
A sales catalog has a flexible display structure that allows you to associate products to more than one category,to suit the requirements of your store.Sales catalogs can be used in conjunction with the master catalog and contracts to control which products display for a particular customer


Loading the catalog:
-Product Management tools in the WebSphere Commerce Accelerator
-loading utilities to mass load the catalog

Catalog entries
Catalog entries represent orderable merchandise in an online catalog. The entries typically have a name or part number, a description,one or more prices, images, and other details. A catalog entry can be a product, item, bundle, package, static kit, or dynamic kit.If necessary, you can create new catalog entry types that do not fit into one of the six existing models. More information about each type of catalog entry is available below.

Products
A product is a type of catalog entry. A product acts as a template for a group of items (or SKUs) that exhibit the same attributes. For example, a shirt is a product in your catalog. After adding attributes and attribute values to the shirt, each variation becomes an item, such as a small black shirt.

Items
An item is a tangible unit of merchandise that has a specific name, part number, and price.
For example, a small black shirt is an item while a shirt is a product. All items related to a particular product exhibit the same set of attributes and are distinguished by their attribute values.
Note: For WebSphere Commerce Accelerator users, the terms items and SKUs are considered synonymous.
When using the Product Management tools in the WebSphere Commerce Accelerator, the orderable item is called a SKU. In the WebSphere Commerce database schema, this particular type of catalog entry is called an item.

Bundles
A bundle is a collection of catalog entries to allow customers to buy multiple items at once.
For example, a bundle for a computer might be composed of a central processing unit, a monitor, a hard drive, and a CD-ROM 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 SKUsthat are added individually to the shopping cart. However, if you select a bundle which contains products, these products need tobe 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
A package is an atomic collection of catalog entries. For example, a computer 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.
Note: For WebSphere Commerce Accelerator users, packages and prebuilt kits are considered synonymous. When using the Product Management tools in the WebSphere Commerce Accelerator, a package is known as a prebuilt kit.In the WebSphere Commerce database schema, this particular type of catalog entry is called a package.

Dynamic kits
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.

Static kits
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 backorder if any of its components are unavailable.A static kit is first created as a package, then configured by an administrator.

Product sets
Product sets are associated with published catalog entries.
A product set provides a mechanism to partition your catalog into logical subsets.
This partitioning allows you to show different parts of your catalog to different users.
You can create a contract and specify that the participants of the contract are only entitled to purchase products that fall into a predefined product set.WebSphere Commerce provides tools to create and manage contracts and entitlement filtering rules on the master catalog.

Attributes
Attributes are properties of products in an online store. There are two types of attributes:
--Defining attributes are properties, such as color or size. Attribute values are the property of an attribute such as a specific color
(blue or yellow) or size (medium). You must predefine attribute values before assigning them to items. Attribute values are implicitly related
to their attributes. Each possible combination of attributes and attribute values equals a new item. After creating attributes and their values,
you can update information such as name, description, and type (text, whole numbers, or decimal numbers). Defining attributes are used for SKU resolution,
where each possible combination of attributes and attribute values defines an item.

--In contrast, descriptive attributes simply provide additional descriptions. For example, some pieces of clothing should only be dry
cleaned, never washed, and a descriptive attribute can specify this dry clean only condition. Note that descriptive attributes are not
used for SKU resolution and are meant to enhance product descriptions, or to provide easy customization for your business specific information.

Attribute values
Attribute values are properties of an attribute such as a specific color (blue or yellow) or size (small, medium, or large).
You must predefine attribute values before assigning them to items. Each possible combination of defining attributes values defines an item.

Package attributes
Package attributes must be created from the attributes of the products that are contained within packages.
A package containing only items will have no package attributes.

Package attribute values
Package attribute values are the values assigned to package attributes. Package attribute values must be created from the attribute
values of the products that are contained within packages


Tables
STORECAT     -store to catalog
CATTOGRP    -catalog to group
CATGRPREL    -group to group
CATGPENREL    -group to parent
CATENTREL    -group to praent
CATENTREL    -parent to item


URLS---
StoreCatalogDisplay
TopCategoriesDisplay
CategoryDisplay
ProductDisplay

Commands--
StoreCatalogDisplayCmdImpl-
This command sets the view task that will display the Catalogs available to browse in the current Store.

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

CategoryDisplayCmdImpl-
retrieves the configured display page for the specified category in the specified catalog.

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

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

ProductDisplayCmdImpl-
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.

ResolveSkuCmd-Certain catalog entries may need further processing before being added to an order.
An example is resolving a product into an item through SKU resolution, performed by the ResolveSkuCmd task command.


DataBeans--
StoreDataBean--extends StoreAccessBean ->salesCatalogs()
CatalogDataBean-extends CachedCatalogAccessBean ->getTopCategories()
CategoryDataBean-extends CachedCatalogAccessBean ->getSubCategories()
CatalogEntryDataBean-extends CachedCatalogEntryAccessBean
ProductDataBean-extends CachedProductAccessBean

Example
<wcbase:useBean id="catalog" classname="com.ibm.commerce.beans.CatalogDataBean" />


JSP
StoreCatalogDisplay.jsp
Index.jsp
    -parameters.jspf
    -nocache.jspf
TopCategoriesDisplay.jsp
    -LayoutContainerTop.jspf
        -HeaderDisplay.jspf
            -CachedHeaderDisplay
    -CachedTopCategoriesDisplay.jsp
    -LayoutContainerBottom.jspf

and more...