The Commerce Server objects, in the center of the figure at the beginning of this overview, constitute the heart of Commerce Server. These objects are what stand between the Web site data that is stored within SQL Server on the one hand, and the various clients of that data in the Commerce Server user interfaces and a Commerce Server Web site on the other. There is almost never a good reason to go directly to the database tables within SQL Server, and indeed, doing so can render your Commerce Server installation inoperative and unsupportable. Note that there are some configurations of Commerce Server that use both SQL Server and the Active Directory (AD) to store profile data.
Commerce Server objects can be logically grouped according to their function. For example, there is a set of objects used to manage catalogs and catalog data, and there are other objects used for managing different types of profiles, such as user profiles and organization profiles. Rather than being the type of object model that starts with a root object from which all other objects are accessed, Commerce Server objects tend to be much more independent, or related to each other in small groups.
Another way in which the Commerce Server objects and their methods can be categorized is as design-time or run-time. In general, the distinction exists at the method level, but there are some objects that contain all design-time, or all run-time, methods. A design-time method is one that is not used from within the retail Web site, but is used from the Commerce Server user interfaces (Commerce Server Manager and Commerce Server Business Desk) to change values in the databases. For example, the method used to change a product property, such as the list price of that product, is the SetProductProperties method of the Product object. This method is not called from the Retail Solution Site, but is called from the Commerce Server Business Desk.
Run-time methods (and objects), on the other hand, are called from the retail Web site, whether it is based on the Retail Solution Site or otherwise. This is because most data used for constructing the Web pages in such Web sites is displayed, but not available for modification. In other words, it is read-only. Note that this is not true of all interactions on the retail Web site. Products orders are an obvious example of data provided by the shopper through the Web site that is written to tables in a database using Commerce Server objects. Interestingly, run-time methods are also called from the Commerce Server user interfaces, as these interfaces need to retrieve the data for display as well.
The Commerce Server Manager and the Commerce Server Business Desk both invoke various methods of the Commerce Server objects, both design-time and run-time, to perform their tasks. The Commerce Server retail Web site invokes, by definition, only the run-time methods of the Commerce Server objects to retrieve and occasionally update the data it requires to construct its Web pages.
Another broad distinction to be made among Commerce Server objects is that some objects are not related to the Commerce Server Business Process Pipeline System, and other objects are related to that system. With respect to the latter, these objects are either one of the several different pipeline objects themselves, or one of the numerous pipeline components that can be configured to be executed as part of a pipeline.
Generally speaking, a Commerce Server pipeline is a software infrastructure that defines and links one or more stages of a business process, running them in sequence to complete a specific task. Pipelines divide processing into stages, abstractions that describe a category of work. They also determine the sequence in which each category of work is performed. Each stage of a pipeline contains one or more pipeline components (COM objects) that, again, are run in the defined sequence. A pipeline configuration file (.pcf) defines the sequence of components that are run in the different stages of a pipeline.
Because of their nature as part of a programming platform, the Commerce Server objects are usually exclusively the domain of site developers. The various other types of participants: shoppers, administrators, and business managers, all are users of the objects, but they may not realize it. As with extensions to the Commerce Server interfaces, some of the skills required to extend the set of underlying objects that support Web site operations (though arguably not Commerce Server objects per se) may exceed the site developer's scripting abilities, and require more advanced, compiled language skills normally associated with software engineers.