I was working with a client and they run into an error that they had reached their Virtual Catalog limit. This was an issue with the previous versions of the product (Catalog Name and Size Restrictions and the interop API IProductCatalog3::AddVirtualCatalogRule Method throws an exception E_CAT_VC_TOO_MANY_BASECATALOGS) but I thought that we had removed this limitation when I was with Microsoft for Commerce Server 2007. In fact I can't find this limitation anywhere documented in Commerce Server 2007 help files. It seems that this was not addressed and the stored procedure that enforces this limitation was not modified :(.

Why the limitation?

For whatever reason the limit is set for 84??? Why 84 not 80 as it is documented in the previous version? I don't think anyone will know but having this large amount of base catalogs per virtual catalog has a performance impact. You will have to do some testing to fully understand the consequences. If this proves to be an issue try materializing the Virtual Catalog. For more details see Vinayak's blog Virtual Catalogs : To materialize or not to materialize.

What stored procedure enforces this?

The stored procedure is in the <sitename>_productcatalog.dbo.ctlg_VC_AddVCRule. Line 161 has this rule:

if (@NumCatalogsInVc_tmp > 84)

What do I do if I hit this limitation?

Call PSS and ask for a hotfix.