Saturday, December 12, 2020

WCS 9.1.3 | Setup workspace

 HCL Commerce V 9.1.3 has been release !!!


 Statutory warning :Setting up workspace may take more time initially !!

Few points to remember 

  • React Store front is recommend instead of Aurora legacy store 
  • Use Elasticsearch instead of SOLR - It comes with NLP search - You cannot miss for next generation eCommerce experience
  • Elasticsearch is an open source tool you can setup independelly in any windows machine - But never try that for HCL Commerce. Use docker image of the elasticsearch for workspace setup 
  • Test all links from the NIFI - will be good for quick check 
  • V9.1.3 is more distributed in nature compared to V9.
  • Xc Server, Legacy Server, Search Server - Too many servers - But yes that is very  important to to build the more distributed architecture - May be the Way to Pure Microservice Architecture . Yes HCL commerce need more and more changes to become fully microservice architecture 
  • Publish Emerald store for B2C  customers. Don;t forget to experiment the NLP cool feature provided by default with Emerald + Elasticsearch . (Eg : I am looking for blue Sofa) - Yes you will get blue sofa  .  
  • As of today Dec 1 - 2020 - Emerald store yet to get all features of the full-fledged ecommerce store features 
  • By default Emerald disable the Order history page - You need to enable it manually 
  • Publish Sapphire store for B2B customer 
  • 9.1.3 comes with Composer as a CMS engine . But this will not work for Emerald - You may have to use only for Aurora store 
  • As per my knowledge HCL may release brand new dedicated - sophisticated enterprise grade content management system for HCL Commerce in Dec 2020 - or Early Jan 2021- Waiting ...
  • to be continue ...



Tuesday, October 6, 2015

Better Late than Never- WCS8 has been released

WCS 7.0 initial version was released on 2010-October . Exactly after 5 yeras IBM announced the new version of WebSphere commerce - Version 8.0

Here are the quick take away ..

•    CSR – Customer service representative features.    A brand new features exclusively  for CSR . This is a mandatory tool for any ecommerce applicattion . Thanks IBM to recognize the industry need
•    SaaS Based Cloud support - As expected .. Yet to see how the architecture difference on cloud
•    Spring Supported Management center - Happy for all Spring loving developers

http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=AN&subtype=CA&htmlfid=897/ENUS215-305&appname=USN



infocenter is given below
https://www-01.ibm.com/support/knowledgecenter/SSZLC2/landing/wc_welcome.html?lang=en


Waiting for there  technical release



Also  announced the WCS 6.0 discontinue dates : Good by WCS 6.0 .
http://www-01.ibm.com/support/docview.wss?uid=swg21967814&myns=swgws&mynp=OCSSYSYL&mynp=OCSSZMJX&mynp=OCSSPK6A&mync=E&cm_sp=swgws-_-OCSSYSYL-OCSSZMJX-OCSSPK6A-_-E

Monday, March 3, 2014

About crawler utility in WCS

Command to execute :
crawler.bat -cfg D:\WCDE_ENT70\search\solr\home\bipindroidConfig.xml

Change following parameters:
<var name="storePathDirecttory">D:/WCDE_ENT70/workspace/Stores/WebContent/Aurora</var>
<var name="filterDir">D:/WCDE_ENT70/search/solr/home</var>


Monday, February 24, 2014

WebSphere Commerce Utility examples


Oracle
Coming soon


CloudScape
  • di-preprocess.bat
  • D:\WCDE_ENT70\bin>di-preprocess.bat D:\WCDE_ENT70\search\pre-processConfig\MC_10351\Cloudscape

  • di-buildindex.bat
  • D:\WCDE_ENT70\bin>di-buildindex.bat -masterCatalogId 10351

  • acpload.bat
  • D:\WCDE_ENT70\bin>acpload MyCompanyCatalogAccessControlPolicies.xml

  • enableFeature.bat
  • enableFeature.bat -DfeatureName=management-center
  • enableFeature.bat -DfeatureName=store-enhancements
  • enableFeature.bat -DfeatureName=foundation

  • isRunning.bat
  • isRunning.bat

  • restoreDefault.bat
  • restoreDefault.bat force (optional)

  • setupPlugins.bat
  • setupPlugins.bat

  • resetstores.bat
  • resetstores.bat

  • updatedb.bat 
  • updatedb.bat cloudscape

  • setdbtype.bat
  • setdbtype.bat  cloudscape [createdb]

  • setenv.bat
  • setenv.bat

  • versionInfo.bat
  • versionInfo.bat


  • startWCToolkit.bat
  • startWCToolkit.bat


  • wcs_password <password> <salt> <key>
  • wcs_password bipinkumar <salt from userreg> <merchent key from wc-sever.xml>


  • publishstore.bat
  • publishstore localhost wcsadmin wcsadmin  D:\WCDE_ENT70\starterstores\ConsumerDirect\Aurora.sar

