How to create Commerce 2009 R2 SubSystems web services

Following are the steps help you to create Commerce subsystems web services like Catalog, Marketing, Order and Profile.

Step 1: Go to and select All Programs -> Commerce Server 2009 -> Tools -> Site Packager.

Step 2: Select option “Unpack from a package file”

Step 3: Browse to *.pup file and select Custom Unpack

Step 4: Select option “Add an application to an existing site”

Step 5: Select existing Commerce site for which you want to create web services

Step 6: Select web services you want to create

Step 7: Configure IIS, web site and virtual path for web services

Step 8: On Next click, web services unpacking will start. It may take a while to complete.

Step 9: Last you will see message Unpacking is Complete!!!

Check gallery for visuals.

Bug in Commerce Server Catalog procedure ctlg_GetFTSQuery

I was facing below issue with Commerce Catalog search and while debugging i found that it’s a bug in ctlg_GetFTSQuery procedure. To fix this issue i modifed

IF @IsVirtualCatalog = 1 or  @SQLClause < 1

to

IF @IsVirtualCatalog = 1 or Len( @SQLClause) < 1

    Inner Exception
    ---------------
    Type : System.Data.SqlClient.SqlException, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    Message : Conversion failed when converting the nvarchar value '[DefinitionName] = 'PartNumberProduct' AND ([IsVisible] = 1 )' to data type int.
    Source : .Net SqlClient Data Provider
    Help link : 
    Errors : System.Data.SqlClient.SqlErrorCollection
    Class : 16
    LineNumber : 29
    Number : 245
    Procedure : ctlg_GetFTSQuery
    Server : 
    State : 1

CS 2009 issue – An item with the same key has already been added.

I ran into this issue while setting up CS 2009 on my local box. Funny thing is, this issue is fixed just by reactivating Commerce Server feature. I think recreate the channel configuration list and refresh the dictionary which add default channel name.

Event Type:    Error
Event Source:    SharePoint Commerce Services Exceptions
Event Category:    None
Event ID:    0
Date:        7/20/2011
Time:        6:41:36 PM
User:        N/A
Computer:    
Description:
An exception of type 'System.ArgumentException' occurred and was caught.
------------------------------------------------------------------------
07/20/2011 18:41:36
Type : System.ArgumentException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message : An item with the same key has already been added.
Source : mscorlib
Help link :
ParamName :
Data : System.Collections.ListDictionaryInternal
TargetSite : Void ThrowArgumentException(System.ExceptionResource)
Stack Trace :    at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at Microsoft.Commerce.Application.Common.Configuration.ServiceConfiguration.CreateDictionary(String channelName)
   at Microsoft.Commerce.Application.Common.Configuration.ServiceConfiguration.GetSiteName(String channel)
   at Microsoft.Commerce.Broker.OperationService.InitializeOperationContext(CommerceRequest request)
   at Microsoft.Commerce.Broker.OperationService.ProcessRequest(CommerceRequest request)

Additional Info:

MachineName :
TimeStamp : 7/20/2011 1:11:36 PM
FullName : Microsoft.Commerce.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
AppDomainName :
ThreadIdentity :
WindowsIdentity : ServerName\Administrator