Create catalog assets

To create the catalog assets for your store, create a master catalog by adding information to several WebSphere Commerce database tables. You can create your catalog using XML files that are loaded into the database by the loading utilities. If you are creating a globalized catalog, you will need separate XML files for each locale your store supports. Each locale specific XML file adds the translatable information, such as descriptions, for your catalog, catalog groups, and catalog entries.

The following is an overview of the catalog creation process:

  1. In WebSphere Commerce, a catalog is created using XML files. Creating a catalog begins with a catalog entity, your database's equivalent of a paper catalog.

  2. Create the catalog structure and navigation by adding catalog groups to determine the categories and layout of your merchandise.

  3. Create inventory information as a base for the catalog entries.

  4. Add your merchandise in the form of catalog entries, which represent products, SKUs, bundles, packages, static kits, and dynamic kits.

  5. Attributes and attribute values are added to your catalog's products to distinguish the different SKUs from one another.

  6. You can create packages and bundles to group certain catalog entries together for promotional purposes.

  7. The relationships between the catalog groups and catalog entries are created next. This determines which entries belong to a catalog group.

  8. You can create merchandising associations for your catalog entries as product recommendation strategies.

  9. Associate your catalog, catalog groups, and catalog entries to your WebSphere Commerce store.

  10. In the final steps, create:

    1. Taxes for your merchandise.

    2. Shipping methods.

    3. A fulfillment center to act as an inventory warehouse and a shipping and receiving center. A store can have more than one fulfillment center defined.

    4. Prices for your merchandise.

Create a master catalog

To create a master catalog that contains multiple levels of categories, complete the following tasks:

 

Part 1: Preparing for catalog creation

  1. Review the catalog information and its corresponding object and data models within WebSphere Commerce. The catalog information is a component of the WebSphere Commerce Server that provides online catalog navigation, partitioning, categorization, and associations for orderable merchandise.

  2. Review the WebSphere Commerce loading utilities information. The loading utilities are utilities for preparing and loading data into a WebSphere Commerce database. Use the loading utilities to load large amounts of data and to update data in your database. For more information about the loading utilities, see Loading utilities.

  3. Review the XML conventions used in starter store archives.

  4. Create an organization through the Administration Console to act as the catalog owner.

  5. Create a new XML file for your master catalog by using the existing XML entries and catalog.xml files from a starter store as your guide. If you are creating a globalized catalog, create a separate catalog.xml file for each locale your store supports. The locale-specific file should specify all description information, so it can be translated. In this example, one catalog.xml file will be used for all information that does not need to be translated, and a second catalog.xml will be used for each locale the store supports and will include the information that needs to be translated. Or, if you prefer, use the existing XML file from a starter store and change the information as needed. The catalog.xml files from the starter store are located in its store archive file. To view the catalog.xml files, decompress the store archive using a ZIP program. The catalog.xml files are located in the following data directory:

    The catalog.dtd file is located in the following directory:

 

Part 2: Creating a catalog entity

  1. Create a catalog entity by adding information to the
    CATALOG and
    CATALOGDSC tables. A catalog entity represents a catalog in the database.
    <catalog catalog_id="@catalog_id_1" identifier="&STORE_IDENTIFIER;" member_id="&MEMBER_ID;" />
    

  2. Add the catalog's description in the locale-specific XML file for translation purposes:
    <catalogdsc
    catalog_id="@catalog_id_1"
    language_id="&en_US;"
    name="Store master catalog"
    />
    

 

