Technote

(troubleshooting)
Dynamic Kits usage and configuration
Problem(Abstract)
This describes what dynamic kits are and what it takes to configure and use them in your store.
Resolving the problem Dynamic kits are intended to be used when there are a lot of possible combinations and you do not want to define a SKU for each combination. A dynamic kit has one SKU but may be composed of different combinations of components depending on what the customer chooses. When a customer buys a dynamic kit, it assigns a configuration ID to it (identifying the item SKUs that go into this kit as chosen by the customer).

A large portion of setting up the dynamic kit is configured externally to WebSphere Commerce by either a third party vendor or by the customers themselves. If there is no real need for dynamic kits, for example not very many combinations, then using a product with multiple SKUs is a much simpler approach.

The following page in the Information Center provides a good overview of what a dynamic kit is: http://publib.boulder.ibm.com/infocenter/wchelp/v6r0m0/index.jsp?topic=/com.ibm.commerce.developer.doc/concepts/ccaconfig.htm.

The page also gives an example of a shopping flow that a customer can go through to buy a dynamic kit. It also points out which data beans and commands are useful when working with a dynamic kit.

The Information Center also has a data model diagram which shows which database tables are used for storing or defining a dynamic kit: http://publib.boulder.ibm.com/infocenter/wchelp/v6r0m0/index.jsp?topic=/com.ibm.commerce.data.doc/refs/rdmprodconf.htm.
The following tables are part of this diagram: CATENTRY, BASEITEM, ITEMSPC, ITEMTYPE, CATCONFINF, ORDERITEMS, OICOMPLIST.

You must define your configurable components in the same way you define any other catalog items. Every component must have a SKU. Then define your dynamic kits like any other catalog entry. Every dynamic kit must have a SKU.

Here is a sample XML definition of a dynamic kit and of the configurable components:

<!-- Define a Catalog Entry for the Dynamic Kit -->
<catentry  catentry_id="10551" baseitem_id="10551" member_id="70000" catenttype_id="DynamicKitBean" partnumber="MYKIT-0101" mfname="IBM" markfordelete="0" buyable="1" />
<catentdesc catentry_id="10551" language_id="-1" available="1" published="1" name="MYKIT-0101" shortdescription="MYKIT-0101 Dynamic Kit" />

<itemspc baseitem_id="10551" itemspc_id="10551" member_id="70000" partnumber="MYKIT-0101" markfordelete="0" discontinued="N" />
<baseitem  baseitem_id="10551" member_id="70000" partnumber="MYKIT-0101" itemtype_id="ITEM" quantitymeasure="C62" markfordelete="0" quantitymultiple="1.0" />

Optionally, you can assign a predefined configuration to a dynamic kit. For example, define which component(s) are preselected with each dynamic kit by default. Here is an example of how to define a base configuration:

<!-- Define the base configuration for your Dynamic Kit -->
<catreltype catreltype_id="DYNAMICKIT_COMPONENT" description="The predefined dynamickit to component relationship" />
<catentrel catentry_id_parent="10551" catentry_id_child="1011" catreltype_id="DYNAMICKIT_COMPONENT" quantity="1" sequence="1" />
<catentrel catentry_id_parent="10551" catentry_id_child="1012" catreltype_id="DYNAMICKIT_COMPONENT" quantity="1" sequence="2" />

In the above example, 1011 and 1012 are the catentry_ids of two of your components.

So, in terms of the data that needs to be loaded to your database initially, the dynamic kit is not much different from other catalog entries. What keep in mind is that the most important part of the dynamic kit functionality has to still be configured by you outside of the out-of-the-box tables and resources. For example, decide how and where you want to store information such as which components can go with which dynamic kits. WebSphere Commerce does not provide you with tables and rules as to where and how you can store this information. As you can see from the example above, the only relationships-type of information you can define is your base/predefined configuration.

In terms of the shopping flow, on the product display page for the dynamic kit, have a 'Customize 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 called.

Use the CATCONFINF database table to store information that can be required by your external configurator to configure the dynamic kit. For example, you can store the URL location of a JSP page that will handle the configuration part.
Cross Reference information
Segment Product Component Platform Version Edition
Commerce WebSphere Commerce Business Edition Implementation / Usage AIX, i5/OS, Linux, Solaris, Windows 5.6, 5.6.1 Business Edition
   

Document Information

Current web document: http://www.ibm.com/support/docview.wss?uid=swg21292211