Import Semantics

This section describes the semantics that apply when importing a Commerce Server Catalog XML file.

Catalog Schema Semantics

Catalog Data Semantics

Catalog Schema Semantics

Schema defined in the XML file must not conflict with any schema elements (product, category, and property definitions) that are already defined in the catalog database. If there is a conflict then a descriptive error will be written to the application event log and the import will be abandoned. Schema conflicts can include:

  • Redefining a property to use a different data type than it is already defined as.

  • Redefining a product or category definition to have a different set of member properties.

Schema elements are never deleted as a result of doing a Commerce Catalog XML import — only new schema is added.

The data types that are referenced in the Commerce Catalog XML format are mapped to SQL Server data types as follows:

Catalog XML data type SQL data type
string nvarchar
number int
bignumber * bigint  *
datetime datetime
currency money
money money
boolean bit
enumeration nvarchar(128)
real real
float decimal
filename nvarchar(256)

Ee825105.note(en-US,CS.10).gif Note

  • The asterisk (*) indicates data types that are only supported on SQL Server 2000.

  • The bignumber, boolean, and real data types are not currently supported byCommerce Server Business Desk.

Catalog Data Semantics

A Catalog XML file can define new catalogs or it can define updates to catalogs that already exist in the Catalog database.

If a catalog that you want to import already exists in the database, the existing catalog can be replaced by the imported catalog, or a merge import can be performed. Follow the rules listed below if you decide to run a merge import:

  • Products can be modified or added but cannot be deleted.

  • Product variants can be modified or added but cannot be deleted.

  • Categories can be modified or added but cannot be deleted.

  • Be aware that a product element that has the same identifying properties as a product that already exists will cause the existing product to be updated. This product element can specify only a subset of the fields that apply to that product in order to update certain properties (for example, to update only the description property or the price).

  • If a product that you want to import already exists in the database (for example, it has the same identifier as an existing product), but is based on a different definition, then the existing product in the database will be deleted and replaced with the new product.

  • If a product being imported already exists in the database you must specify all the parent categories and all the relationships each time the product is imported (or else those relationships will be deleted).


All rights reserved.