Part 3: Creating catalog groups

  1. Create catalog groups by adding information to the
    CATGROUP and
    CATGRPDESC tables. Catalog groups, also known as categories, are groupings of other catalog groups or products. Complete this task for each catalog group in your catalog:
    <catgroup 
    catgroup_id="@catgroup_id_1"
    member_id="&MEMBER_ID;"
    identifier="Woodworking"
    markfordelete="0"
    />
    

  2. Add the catalog group's description in the locale-specific XML file for translation purposes. Complete this task for each catalog group in your catalog:
    <catgrpdesc
    language_id="&en_US;" 
    catgroup_id="@catgroup_id_1"
    name="Woodworking"
    shortdescription="Woodworking"
    longdescription="Woodworking"
    published="1"
    />
    

    Each time you create a catalog group and its description, the catgroup_id changes to represent a new catalog group. For example, catgroup_id="@catgroup_id_2" , catgroup_id="@catgroup_id_3" , and catgroup_id="@catgroup_id_4", and so on.

  3. After creating your catalog groups, assign a top-level catalog group to the catalog by adding information to the
    CATTOGRP table. This catalog group is the parent to the catalog groups immediately below it. Complete this task for each top-level catalog group in your catalog.
    <cattogrp
    catalog_id="&CATALOG_ID;"
    catgroup_id="@catgroup_id_1"
    sequence="0"
    />
    

    Each time you assign top-level catalog groups to the catalog, the catgroup_id is modified to represent a new catalog group association. For example, catgroup_id="@catgroup_id_2" , catgroup_id="@catgroup_id_3" , and catgroup_id="@catgroup_id_4", and so on.

  4. Once the parent and child structure has been determined for your catalog groups, create relationships between the catalog groups by adding information to the
    CATGRPREL table. Complete this task for each parent and child catalog group structure in your catalog.
    <catgrprel
    catgroup_id_parent="@catgroup_id_1"
    catgroup_id_child="@catgroup_id_11"
    catalog_id="&CATALOG_ID;"
    sequence="0"
    />
    

    With each catalog group relationship, the catgroup_id_child and the sequence is modified to represent a new relationship. For example, subsequent relationships would be displayed as catgroup_id_child="@catgroup_id_12" and sequence="1", and catgroup_id_child="@catgroup_id_13" and sequence="2", and so on. If you are not using a navigational structure in your catalog, then you can remove the CATGRPREL relationship.

 

Part 4: Creating inventory information

  1. Begin by creating base items by adding information to the
    BASEITEM table. Base items represent a general family of products with a common name and description. Complete this task for each group of inventory items in your catalog:
    <baseitem
    baseitem_id="@baseitem_id_102"
    member_id="@seller_b2b_mbr_id"
    markfordelete="0"
    partnumber="tooltech_sku_102"
    itemtype_id="ITEM"
    quantitymeasure="C62"
    quantitymultiple="1.0"
    />
    

    You must create a base item for every product that you create in your catalog. Each time you create a base item, the baseitem_id and partnumber numbers change to create a new base item. For example, a new base item would contain baseitem_id="@baseitem_id_147" and partnumber="tooltech_sku_147" as entries, while another base item would contain baseitem_id="@baseitem_id_192" and partnumber="tooltech_sku_192" as entries, and so on.

  2. Add information about specified items to the database by adding information to the
    ITEMSPC table. A specified item is an item with values for all its attributes, and represents an item, package, bundle, or dynamic kit in the catalog. Complete this task for each specified item in your catalog:
    <itemspc
    itemspc_id="@itemspc_id_106"
    baseitem_id="@baseitem_id_102"
    markfordelete="0"
    partnumber="T0000106"
    member_id="@seller_b2b_mbr_id"
    discontinued="N"
    />
    

    You must create a specified item for each item that you create in your catalog. Each time you define a specified item, the itemspc_id="@itemspc_id_107", baseitem_id="@baseitem_id_102", partnumber="T0000107" numbers change to create a new specified item. For example, a new specified item would contain itemspc_id="@itemspc_id_108", baseitem_id="@baseitem_id_102", and partnumber="T0000108" as entries, while another specified item would contain itemspc_id, baseitem_id, and partnumber as entries, and so on.

  3. Add a relationship between an item version and a base item to the database by adding information to the
    ITEMVERSN table. Complete this task for each such relationship in your catalog:
    <itemversn
    itemversn_id="@itemversn_id_102"
    baseitem_id="@baseitem_id_102"
    expirationdate="2010-01-01 00:00:00.000000"
    versionname="version"
    />
    

    Each time you create a relationship between an item version and a base item, the itemversn_id and baseitem_id numbers change to create a new relationship. baseitem_id matches an existing base item. For example, a new relationship would contain itemversn_id="@itemversn_id_107" and baseitem_id="@baseitem_id_107" as entries, while another relationship would contain itemversn_id="@itemversn_id_108" and baseitem_id="@baseitem_id_108" as entries, and so on.

  4. Define a relationship between a product version and a specified item in the database by adding information to the
    VERSIONSPC table. Complete this task for each such relationship in your catalog:
    <versionspc
    versionspc_id="@versionspc_id_106"
    itemspc_id="@itemspc_id_106"
    itemversn_id="@itemversn_id_102"
    />
    

    Each time you create a relationship between a product version and a specified item, the versionspc_id and itemspc_id numbers change to create a new relationship. itemspc_id matches an existing specified item. For example, a new relationship would contain versionspc_id="@versionspc_id_107" and itemspc_id="@itemspc_id_107" as entries, while another relationship would contain versionspc_id="@versionspc_id_108" and itemspc_id="@itemspc_id_108" as entries, and so on.

  5. Add the distribution arrangements to the database by adding information to the
    DISTARRANG table. A distribution arrangement enables a store to sell its own inventory. Complete this task for each distribution arrangement in your catalog:
    <distarrang
    distarrang_id="@distarrang_id_102"
    wholesalestore_id="@storeent_id_1"
    merchantstore_id="@storeent_id_1"
    baseitem_id="@baseitem_id_102"
    pickingmethod="F"
    startdate="2000-12-25 00:00:00.000000"
    enddate="2010-01-01 00:00:00.000000"
    />
    

    Each time you create a distribution arrangement, the distarrang_id and the baseitem_id numbers change to create a new distribution arrangement. For example, a second distribution arrangement might contain the values distarrang_id="@distarrang_id_147" and baseitem_id="@baseitem_id_147", while a third might contain distarrang_id="@distarrang_id_192" and baseitem_id="@baseitem_id_192", and so on.

  6. Add the attributes that affect how a particular store allocates inventory for the specified items of a particular base item to the database. Add this inoformation to the
    STOREITEM table. Complete this task for each base item in your catalog:
    <storeitem
    baseitem_id="@baseitem_id_102"
    storeent_id="@storeent_id_1"
    trackinventory="Y"
    forcebackorder="N"
    releaseseparately="N"
    returnnotdesired="N"
    backorderable="Y"
    creditable="Y"
    minqtyforsplit="0"
    />
    

    Each time you define the inventory allocation rules for a store item, the baseitem_id number changes to represent a new base item. For example, a new allocation might contain baseitem_id="@baseitem_id_147" while a third might contain baseitem_id="@baseitem_id_192", and so on.

  7. Add the base item description to the locale-specific XML file for translation purposes. The information is added to the BASEITEMDSC table. Complete this task for each base item description in your catalog:
    <baseitmdsc
    baseitem_id="@baseitem_id_102"
    language_id="&en_US;"
    shortdescription="Circular Saw"
    longdescription="Light on weight but not in quality. The Circular Saw 
    weighs a maximum of 10.9lbs., with a choice of a 12 or 14 amp motor, 
    and speeds of up to 600 rpms! Low friction 220V aluminum alloy shoe 
    will ensure the job gets done on time."
    />
    

 

