Example: Attribute dictionary attributes

You can use the Data Load utility to insert, replace, or delete multiple attribute dictionary attributes.

This example uses a CSV file to demonstrate how to insert, replace, or delete your data. You can also create and use an XML formatted file to insert, replace, or delete your data. If you choose to create and use an XML formatted file, ensure that your XML elements use the same names as are used for CSV column names.

CSV column and XML element definitions

Identifier
(Required, String) The unique reference name for identifying the attribute. Either this field or the AttributeUniqueId is required.
AttributeUniqueId
(Required, Integer) The unique reference number of the attribute. Either this field or the Identifier is required.
Type
(Mandatory, String) The data type of the attribute.
  • STRING
  • INTEGER
  • FLOAT
This field cannot be null.
AttributeType
(String) The type of the attribute. Attribute type can be AllowedValues or 1 for an attribute with predefined allowed values; or AssignedValues, 2, or null for an attribute without predefined allowed values.
Language
(Integer) The language identifier for language-sensitive fields. For example: -1 for English, -2 for French.
LanguageId
(Integer) The language identifier for language-specific fields. For example:
  • -1 for English
  • -2 for French.
The Language column is renamed to LanguageId. You must specify only one language identifier; use LanguageId instead of Language as the language identifier.
(Integer) The language ID for language-specific fields (Name, ShortDescription, LongDescription, AuxDescription1, AuxDescription2, Thumbnail, FullImage, Published, and Keyword). For instance:
  • -1 for English
  • -2 for French.
Name
(String) The language-specific name of the attribute.
Description
(String) A description of this attribute. This field is language-sensitive.
SecondaryDescription
(String) Secondary description of this attribute. This field is language-sensitive.
GroupName
(String) The name of the attribute group this attribute belongs to. The GroupName column is renamed to AssociatedKeyword. Although both GroupName and AssociatedKeyword are supported and map to the same database column, use AssociatedKeyword instead of GroupName.
AssociatedKeyword
(String) An associated keyword for an attribute.
Field1
(String) A custom field for attribute information.
Footnote
(String) Use this field to store auxiliary attribute data such as a footnote.
UnitOfMeasure
(String) Use this field to specify the unit of measure that is used for the attribute.
The following fields are optional and are not included in the example:
Sequence
(Decimal) A number that is used to control the order in which attributes display for a catalog entry. Attributes display in ascending order. The default value is 0.
Displayable
(Boolean) Indicates whether an attribute is displayable. There is no business logic that is associated with the usage of this field. It is provided by default for you to extend to meet your individual business needs. Set the column value to be true for displayable attributes. Set the column value to be false or null for attributes that are not displayable. Any value other than true automatically defaults to false.
Searchable
(Boolean) Indicates whether an attribute is indexed by and can be located in the storefront by using WebSphere Commerce search. Set the column value to 'true' to make an attribute searchable. Set the column value to be 'false' or null for attributes that are not searchable. Any value other than 'true' automatically defaults to false.
Important: Once you set an attribute as searchable, you cannot use a loading utility or Management Center to remove an attribute from being searchable. You must manually update the database through SQL statements to remove the links in the WebSphere Commerce database and search index that make an attribute searchable.
When you load data to set or change a searchable attribute or to delete the attribute, the load operation can update the following WebSphere Commerce search database tables in addition to the attribute dictionary database tables. Configure the load operation to use the com.ibm.commerce.catalog.dataload.mediator.AttributeDictionaryAttributeSearchIndexMediator business object mediator.
  • SRCHATTR
  • SRCHATTRPROP
  • ATTRDICTSRCHCONF
  • SRCHPROPRELV
    Note: The load operation does not delete attribute data from this table.

    If you installed the interim fix, the load operation can delete attribute data from this table.

Comparable
(Boolean) Indicates whether an attribute is comparable. There is no business logic that is associated with the usage of this field. It is provided by default for you to extend to meet your individual business needs. Set the column value to betrue for comparable attributes. Set the column value to be false or null for attributes that are not comparable. Any value other than true automatically defaults to false.

If your store is based on the Aurora starter store, this field is used by the storefront. The storefront uses this field to determine whether to include an attribute on the Compare Products page.

Facetable
(Boolean) Indicates whether an attribute can be used for displaying facets in the storefront left sidebar to filter product listings. Facets are created in the storefront left sidebar, enabling usable filters to target meaningful product results. The storefront displays a count for each facet value. This count indicates the number of products that share that facet value. Set the column value to be true for attributes that can be used in faceted navigation. Set the column value to be false or null for attributes that are not for use in faceted navigation.Setting an attribute as for use in faceted navigation makes the attribute usable in the Search Criteria and Result target in marketing activities and search rules.
Important: When an attribute is specified as being used in faceted navigation, it is also specified as searchable in your storefront. Links are created for the attribute throughout the WebSphere Commerce database and search index. For reliability and consistency, these searchable links remain intact despite clearing the check box for making an attribute for use in faceted navigation. You cannot unmark an attribute as searchable. When an attribute is selected for use in faceted navigation, the attribute is automatically set as searchable in the storefront. Business users can remove the Use in faceted navigation setting, but they cannot remove the attribute from being searchable. To remove the attribute from being searchable, you must manually update the WebSphere Commerce database to remove the records that make the attribute searchable.
When you load data to set or change a faceted navigation attribute or to delete the attribute, the load operation can update the following WebSphere Commerce search database tables in addition to the attribute dictionary database tables. To update these search tables, configure the load operation to use the com.ibm.commerce.catalog.dataload.mediator.AttributeDictionaryAttributeSearchIndexMediator business object mediator.
  • FACET
  • SRCHATTR
  • SRCHATTRPROP
  • ATTRDICTSRCHCONF
  • SRCHPROPRELV