Thursday, February 13, 2014

A Checklist for SEO developers



Let me share the common  problems which required immediate Search Engine optimization

Problem
Solution
WCS
Page title has bad keyword
Provide more relevant keyword in the <title> column
Same
Page header has bad keyword
Provide more relevant keyword in the <head> column
Same
First Sentence of body
The first sentence has more value in the search engine indexes. So create it carefully
Same
Missing meta tag in HTML
Provide necessary meta tag which may keep you ahead in search ranking
Same
Page Content issues
 Keep updating the Content regularly
The data should be relevant for the site
 Same
301 Redirects:
Customer still refer to old URL from bookmark
Give a map in your site with old URL and new URL . After some time if the customer is no longer refer to old url , then you can remove that.
There are two tables
SEOREDIRECT : This tables hold the old url and new url
SEOREDIRECTTRAFFIC: Used for checking the traffic of redirect rule utilization
404 Issues,410,303,302
Same as 301
Same as 301
Dynamic URL
Change to static URL.
Apply Pattern file and mapper file to map the dynamic url to static values
Refer :SEOURLPatters-Product.xml
Table : SEOURL: Hold the catentry_id, category_id etc
SEOURLKEYWORD: Unique key word for each product /category which user can use for search . This will be map with concerned product id or catentry id in the SEOURL table.
Limitation :  Commerce URL Mapping feature does not handle get and post forms.
Site map
Really a map for crawlers. Entry point for Search engine. This will help the crawler to ensure they cover all pages in your site
There are tools available in the market to create sitemap for you site.  Google also has.
Provide alternative set of pages which is exclusively for crawlers to read and index it
Stop Character in the Link
Associated with Dynamic URL
Avoid stop character in you content /Link everywhere.
Long URL
www.mystore/shop/product name. Keep it short and simple
/webapp/wcs/stores/servlet/ This is irrelevant to both crawlers and end users.
Change /webapp/wcs/stores/servlet/ to /shop in the wc-server.xml in the context in the SEOConfiguration part
Check your httdf.config file. You have to modify webserver level also  
Links matters
Provide enough cross linking between the pages.

Same
Words in Link
Provide good capture for you link rather than full url like
http://kingofwcs.blogspot.com
<a href=” http://kingofwcs.blogspot.com”>wcs Blog</>
Need Tools
Use Google webmaster tool to identify other issues reported from the crawlers
Same
Image Name
Give proper name for each of your image – The name should me matching with your content
Same
Alt message in Image
Provide meaning full message
Same
Invisible Text
Avoid invisible text and tiny text
Same
Keyword stuffing
Avoid duplicate keyword. Do not try to cheat the search engine crawlers. Once they found cheating they will block you from the list for ever (it happened for BMW also )
Keep relationship between keyword and content

Loading time
Understand that crawlers is also a software program They try to download your page before indexing the context. If downloading time increase they may ignore your page
Same
Dynamic content
Crawlers may not be happy with the dynamic content. Better to reduce it
Same
Image map
Links inside the image . WOW
Beware crawlers may reject it because of the security issues
There are some solutions

Graphics vs. text
Text will take more preference  

Table Structures
Use it but carefully
Using tables for layout duplicates a lot of HTML markup for every page in your site that is loaded. This duplication will effect your page-load time, even if it is only slightly,
JavaScript
Use it but carefully
Good link
Frame
Better to avoid this
Flash
Understand then use this
SessionID
If session timeout the page content vanishes.
Rewrite the Sessionid using URL rewriting .But how ? I have to find. It J




Even with URL Mapping, Site Map and Search Ranking, we cannot guarantee high ranking. That required several other parameters. Google like search engine change the parameters regularly. 