Part 5: Creating catalog entries

Each type of catalog entry -- products, items, packages, bundles, and dynamic kits -- represents the orderable pieces of merchandise for sale in your catalog. You need to define a base item for each product catalog entry. For additional information about dynamic kits, see Dynamic kit data assets.

  1. Create catalog entries by adding information to the
    CATENTRY . Complete this task for each product catalog entry in your catalog:
    <catentry 
    catentry_id="@product_id_102"
    baseitem_id="@baseitem_id_102"
    member_id="@seller_b2b_mbr_id"
    catenttype_id="ProductBean"
    partnumber="T0000102"
    mfpartnumber="Sprain-Tools-102"
    mfname="Sprain Tools"
    markfordelete="0"
    buyable="1"
    />
    

    • Each time you add a base item to a product catalog entry, the catentry_id and the baseitem_id sequence changes to represent a new catalog entry. The catenttype_id changes depending on the type of catalog entry.

  2. Define a specified item for each catalog entry. Complete this task for each catalog entry in your catalog:
    <catentry 
    catentry_id="@catentry_id_106"
    itemspc_id="@itemspc_id_106"
    member_id="@seller_b2b_mbr_id"
    catenttype_id="ItemBean"
    partnumber="T0000106"
    mfpartnumber="Sprain-Tools-106"
    mfname="Sprain Tools"
    markfordelete="0"
    buyable="1"
    />
    

    Each time you add a specified item to a catalog entry, the catentry_id and the itemspc_id sequence changes to represent a new catalog entry. The catenttype_id changes depending on the type of catalog entry. Under the master catalog structural restriction, a catalog entry cannot belong to more than one category. To place a catalog entry in more than one category, use a sales catalog.

  3. Add the description to the locale-specific XML file. This information is added to the
    CATENTDESC table. Complete this task for each catalog entry description in your catalog:
    <catentdesc
    catentry_id="@product_id_102"
    language_id="&en_US"
    name="Circular"
    shortdescription="Circular Saw"
    longdescription="Light on weight but not in quality. The Circular Saw 
    weighs a maximum of 10.9lbs., with a choice of a 12 or 14 amp motor, 
    and speeds of up to 600 rpms! Low friction 220V aluminum alloy shoe 
    will ensure the job gets done on time."
    thumbnail="images/circular_saw_sm.gif"
    fullimage="images/circular_saw.gif"
    available="1"
    published="1"
    />
    

 