STOREDISPLAY
(Integer) Specifies that this attribute is for use as a ribbon ad in the storefront.
Merchandisable
(Boolean) Indicates that the attribute can be used as a merchandising attribute in the creation of search conditions for use by any of the following objects:
  • Marketing activities for finding catalog entries to recommend to customers in e-Marketing Spots.

    Merchandising attributes can also be used in search conditions within a marketing activity to identify a current page target.

  • Search rules for finding catalog entries.
  • Sales and rule-based categories for finding catalog entries to assign to the categories.
Only attributes with predefined values can be used as merchandising attributes. An attribute that is identified as for 'Use in merchandising' is intended for internal business use to create these rules and activities. If you set a merchandising attribute to be displayable, searchable, or facetable when you load information for an attribute, then the attribute can also appear on the storefront. Set the column value to be true for merchandising attributes. Set the column value to be false or null for attributes that are not for use in merchandising. Any value other than true automatically defaults to false. When you load data to set or change a merchandisable attribute or to delete the attribute, the load operation can update the following WebSphere Commerce search database tables in addition to the attribute dictionary database tables. Configure the load operation to use the com.ibm.commerce.catalog.dataload.mediator.AttributeDictionaryAttributeSearchIndexMediator business object mediator.
  • SRCHATTR
  • SRCHATTRPROP
  • ATTRDICTSRCHCONF
AttributeField1
(Integer) A user-defined field available for customization purposes.
AttributeField2
(Integer) A user-defined field available for customization purposes.
AttributeField3
(String) A user-defined field available for customization purposes.
Delete
(String) A flag that indicates whether to delete. To delete a row, specify 1.

CSV file with sample attribute dictionary attribute data

Insert or replace

In this example, the CSV file sample contains attribute dictionary data.

Delete

In this example, the CSV file contains sample attribute dictionary data to delete.

Mapping data

The following code snippet from the attribute dictionary attributes loader configuration file demonstrates how to map each value to a business object logical schema path.
Note: The value of field DisplayGroupName is changed from GroupName to AssociatedKeyword. GroupName remains the value for DisplayGroupName in earlier versions of attribute dictionary.
<_config:DataMapping>
        <_config:mapping xpath="AttributeIdentifier/ExternalIdentifier/Identifier" value="Identifier"/>
        <_config:mapping xpath="AttributeIdentifier/UniqueId" value="AttributeUniqueId"/>
        <_config:mapping xpath="AttributeDataType" value="Type" />
        <_config:mapping xpath="AttributeType" value="AttributeType" />
        <_config:mapping xpath="displaySequence" value="Sequence" />
        <_config:mapping xpath="displayable" value="Displayable" />
        <_config:mapping xpath="searchable" value="Searchable" />
        <_config:mapping xpath="comparable" value="Comparable" />
        <_config:mapping xpath="ExtendedData/Field1" value="AttributeField1" />
        <_config:mapping xpath="ExtendedData/Field2" value="AttributeField2" />
        <_config:mapping xpath="ExtendedData/Field3" value="AttributeField3" />
        <_config:mapping xpath="AttributeDescription/language" value="Language" />
        <_config:mapping xpath="AttributeDescription/language" value="LanguageId" />
        <_config:mapping xpath="AttributeDescription/Name" value="Name" />
        <_config:mapping xpath="AttributeDescription/Description" value="Description" />
        <_config:mapping xpath="AttributeDescription/ExtendedData/SecondaryDescription" value="SecondaryDescription" />
        <_config:mapping xpath="AttributeDescription/ExtendedData/DisplayGroupName" value="GroupName" />
        <_config:mapping xpath="AttributeDescription/ExtendedData/DisplayGroupName" value="AssociatedKeyword" />
        <_config:mapping xpath="AttributeDescription/ExtendedData/Field1" value="Field1" />
        <_config:mapping xpath="AttributeDescription/ExtendedData/Footnote" value="Footnote" />
        <_config:mapping xpath="AttributeDescription/ExtendedData/UnitOfMeasure" value="UnitOfMeasure" />
        <_config:mapping xpath="" value="Delete" deleteValue="1" />
</_config:DataMapping>
If you perform an insert or replace operation, do not specify the "Delete" column in the CSV file or you can leave the "Delete" column empty.

Business object mediator

The data load framework provides a business object mediator for inserting and replacing catalog entries. The mediator class name is com.ibm.commerce.catalog.dataload.mediator.AttributeDictionaryAttributeMediator.

Note: When you use a mediator that is provided with WebSphere Commerce with the Data Load utility, the utility assumes that you are loading data for all columns for a business object. If you want to update the data in only specific columns, configure a column exclusion list for the load process. A column exclusion list causes the Data Load utility to ignore specific columns during the load operation. If you do not use a column exclusion list, the utility updates all columns in the row of a database table row when the utility updates the row. If no value is set in the input file, the utility can replace the existing column value with a default value or set the value to be null. For more information, see Configuring a column exclusion list.