The catalogsets feature is probably the least known feature in the catalog system. Unlike in previous versions, the catalogsets feature is now tightly integrated with the catalog sytsem. We have also provided a managed API to create, edit and delete catalog sets.This functionality is also available through the catalog web service. In addition you can now export and import catalog sets just as you can import and export product catalogs. In addition we have also provided appropriate Azman security for catalogsets. More importantly the ability to manipulate the catalog sets has been added in the Catalog Manager application.
What are catalogsets anyway?
Catalogsets provide a way to group together a similar set of product catalogs.You can use catalog sets to decide the appropriate list of catalogs to be displayed to your site users based on their profile. For eg you can create a catalogset containing a list of preferred product catalogs. The catalog set can then be associated to profile of runtime users and when a user browses your site you can then select the list of catalogs the user can browse.This allows you to show a different list of catalogs for anonymous users, registered users or privileged users. See this post for more information and the various fallbacks.
A new feature in Commerce Server 2007 is the ability to create dynamic catalog sets. A catalog set can now be
- Static, which contains a static list of catalogs.
- Dynamic, which allows you to associate an expression with the catalog set. The catalog set will now contain the list of catalogs which match the expression. A good usage of this feature would be to define a catalog set for active product catalogs. For eg "Active catalogset" can be a dynamic catalogset which has the expression "StartDate> 01/01/2006" and "EndDate<12/31/2006" associated with it. This catalog set will now contain all the catalogs which have a start and end dates that fall in the specified range.
By default the catalog system creates two default catalog sets
- Anonymous User Default CatalogSet, is a catalog set for anonymous users
- Registered User Default CatalogSet, is a catalog set for registered users
As I previously mentioned you can associate catalogsets to a users profile and use the users profile and the catalog sets to display the list of catalogs for that user. The newly added dynamic catalogset feature can be used here to provide a better user experience, increased flexibility and less maintainence. Once you define your expression you dont have to worry about the contents of the catalog set.