Part 6: Creating attributes and attribute values

  1. Create attributes and attribute values for your products by adding information to the
    ATTRIBUTE and
    ATTRVALUE tables in the locale-specific XML file for translation purposes. Each product in your catalog has a specific set of attributes, such as size and color for a shirt or a pair of pants. Items are defined by the attribute values. For example, while a shirt is a product, a medium, black shirt is an item. Complete this task for each attribute in your catalog:
    <attribute 
    attribute_id="@attribute_id_105" 
    language_id="&en_US;" 
    attrtype_id="STRING"
    name="Speed"
    sequence="2" 
    description="Speed"
    catentry_id="@product_id_102"
    description2="Speed"
    />
    

    Each time you add an attribute to a product defined by catentry_id, the attribute_id sequence changes to represent a new attribute.

  2. Add the attribute values. Add the information to the
    ATTRVALUE table. Complete this task for each attribute value in your catalog:
    <attrvalue 
    attrvalue_id="@attrvalue_id_114"
    language_id="&en_US;" 
    attribute_id="@attribute_id_103"
    name="12.0amps"
    attrtype_id="STRING"
    stringvalue="12.0amps"
    sequence="0"
    catentry_id="@catentry_id_106"
    />
    

    Each time you add an attribute value to an attribute, the attrvalue_id sequences changes to represent different values. The attribute_id sequence changes to represent a different attribute. The sequence increases with each new attribute values. For example, subsequent attribute values would be sequence="1", sequence="2", and sequence="3", and so on.

 

Part 7: Creating relationships between products and items

  1. After creating products and items for your catalog, define the relationships between products and items by adding information to the
    CATENTREL table. Complete this task for each product and item relationship value in your catalog:
    <catentrel
    catentry_id_parent="@product_id_147"
    catreltype_id="PRODUCT_ITEM"
    catentry_id_child="@catentry_id_152"
    sequence="2"
    quantity="1"
    />
    

    Each time you add a relationship between a product and item, the catentry_id_parent and the catentry_id_child numbers change to create different relationships, based on the catreltype_id. With each new relationship, the sequence number is different. For example, if you have sequence="2", the next relationship will have sequence="3", followed by sequence="4", and so on.

 

Part 8: Creating packages and bundles

  1. Once you have created your products and items, create packages and bundles by adding information to the
    CATENTRY ,
    CATENTDESC , and
    CATENTREL tables. As an example, use the following code sample to create a package or bundle by adding information to the CATENTRY table. Complete this task for each package and bundle in your catalog:
    <catentry
    catentry_id="@package_id_102"
    member_id="@seller_b2b_mbr_id"
    catenttype_id="PackageBean"
    partnumber="sku-@package_id_102"
    mfpartnumber="sku-@package_id_102"
    mfname="ToolTech"
    markfordelete="0"
    buyable="1"
    />
    

    • Each time you create a package or a bundle, the catentry_id, partnumber, and mfpartnumber numbers change to create different package or bundle. For example, to create a new package, you could use catentry_id="@package_id_103", partnumber="sku-@package_id_103", and mfpartnumber="sku-@package_id_103", including catenttype_id="PackageBean" to identify the entry as a package. To create a new bundle, you could use catentry_id="@package_id_110", partnumber="sku-@package_id_110", and mfpartnumber="sku-@package_id_110", including catenttype_id="BundleBean" to identify the entry as a bundle, and so on.

  2. As an example, use the following code sample to add the package or bundle description by adding information to the
    CATENTDESC table in the locale-specific XML file for translation purposes. Complete this task for each package and bundle description in your catalog:
    <catentdesc
    catentry_id="@catentry_id_102"
    language_id="-1"
    name="computer"
    shortdescription="Computer"
    longdescription="A combination of a central processing unit, monitor,
     hard drive, and color printer. An ideal starter system."
    thumbnail="images/package_system_sm.gif"
    fullimage="images/package_system.gif"
    available="1"
    published="1"
    />
    

  3. As an example, use the following code sample to create relationships between packages or bundles and their components by adding information to the
    CATENTREL table. Complete this task for each package or bundle component relationship in your catalog:
    <catentrel
    catentry_id_parent="@catentry_id_102"
    catreltype_id="PACKAGE_COMPONENT"
    catentry_id_child="@catentry_id_97"
    sequence="1.0"
    quantity="1.0"
    />
    

    Each time you create a relationship between a package and bundle, the catentry_id_parent and catentry_id_child number changes to match existing catalog entries. With each new relationship, the sequence number is different. For example, if you begin with sequence="1.0", the next relationship will have sequence="2.0", followed by sequence="3.0", and so on.

 

