Commerce Server Overview
Overview
Commerce Server 2007 is really an E-Commerce development platform which sits on top of several well designed and highly scalable SQL Server 2000 or SQL Server 2005 databases. Accessing these databases is done by a set of core subsystems (.NET 2.0 APIs) designed to make data access very simple for the developer yet powerful and extensible enough for any global enterprise to implement. Each core subsystem (as shown above) can be accessed directly through the API methods and properties or through web methods provided by the various web services. Each of these core subsystems was designed to perform a variety of e-commerce related tasks from presenting products to your customers (catalog system) through placing orders on your web site (orders system). All were designed to integrate with each other to provide the developer with an extensive array of tools with which to develop a robust E-Commerce solution.
Profiles System
One central feature used to store and retrieve user and organizational information is the Profile System. A profile is made up of any data you'd like to keep or display in your web application. For example the user profile may hold the basic information about a registered user on your web site such as first name, last name, age and gender while the organization profile may hold information such as company name, credit limit, etc. The entire Profiles System is fully extensible and can be easily customized for any number of scenarios. The key to remember about the Commerce Server Profiles System is that it can hold any number of different profiles such as addresses, users, organizations, blanket orders, credit cards and anything else you can think of.
Catalog System
I believe that the Catalog System is the "heart" of Commerce Server and it's generally where site users spend the majority of their time. It's also where site developers should spend the majority of their development time since a product catalog can "make or break" an e-commerce site! Luckily, Commerce Server 2007 comes with an excellent catalog system which makes it pretty easy to design and deploy product catalogs.
Inventory System
This "new" subsystem is a real "must-have" for any B2B e-commerce site and was one of the biggest shortcomings of Commerce Server 2000 and 2002. Basically this is how you manage inventory for the items sold on your site and processed through the orders system. But... it's not a full-fledged inventory management system and really wasn't design to be one! Think web site inventory not back-end (LOB) system inventory.
Marketing System
This system is really a collection of different features including discounts (very important), advertising & targeting (yawn) and direct mail (double yawn). Targeted content and advertising are obviously important for a B2C site but direct mail?
Orders System
It's also one of the most extensible parts of Commerce Server 2007. In fact, a developer can inherit from most of the base orders classes to extend them or even replace them as needed. And it's really pretty simple once you get over the shock of actually being able to do this. By the way, all the tools you need to extend this system (including an xsd and sproc generator) are included with Commerce Server 2007 as standard.
By Ravindra Published Date: 12/05/2008
The length of the 'messageid' attribute of the 'email' entity exceeded the maximum allowed length
Error Message:” The length of the 'messageid' attribute of the 'email' entity exceeded the maximum allowed length of '100'.”
Symptoms:
You receive the following error message:
#9628 - An error occurred while delivering the e-mail message with subject "RE: Xxx order confirmation AA: 05911" in mailbox query@xxx.com for delivery to http://sbs:6666/Xxx. System.Web.Services.Protocols.SoapException: Server was unable to process request.
At System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse (SoapClientMessage message, Web Response response, Stream response Stream, Boolean asyncCall)
At System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (String method Name, Object [] parameters)
At Microsoft.Crm.Sdk.Proxy.CrmService.Execute (Request Request)
At Microsoft.Crm.Tools.Email.Providers.CrmPollingMailboxProvider.DeliverMessage
Internal (EmailMessage email Message)
At Microsoft.Crm.Tools.Email.Providers.ExchangePollingMailboxProvider.Deliver
MessageInternal (EmailMessage email Message)
At Microsoft.Crm.Tools.Email.Providers.CrmPollingMailboxProvider.DeliverMessage (EmailMessage email Message)
At Microsoft.Crm.Tools.Email.Providers.CrmPollingMailboxProvider.Run ()\r\n
0x80044331
Cause:
This Issue occurs when length of the 'messageid' attribute of the 'email' entity exceeded the maximum allowed length.
Resolution:
To resolve the issue follow the steps:
Click on SettingsàCustomizationàCustomize Entities
Select Email Entity and go to messageid attribute and Change the length.
By Rakesh Published Date: 14/05/2008
Multi-Tenancy in Enterprise Edition
Start à Microsoft Dynamics CRM à Organizationsà Right click “New Organization”
Step1:
Define the organization name with ISO currency code

Step2:
Define the SQL server to create new database for this organization.
Note:
You need not load SQL server or deploy CRM again for Enterprise Edition, which really saves your time.

Step3:
Specify the Report Server URL

Step 4:

Each Organization Unit will have a separate Database and config db. This also means they are separate.
With the Enterprise edition you can have more than one Organization Units on a single Database. Data tables are designed to take that burden.
Note:
But all these will be on one domain which is hooked to an Active Directory.


When users sign into a Microsoft Dynamics CRM on-premise or partner-hosted system, they must enter the URL of the specific organization they want to access.
http://host/OrganizationName/


By Satish Published Date: 02/07/2008
Rename or Hide a Field in Dynamics CRM
To Hide or Rename a field in Dynamics CRM paste the code on the onload and publish the customization.
var writeInProducts = document.getElementById('navWriteInProducts' );
if(writeInProducts != null)
{
writeInProducts.innerHTML = writeInProducts.innerHTML.replace("Write-In Products","Test");
writeInProducts.innerHTML = writeInProducts.innerHTML.replace("Write-In Products","Test");
}
writeInProducts = document.getElementById('navExistingProducts' );
if(writeInProducts != null)
{
writeInProducts.parentNode.style.display ='none';
}
Figure:1

Figure:2

In Figure 2 you can see that the Existing products are hidden and Write-In Products got renamed by "Test".
By Rakesh Published Date: 02/07/2008
Install a Plug-in in Dynamics CRM
To add a Plug-in to the CRM Database the user has to be a member of the
Deployment Administrators group. My problem is to figure out if a user is in
this group. It seems that the Deployment Administrators group is neither a
CRM security role nor an active directory group.
Step 1:
First create a user in the Dynamics CRM.
To be a member of the deployment administrator group go to
Start -à Programs-à Microsoft Dynamics CRM --à Deployment Manager
Step 2:
Under Deployment Manager go to Deployment Administrators and on right corner of your window under actions click on “New Deployment Administrator”

Select the user for the New Deployment Administrator.

Once the user has been created in the Deployment Manger ,you can add plug-ins.

By Satish Published Date: 02/07/2008