Thursday, February 6, 2014

Things to consider for Install Feature Pack 6 on WCS7.0

Steps to Install Feature Pack 6


  • Install WCS 7.0
  • Install IBM Update Installer version Version: 1.6.2 
  • Install WCS fix pack 7 ( 7.0.0.7)
  • Install WAS fixpack 13 (7.0.0.13 or above)
  • Check point : Try to load Madison store/Management Center. If any issue fix it before proceeding to next step
  • Install the Feature pack 6
  • Republish the server after the installation. (other wise your application may not work )
  • Execute below commands to enable the feature pack:
    • enableFeature.bat -DfeatureName=management-center
    • enableFeature.bat -DfeatureName=store-enhancements
    • enableFeature.bat -DfeatureName=foundation
  • If any issues restoreDefault.bat  and execute enableFeature.bat steps


For a successful build below message will be in \toolkitfolder\logs\enableFeature.logBUILD SUCCESSFUL

Optional : Public Aurora store

Tuesday, February 4, 2014

Feature Pack 6 - Page layout A Quick View

Prerequisites
      -> Your workspace should be in  the same version given below
      IBM WebSphere Commerce Version                  7.0.0.0
      WCS Fix paack Version 7.0.0.13 or above
      Feature pack Version 6.0.0.0
      -> Publish Aurora Starter store


Let me explain the quick way to implementing the page layout with new template

a) Create new file(MyNewHomePage) by copying form Stores/WebContent/Aurora/Layouts/HomePage.jsp

b) You can add or delete the widgets on this file.Make sure you are not braking the flow

c) Update the PAGELAYOUT  table with your query 

d) updaet Struts-config-ext.xml with your new view say - MyNewHomePageLayoutView with <forward> and <action>

e) Do acpload for above view

f) Open management cetner and check the newly crated teamplate

g) Assign the newly created template to the template type (HomePage). Provide necessary start date and end date

h) Refresh your Aurora store


Note:
FEP 5 also come with page layout .It is better to go with FEP6 due to enhanced features and bug fixing
WCS fixpack 13 or above and Feature pack 6 itself it enough for enabling the Page layout tool
Once you installed the FEP 6, make sure you enable the following components
enableFeature.bat -DfeatureName=management-center
enableFeature.bat -DfeatureName=store-enhancements
enableFeature.bat -DfeatureName=foundation

Each template contains multiple widgets which will help you to keep your images/artifacts etc. Widgets are basically div tags - a place holder for business users to place there images and other text content. It is IT developer responsibility to create widgets . Make sure your widgets size is compatible with images and other content For better practice : Keep  widget in data area and UI area

Page Review option in the FEP 6 is closing working with Page layout. This will help the business users to edit there content easy


Monday, October 7, 2013

JDBC Helpers in Commerce


ReportJDBCHelperBeanBase : If you want to connect a dedicated reporting database which is different than the production database then extend this class to execute your reporting query .
How ? :
Create new datasource in your was console .
Use below method to execute the query by passing the datasource name (don;t pass jdbc/) and report query
Vector executeQuery(String dsName, String queryString)


ServerJDBCHelperAccessBean : Good to use if you want to connect same database where u r wcs tables are running

BaseJDBCHelper:
BaseHelper: You can use ds name/username/password and get the datasource connection



Thanks
Bipin



Sunday, October 21, 2012

how to copy one user details to another user?

I feel this is a very interesting feature..

1.How will you move the shopping cart details of the guest user to register user after login?

2.How you will move guest users shopping list to register user?

3.How you will move guest user Address to the Registered user ?

One of the solution is :  MigrateUserEntriesCmdImpl


This task command is used to migrate resources owned by one user to another.
The mandatory resources that are migrated are Addresses, Current Orders, Interest Items, Order Items, Orders, and Order templates.


Some of the methods are :
    migrate address
    migrate orders
    migrate coupons
    migrate current orders
    migrate experiment results
    migrate interest item list
    
    hope this will work out.......

Tuesday, May 29, 2012

DynaCache

Coming . soon

I am back  after a short break..
So many things we can discuss here on caching..let me draft the document
Draft v1.0


Dynacache :Advantages/Disadvantages
IBM WebSphere eXtreme Scale -WXS:
EHCache
Jboss cache :
infinispsan cache :
JBOSS DATA GRID (JDG) :