Part 9: Creating relationships between catalog groups and catalog entries

  1. After creating catalog groups and catalog entries in your catalog, define the relationships between catalog groups and catalog entries by adding information to the
    CATGPENREL table. Under the master catalog structural restriction, a catalog entry cannot belong to more than one category. To place a catalog entry in more than one category, use a sales catalog. Complete this task for each catalog group and catalog entry relationship in your catalog:
    <catgpenrel
    catgroup_id="@catgroup_id_11"
    catalog_id="@catalog_id_1"
    catentry_id="@product_id_102"
    sequence="0"
    />
    

    Each time you create a relationship between catalog groups and catalog entries, the catgroup_id and catentry_id numbers change to form new relationships with different catalog groups and catalog entries. With each new relationship, the sequence number is different. For example, if you begin with sequence="0", the next relationship will have sequence="1", followed by sequence="2", and so on.

 

Part 10: Creating merchandising associations

  1. As an example, use the following code sample to create merchandising associations between catalog entries by adding information to the
    MASSOCCECE table. Complete this task for each merchandising association in your catalog:
    <massoccece 
    massoccece_id="@relationship_id_100" 
    massoctype_id="X-SELL" 
    catentry_id_from="@product_id_1"
    catentry_id_to="@product_id_15" 
    massoc_id="REQUIRES" 
    quantity="2.0" 
    rank="1.00000"
    />
    

    Each time you add a merchandising association, the massoccece_id number changes to represent a new relationship. The catentry_id_from and the catentry_id_to numbers vary to create new merchandise content for the association.

 

Part 11: Associating your catalog to a store

  1. Associate your catalog to a store by assigning the catalog, its catalog groups, and catalog entries to a store in the database by using the existing store-catalog.xml file. You should also assign display pages to the catalog groups and catalog entries. Add this information to the
    STORECAT ,
    STORECENT ,
    STORECGRP ,
    DISPCGPREL , and
    DISPENTREL tables. If you are creating a globalized catalog, create a separate store-catalog relationship XML file for each locale your store supports:
    <storecat
    catalog_id="@catalog_id_1" 
    storeent_id="@storeent_id_1" 
    mastercatalog="1"
    />
    

  2. Add catalog entries to the store-catalog relationship. Complete this task for each catalog entry in your catalog:
    <storecent
    storeent_id="@storeent_id_1"
    catentry_id="@product_id_102"
    />
    

    Each time you add a catentry_id to the store entity, the reference number changes to match an existing catalog entry.

  3. Add catalog groups to the store entity. Complete this task for each catalog group in your catalog:
    <storecgrp
    storeent_id="@storeent_id_1"
    catgroup_id="@catgroup_id_1"
    />
    

    Each time you add a catgroup_id to the store entity, the reference number changes to match an existing catalog group. .

 

Part 12: Associating taxes to your catalog

Associate taxes to the products and services in your catalog for a specific store. You must associate a tax calculation code with the catalog entries by adding this information to the to the
CATENCALCD table. For more information see, Create tax assets.

 

Part 13: Associating shipping methods to your catalog

To associate shipping methods to the products and services in your catalog, associate a shipping calculation code with the catalog entries. Add this information to the
CATENCALCD table. For more information see, Create shipping assets using an XML file.

 

Part 14: Associating a fulfillment center to your catalog

Associate your catalog with a fulfillment center to ship products to customers. A fulfillment center manages product inventory and shipping for a store. Add this information to the
FFMCENTER table. For more information see, Create fulfillment assets.

 

Part 15: Creating prices for your catalog entries

Create the pricing for your catalog entries. Pricing represents the price range for a catalog entry and any criteria that must be satisfied in order to use that price. To create a functional catalog, add offering information to the database. Add this information to the
TRADEPOSCN ,
TDPSCNCNTR ,
OFFER , and
OFFERPRICE tables. Or you can create or update the pricing for a catalog entry using the Product Management tools in the WebSphere Commerce Accelerator. For information about how to create pricing assets using an XML file see, Create pricing assets.

 

Part 16: Loading the XML file

After you have created your data, load the XML file into the database by either using the loading utilities or through the Publish wizard. For more information see, Loading data.

Related concepts

Related reference