Creating catalog data in XML format

You can create data that you want to upload into Management Center in an XML formatted file. This XML file must follow a specific XML format, which is similar in structure and content to the supported CSV format for uploading catalog data.

Before you begin

Ensure that you are familiar with the following topics: File format for uploading catalog data and Data Load utility CSV column and XML element definitions.

Procedure

  1. Open an XML or text editor.
  2. In the first line of your file, add the following code to define your file as an XML file:
    <?xml version="1.0" encoding="UTF-8"?>
  3. After the line that defines your file as an XML file, specify an element for the business object type that you are loading information about. You must specify this object type in the root element for your file by specifying the keyword for the business object. In this element, you must include an element name that distinguishes your root element from other elements within your file.
    This root element must be specified with the following format:
    <?xml version="1.0" encoding="UTF-8"?>
    <elementName loadItemName="keyword">
    </elementName>
    Where elementName is the distinguishing name for the root element, and keyword is the keyword that is used to identify the business object type that you are loading.
    For example, the following element is used to specify that a file contains catalog data.
    <?xml version="1.0" encoding="UTF-8"?>
    <CatalogObjects loadItemName="Catalog">
    </CatalogObjects>
    Note: The loadItemName declaration is required in files that are being upload with Management Center and optional for files that are loaded with the Data Load utility. As a best practice, include this declaration. By including the loadItemName declaration, your file can be loaded with both the Data Load utility or Management Center without requiring you to add the loadItemName declaration later.
    Choose one of the following keywords, type the keyword exactly as shown:
    • Attachment
    • AttachmentAsset
    • Catalog
    • CatalogDescription
    • CatalogEntryRelationship
    • CatalogGroup
    • CatalogGroupAsset
    • CatalogGroupAssociation
    • CatalogGroupAttachment
    • CatalogGroupCalculationCode
    • CatalogGroupDescription
    • CatalogGroupRelationship
    • CatalogGroupSEO
    • CatalogEntry
    • CatalogEntryAsset
    • CatalogEntryAssociation
    • CatalogEntryAttachment
    • CatalogEntryCalculationCode
    • CatalogEntryComponent
    • CatalogEntryDescription
    • CatalogEntryDescriptionOverride
    • CatalogEntryDescriptiveAttributeAndValue
    • CatalogEntryInventory
    • CatalogEntryATPInventory
    • CatalogEntryOfferPrice
    • CatalogEntryParentCatalogGroupRelationship
    • CatalogEntryParentProductRelationship
    • CatalogEntrySEO
    • CatalogEntryUpdate
    • CatalogEntryDescriptionUpdate
    • CatalogFilter
    • CatalogFilterCategory
    • CatalogFilterCatentry
    • CatalogFilterCondition
    • CatalogFilterConditionGroup
    • ListPriceList
    • ProductDefiningAttributeAndAllowedValues
    • SKUDefiningAttributeValue
    • AttributeDictionaryAttributeAndAllowedValues
    • AttributeDictionaryAttributeAllowedValues
    • CatalogEntryAttributeDictionaryAttributeRelationship
    • AttributeDictionaryAttributeFolderRelationship
  4. Following the line that defines the object type that your loading, specify the object that you are loading. Specify the object within an element that is nested within your root element.
    For example,
    <?xml version="1.0" encoding="UTF-8"?>
    <CatalogObjects loadItemName="Catalog">
      <Catalog>
      </Catalog>
    </CatalogObjects>
  5. Add the information for the object that you are loading. You can add this information as elements or as attributes in the element that specifies the object that you are loading.
    These attributes or elements must use the specific XML element name for the object. These names are the same as the CSV column names and are case-sensitive. You must enter these names exactly as they appear in the appropriate CSV column and XML element definitions topic. If you are adding custom information, you must enter the attribute or element names to be the same as the name in the corresponding mediator that maps the information to the correct location in the business object noun.
    • If you are adding your object information in XML elements, nest these elements within the object element you defined in the previous step. For example:
      <Catalog>
        <Identifier>Spring Fashions</Identifier>
        <MasterCatalog>FALSE</MasterCatalog>
        <Description>Spring Fashions</Description>
        <Name>Spring Fashions</Name>
        <ShortDescription>Spring Fashions</ShortDescription>
        <LongDescription>Fashions for the Spring season</LongDescription>
      </Catalog>
    • If you are adding your object information as attributes, these XML attributes must be included in the following format:
      <object attribute="attribute_value"> 
      Where object is the object that you are loading, and attribute is the name of the attribute that you are loading. For example,
      <Catalog Identifier="Spring Fashions">
    You can also include an element or attribute that specifies the sequence or delete value for the object. For example,
    • Attribute
      <CatalogEntry Sequence="1.0"  Delete="0">
      
    • Element
      <Delete>0</Delete>

    You can set the delete value to be 1 or 0. If you set the value to 1, then the object is deleted. If you specify the value as 0, or omit the value, the value defaults to 0 and no deletion occurs.

    Note: Working with element and attribute values:

    You can use either elements or attributes to add data to be loaded. Typically, they are loaded the same by using either method. However, they are loaded differently when the value is empty.

    For example, for a catalog entry, you can specify the Name use element:
    
    <CatalogEntry>
    <Name>Spring Fashions</Name>
    </CatalogEntry>
    
    Or, you can use an attribute:
    
    <CatalogEntry Name="Spring Fashions">
    </CatalogEntry>
    
    The preceding samples are equivalent when loading. However, if the value for the Name is empty, it is handled differently by the XML handler. That is, the following samples are handled differently:
    
    <CatalogEntry>
    <Name></Name>
    </CatalogEntry>
    
    
    <CatalogEntry Name="">
    </CatalogEntry>
    
    By default, all elements with empty values are treated as null. However, attributes with empty values are treated as empty values. That is, the value is null in the database if you use an element for Name, and the value is empty in the database if you use an attribute for Name. This default behavior can be changed by using the following optional configuration properties.
    ignoreEmptyElementText
    If set to false, empty elements are treated as empty values. The default value is true.
    ignoreEmptyAttributeValue
    If set it to true, empty attribute values are treated as null. The default value is false.
    The property can be specified under the <DataReader> element, <LoadItem> element, or <LoadOrder> element as:
    
    <_config:property name="ignoreEmptyElementText" value="false" />
    
    For more information, see Configuring the XML data reader.
  6. Optional: Repeat steps 4 and 5 to add information for more objects within your file. Each object must be specified within a separate XML element. Do not nest your objects deeply. Nest the element for each object you are including directly within your root element.
    For example, to include three catalog objects within a file, your file can resemble the following code:
    <CatalogObjects loadItemName="Catalog">
      <Catalog>
        <Identifier>Spring Fashions</Identifier>
        <MasterCatalog>FALSE</MasterCatalog>
        <Description>Spring Fashions</Description>
        <Name>Spring Fashions</Name>
        <ShortDescription>Spring Fashions</ShortDescription>
        <LongDescription>Fashions for the Spring season</LongDescription>
      </Catalog>
      <Catalog Delete="0">
        <Identifier>Summer Fashions</Identifier>
        <MasterCatalog>FALSE</MasterCatalog>
        <Description>Summer Fashions</Description>
        <Name>Spring Fashions</Name>
        <ShortDescription>Summer Fashions</ShortDescription>
        <LongDescription>Fashions for the Summer season</LongDescription>
      </Catalog>
      <Catalog Delete="0">
        <Identifier>Fall Fashions</Identifier>
        <MasterCatalog>FALSE</MasterCatalog>
        <Description>Fall Fashions</Description>
        <Name>Spring Fashions</Name>
        <ShortDescription>Fall Fashions</ShortDescription>
        <LongDescription>Fashions for the Fall season</LongDescription>
      </Catalog>
    </CatalogObjects>
  7. Save and close your file.
  8. Optional: Create data files for different business object types. Repeat steps 1-7.
  9. Optional: You can compress one or more XML files into a compressed file using a compression utility; password-encrypted compressed files are not supported.
    If you choose to compress your XML files into a compressed file, be aware of the following:
    • Catalog object types must be unique across all the XML files in the compressed file, that is, you cannot have more than one XML file that uses the same keyword. If you want to upload multiple objects of the same object type, include the information for the multiple objects within the same file.
    • Catalog object types are uploaded in the following order:
      Catalog Upload feature catalog object type load order
      Priority Keyword
      1 Catalog
      2 CatalogDescription
      3 CatalogGroup
      4 CatalogGroupAssociation, CatalogGroupDescription, CatalogGroupRelationship, CatalogGroupCalculationCode
      5 CatalogEntry
      6 ProductDefiningAttributeAndAllowedValues, CatalogEntryDescriptiveAttributeAndValue, AttributeDictionaryAttributeAndAllowedValues
      7 CatalogEntryAssociation, CatalogEntryComponent, CatalogEntryDescription, CatalogEntryCalculationCode, CatalogEntryInventory, CatalogEntryATPInventory, CatalogEntryOfferPrice, CatalogEntryParentCatalogGroupRelationship, CatalogEntryParentProductRelationship, AttributeDictionaryAttributeAllowedValues, CatalogEntryDescriptionOverride
      8 SKUDefiningAttributeValue, CatalogEntryAttributeDictionaryAttributeRelationship, AttributeDictionaryAttributeFolderRelationship
    Note: By default, the maximum file size for uploads is 10 MB.

Results

You have created XML files in a suitable format for upload with the Catalog Upload feature. When you upload an XML file, the catalog business object keyword and the element names for the object information are interpreted but are not included with the catalog object in Management Center or your database.