Commerce Foundation Product
A product represents a sellable unit in a catalog, and is always a child of a category. A Commerce Server 2009 product can represent a Commerce Server RegularProduct or a ProductFamily. A product can also have variants.
Model
This commerce entity can be modified, as required. This model, taken from the out-of-the-box site, is provided as an example.
<CommerceEntity name="Product">
<DisplayName value="Product">
<LanguageSpecific value="fr: Product" language="fr-CA"/>
</DisplayName>
<Description value="Product">
<LanguageSpecific value="fr: Product" language="fr-CA"/>
</Description>
<EntityMappings>
<EntityMapping csType="Microsoft.CommerceServer.Catalog.Product" csAssembly="Microsoft.CommerceServer.Catalog, Version=6.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<PropertyMappings>
<PropertyMapping property="BaseCatalogName" csProperty="BaseCatalogName" />
<PropertyMapping property="CatalogId" csProperty="CatalogName" />
<PropertyMapping property="DefinitionName" csProperty="DefinitionName" />
<PropertyMapping property="DisplayName" csProperty="DisplayName" />
<PropertyMapping property="Id" csProperty="ProductId" />
<PropertyMapping property="IsVirtualCatalog" csProperty="IsVirtualCatalog" />
<PropertyMapping property="ListPrice" csProperty="cy_list_price" />
<PropertyMapping property="UseCategoryPricing" csProperty="UseCategoryPricing" />
<PropertyMapping property="OriginalListPrice" csProperty="OriginalPrice" />
<PropertyMapping property="InternalId" csProperty="Oid" />
<PropertyMapping property="OriginalProductId" csProperty="OrigProductId" />
<PropertyMapping property="ParentInternalId" csProperty="ParentOid" />
<PropertyMapping property="InventoryCondition" csProperty="InventoryCondition"/>
<PropertyMapping property="DateModified" csProperty="LastModified"/>
</PropertyMappings>
<DefinitionMappings>
<DefinitionMapping definitionName="Rock-Shoes" csDefinitionName="Rockshoes" />
<DefinitionMapping csDefinitionName="Boots">
<PropertyMappings>
<PropertyMapping property="Sole" csProperty="SoleMaterial" />
</PropertyMappings>
</DefinitionMapping>
</DefinitionMappings>
</EntityMapping>
</EntityMappings>
<Properties>
<Property name="BaseCatalogName" dataType="String" />
<Property name="CatalogName" dataType="String" />
<Property name="DefinitionName" dataType="String" />
<Property name="DisplayName" dataType="String" />
<Property name="Id" dataType="String" />
<Property name="IsVirtualCatalog" dataType="Boolean" isStronglyTyped="1" />
<Property name="ListPrice" dataType="Decimal" />
<Property name="UseCategoryPricing" dataType="Boolean" />
<Property name="CatalogId" dataType="String" />
<Property name="DateModified" dataType="DateTime"/>
<Property name="OriginalListPrice" dataType="Decimal" />
<Property name="InternalId" dataType="Integer" />
<Property name="OriginalProductId" dataType="String" />
<Property name="ParentInternalId" dataType="Integer"/>
<Property name="InventoryCondition" dataType="Integer" isStronglyTyped="true">
<EnumeratedValues >
<EnumerationEntry value="0">
<DisplayName value="In Stock"/>
</EnumerationEntry>
<EnumerationEntry value="1">
<DisplayName value="Pre Ordered"/>
</EnumerationEntry>
<EnumerationEntry value="2">
<DisplayName value="Back Ordered"/>
</EnumerationEntry>
<EnumerationEntry value="3">
<DisplayName value="Out of Stock"/>
</EnumerationEntry>
</EnumeratedValues>
</Property>
<Property name="IntroductionDate" dataType="Date">
<DisplayName value="Date of Introduction">
<LanguageSpecific value="fr: Date of Introduction" language="fr-CA"/>
</DisplayName>
<Description value="Product Introduction Date of Introduction">
<LanguageSpecific value="fr: Product Introduction Date of Introduction" language="fr-CA"/>
</Description>
<Constraints>
<Compare operator="LessThan" propertyToCompare="DiscontinueDate">
<Message value="Date of Introduction must be less than Discontinue Date.">
<LanguageSpecific value="fr: Date of Introduction must be less than Discontinue Date." language="fr-CA"/>
</Message>
</Compare>
</Constraints>
</Property>
<Property name="Sole" dataType="Integer">
<Description value="Material that the sole is made of" />
<DefaultValue value="1"/>
<!--When overriding an Enumerated property this entry is required even if the Enumerated Values are not overriden.-->
<EnumeratedValues>
<EnumerationEntry value="0">
<DisplayName value="Rubber">
<LanguageSpecific value="Caoutchouté" language="fr-CA"/>
</DisplayName>
</EnumerationEntry>
</EnumeratedValues>
<Constraints>
<clear/>
<RequiredProperty>
<Message value="Sole material must be specified" />
</RequiredProperty>
</Constraints>
</Property>
</Properties>
<Relationships>
<Relationship name="BaseCatalog" type="Relationship" modelName="Catalog" isMultipleItems="false"> </Relationship>
<Relationship name="PrimaryParentCategory" type="Relationship" modelName="Category" isMultipleItems="false"> </Relationship>
<Relationship name="AncestorCategories" type="Relationship" modelName="Category" isMultipleItems="true"> </Relationship>
<Relationship name="CanonicalCategories" type="Relationship" modelName="Category" isMultipleItems="true"> </Relationship>
<Relationship name="DiscountDefinitions" type="Relationship" modelName="DiscountDefinition" isMultipleItems="true"/>
<Relationship name="ParentCategories" type="Relationship" modelName="Category" isMultipleItems="true"> </Relationship>
<Relationship name="RelatedCategories" type="Relationship" modelName="Category" isMultipleItems="true"> </Relationship>
<Relationship name="RelatedProducts" type="Relationship" modelName="Product" isMultipleItems="true"> </Relationship>
<Relationship name="CrossSells" type="CatalogRelationship" modelName="HierarchicalCatalogEntity" isMultipleItems="true" >
<DisplayName value="Cross-Sell Products">
<LanguageSpecific value="fr: Cross-Sell Products" language="fr-CA"/>
</DisplayName>
<Description value="Cross-Sell Products">
<LanguageSpecific value="fr: Cross-Sell Products" language="fr-CA"/>
</Description> </Relationship>
<Relationship name="Variants" type="Relationship" modelName="Variant" isMultipleItems="true" >
<DisplayName value="Variants">
<LanguageSpecific value="fr: Variants" language="fr-CA"/>
</DisplayName>
<Description value="Product Variants">
<LanguageSpecific value="fr: Product Variants" language="fr-CA"/>
</Description> </Relationship>
</Relationships>
</CommerceEntity>
Properties
Property |
Type |
Description |
---|---|---|
BaseCatalogName |
String |
The name of the base catalog for this product. |
CatalogId |
String |
ID (CatalogName) of the containing catalog. |
CatalogName |
String |
The name of the catalog for this product. |
DateModified |
DateTime? |
Date the commerce entity was modified. The value comes from LastModifed. |
DefinitionName |
String |
Name of this object's definition. |
DisplayName |
String |
Display name for this object. |
Id |
String |
Unique identifier of the commerce entity. This value comes from the category name. |
InternalId |
int? |
Maps to the Commerce Server object's object ID property, it is a unique DB key. |
InventoryCondition |
int? |
The inventory condition of this product's inventory item for the specified inventory catalog. Options include: 0 - In stock. |
IsVirtualCatalog |
bool? |
Type of Catalog. If True: catalog is virtual |
ListPrice |
decimal? |
List price for this product. |
OriginalListPrice |
decimal? |
List price of the object when it was created. |
OriginalProductId |
String |
productId with which this object was created. |
ParentInternalId |
int? |
Maps to the Commerce Server object's object ID property, it is a unique DB key. |
UseCategoryPricing |
bool? |
Denotes whether the category pricing should be used. |
Relationships
Property |
Description |
---|---|
AncestorCategories |
List of categories walking up the ancestral chain. |
BaseCatalog |
Relationship to the containing base catalog for this object. This is the same as the catalog for non-virtual catalogs. |
CanonicalCategories |
List of categories walking up the primary parent ancestral chain. |
CrossSells |
Relationship list of all cross sells for this product. |
DiscountDefinitions |
Relationship list of all DiscountDefinition objects for this category from the Marketing System. |
ParentCategories |
Relationship list of all of this category’s parents. |
PrimaryParentCategory |
Relationship to the primary parent category for this object. |
RelatedCategories |
Relationship list of all of this category’s related categories. |
RelatedProducts |
Relationship list of all of this category’s related products. |
Variants |
Relationship list of the product's variants. |
Supported Operations
The product commerce entity supports the following operations:
Commerce Foundation CatalogEntity CommerceQuery
Commerce Foundation Category CommerceQuery
Commerce Foundation Product CommerceQuery
See Also
Other Resources
Developing with Commerce Server 2009
Developing with the Commerce Foundation Catalog System
Commerce Foundation CatalogEntity