Let us go through  all market leaders ..

But before jumping to any caching.. we should familiar with some caching terminology

such as.. 
Cache id :A unique key to represent any cache object in the cache server
cache expire :Define a time period for any cache to expire 
Cache eviction :If cache is reached it maximum capacity.. apply some rule to remove the some of items to place new items
normally using some algorithm called.. LRU .. etc
invalidation :Invalid the cache id if the data in the cache is not sych with the source system
and..what else.. .

Why wee need caching /Or what time we should think about caching?
- If the cost of any object creation is too heavy 
- if any object is very frequently using/accessing
- if multiple users are using same object 
ya that object/component is eligible for caching.. 

Starting with Dyna cache...

Dyna cache:

This is a in-memory caching mechanism from IBM which is commonly using in the websphere app server
Dynacache is non-transactional and replicated caching system

Dyna cache supports - 
Servlet/JSP object caching, Command level caching.. 
Full page caching
Fragment caching
Data invalidation support
Cache monitoring mechanism
Fine.. that is a 100 feet level view of dynachahe. Let us go in deep

consume-subfragment
do-not-cache
do-not-consume
timeout
Servlet/JSP object caching:  The output of servlet/jsp will be cached against the cacheId

Tuesday, May 15, 2012

A Quick view - ATTRIBUTE DICTIONARY



The Story:
Consider one business scenario where client wants to keep a set of common attributes for all products under a given store.Also this attributes may change frequently and client wants to control the product using same attributes.


Business Solution:
WCS provides a feature to keep set of common attributes that can be reused by multiple products- called as Attribute Dictionary

The Features:
-Control the product searchable ,comparable and displayable feature by changing the value in ATTR table
-Reduced data loading because attributes is saved in only one location
-Easy to manage the attributes
-Single Attribute dictionary is allowed for a given store. Under each Attribute dictionary you can upload any number of attributes
-Use the massload utility to upload to attribute dictionary


Data Model

ATTRDICGRP(attribute dictionary group)               -Define a attribute dictionary group
ATTRTYPE(attribute type)                                      -Define attribute type
ATTRDICTGRPATTRREL(attrdictgrp_id,attr_id)   -relation table for group and attribute
ATTRDICT(Attribute Dictionary- only one for given store)      -Dictionary - only one for given store
ATTR(attribute dictionary attributes-attr_id,attrtype_id,attrdict_id)   -Define any number of attributes
ATTRDESC                       -About the attribute
ATTRVALDESC(attrvalid)                             -Language sensitive attribute value description.)
CATENTRYATTR(catentry_id,attrid,attrvalid) -Relation table catentry-attribute and attrvalue

+ Feature pack 4 has this feature                            

Wednesday, May 9, 2012

OAuth Implementation in WCS

What is OAuth?
OAuth is an open standard for authorization. It allows users to share their private resources
(e.g. photos, videos, contact lists) stored on one site with another site without having to hand out their credentials,
typically supplying username and password tokens instead. Each token grants access to a specific site
(e.g., a video editing site) for specific resources (e.g., just videos from a specific album) and for a defined duration (e.g., the next 2 hours).
This allows a user to grant a third party site access to their information stored with another service provider,
without sharing their access permissions or the full extent of their data.
Ref: http://en.wikipedia.org/wiki/OAuth

Why OAuth?
The OAuth protocol allows third-party applications to identify and authenticate themselves with a content provider.

Sample business scenarions?
1)You have purchased a product from Walmart online .and adding comments there
These comments will can be shared in the Facebook/twitter.

2)You have placed an online order for eBook "The Da Vinci Code" .You need this ebook on Your eReader application
Here the fullfillment details will be send to the concerned vendor and vendor will do order fullfillment for you

3)
You have added some game application on your Facebook
The game app will ask you to share some public informtion from Facebook



Advantages:?
High Business demands.
Share only the subset of the data with third-party applications
The end user has total control over the data
Secured data is not shared across third-party applications .
Limited access to secured data.
High securiy.
Very suitable on Web based application
Highly demanding the social commerce
No need to share the Username and password to third-party applications
etc etc


Overview?
There are manly 3 actors in this game

1.User- The end user (That is you :))
2.Vendor- Service Provider .Who actually holds your secure data such us credit card,personal info, photos etc.(eg: facebook)
3 Client- Consumer.Any Third party applications such as ecoomerce site, game applications etc


Game Rules
1. User  purchased items from the client(Third party applications)
2. User wants to use the data which is stored in the Vendor  side
3. CLient sends request to the Vendor to provde the secure data(limited access)

NB: Here user should register in both Client side and Vendor side

Action : 
User logged into Client side and make a link to the Vendor site
Vendor will do the authentcaion of the user and ask permission to the user to provide the temporary key to the client

User approves the permission(Client Authorization )

Vendor send a temporary key(life time is 10-20 mins) to Client

Client receives the temporary key and request a permanant key to the vendor with Client secret

Vendor validate the temporary key, client secreat then provide valid key with limited accees to the Client(valat key)

Client receives this valet key and saved in client location(DB,LDAP, etc)

CLient make a link with vendor and request for information(limited)

There will be mechanism to revoke the valet key as per the neeed





.

Thursday, November 17, 2011

Know about .keyring

.keyring
If you want to clear the existing password of SVN from RAD. then delete above file from
<<Rad installation locatoin>>eclipse\configuration\org.eclipse.core.runtime location

Thanks to Uma :)

Thursday, September 8, 2011

Read about OrderTrashCan

OrderTrashCan is a feature in WCS
  • This feature is ......?.......by default in v7
  • This feature is enabled by default in v6
  • If the OrderTrashCan feature is disabled, when a user deletes an order item or requisition list item the table rows representing those items are removed from the database.
  • If enabled, these rows are updated to belong to the trashcan. .
How to enable?
  • Edit the wc-server.xml with below entry
  • TrashCanEnabled="true"/>
OrderTrashCanClear
  • You can clear the trashcan by running the OrderTrashCanClear scheduled job which will delete the rows, or by using the Database Clean up utility

All about Schedules :

Tables

#SCHCONFIG
This table contains all scheduled job entries.
scchost -the host name of the instance on which the scheduled job will be run
sccpathinfo-the command name
sccquery-query string for the scheduled command.

#SCHACTIVE
The list containing what job will need to be run and the time when the job should execute
schactive.scsjobnbr =schconfig.sccjobrefnum

#SCHSTATUS
This table is a log of the status of scheduled jobs
schstatus.scsjobnbr =schconfig.sccjobrefnum
scsstate:state of the scheduled job.
scsresult: result of job: success or fail.

#SCHERRORLOG
This table contains the exception information when a job fails to execute successfully.
#SCHORDERS
This table contains the entries for scheduled orders

#SCHBRDCST
This table is used to log the status of broadcast commands for each of the clones
schbrdcst.scsjobnbr =schconfig.sccjobrefnum

#SCHCMD
The URLsthat can be used as a scheduled job by a store. This is for the Scheduler menu in the Administration Console.
supporting tables:CHKARRANG/CHKCMD

Friday, August 19, 2011

All about Registry in WCS

How to create your own Registry
 -Create a classfile which implements com.ibm.commerce.registry.Registry
 --public abstract interface Registry
 --public abstract void initialize()
 --public abstract void refresh()
What are the methods required in side the Registry
 -initialize() --call refresh method
 -refresh() --load the values

what is the  registry Entry in side the  wc-server.xml ?
<Registries>
 <registry  name="BipinRegistry" regClassName="com.xxx.BipinRegistry" />
</Registries>

How to invoke the registry from controller command
 -MyNewRegistry myregsty= MyNewRegistry (RegistryManager.singleton().getRegistry(MyNewRegistryname ));

When registry will load
 -While starting the server ,registry will initialize

If the data in the tables associated with a registry is changed, you will need to refresh that registry for the change to take effect. For example, if a new entry is added to the Struts Configuring, the UrlRegistry has to be refreshed. Otherwise, the WebSphere Commerce runtime environment will not recognize the new URL.

Most commonly using registry: URLRegistry, Promotion Regisry

Wednesday, August 17, 2011

WebSphere Commerce business models



  • Direct sales
    • Consumer direct (B2C)
    • Business to business direct (B2B)
  • Scalable direct sales
    • Extended Sites
  • Value chain
    • Demand chain
    • Supply chain

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