Salmon Developer Training:: - Module: Attribute Dictionary
Salmon Developer Training:: - Module: Attribute Dictionary
Salmon Developer Training:: - Module: Attribute Dictionary
Catentry CatentryAttr
Attr AttrVal
AttrDesc AttrValDesc
Data Model (Contd)
Attr - stores attribute dictionary attributes. These attributes can be used for descriptive or
defining purposes (SKU resolution), and can be shared by catalog entries.
Attrdesc – stores language specific attribute description.
AttrVal – stores an attribute value that can be a sharable global attribute value or a local
attribute value defined for a catalog entry.
AttrValDesc – stores the language specific attribute value description
CatentryAttr - stores the link between the catalog entry and the attribute dictionary
attribute and the relevant attribute dictionary attribute value. This is where an attribute is
used as defining or descriptive by setting the usage field to the appropriate value.
Catentry - This table holds information relating to a catalog entry. Examples of catalog
entries include products, items, packages, and bundles.
Defining Attributes
Defining attributes are the values used in SKU resolution; such as
colour or size.
<attrval attrval_id="@Size@ATTR_DICT_ID;@Small"
attr_id="@Size@ATTR_DICT_ID;" identifier="Small" valusage="1"
storeent_id="&DATALOAD_CATALOG_ASSET_STORE_ID;" />
<attrvaldesc attrval_id="@Size@ATTR_DICT_ID;@Small"
language_id="&en_US;" attr_id="@Size@ATTR_DICT_ID;" value="Small"
valusage="1" sequence="0" stringvalue="Small" />
<attrval attrval_id="@Size@ATTR_DICT_ID;@Medium"
attr_id="@Size@ATTR_DICT_ID;" identifier="Medium" valusage="1"
storeent_id="&DATALOAD_CATALOG_ASSET_STORE_ID;" />
<attrvaldesc attrval_id="@Size@ATTR_DICT_ID;@Medium"
language_id="&en_US;" attr_id="@Size@ATTR_DICT_ID;" value="Medium"
valusage="1" sequence="0" stringvalue="Medium" />
<attrval attrval_id="@Size@ATTR_DICT_ID;@Large"
attr_id="@Size@ATTR_DICT_ID;" identifier="Large" valusage="1"
storeent_id="&DATALOAD_CATALOG_ASSET_STORE_ID;" />
<attrvaldesc attrval_id="@Size@ATTR_DICT_ID;@Large"
language_id="&en_US;" attr_id="@Size@ATTR_DICT_ID;" value="Large"
valusage="1" sequence="0" stringvalue="Large" />
Sample load File
Sample file shows how to set up the Size attribute with 3 attribute values ‘Small’,
‘Medium’ and ‘Large’
Displayable 0 = Not displayable on WFE, 1 or Null = Displayable
Searchable 1 = Searchable and the value will be picked up by SOLR
automatically, 0 = Not Searchable
Comparable Part of WC Compare functionality. 1 = attribute can be compared, 0 =
Cannot compare attribute
ValUsage 1 = Predefined, Null = Assigned
Sequence Affects the display Order of the attribute values on the WFE.
If the dropdown sequence because of popularity for the size attribute
was Medium, Small, Large rather than Small, Medium, Large then
assigning Medium a sequence of 1, Small a sequence of 2 and Large
a sequence of 3 would achieve this.
Updating Attributes
• When you change an attribute value the attribute value is updated for all
catalog entries that it is linked to.
• When you change defining attributes, any updates to the properties or
predefined values are automatically reflected within all catalog entries that use
the attribute.
• Changing a catalog entry to have say it’s ‘LowStock’ attribute changed from
‘Yes’ to ‘No’ doesn’t require the attribute value to be updated as both values
would exist as predefined values. The relevant catentryattr record needs to be
changed to link the required attr and attrval records to the catalog entry.
Assigning Attributes to Products
• Assigning attributes to products is done by creating catentryattr records that
link the catalog entry to the relevant attribute and attribute value records.
• The method for doing this is dependant on where the product data is being
mastered and how that data is being fed into WC.
• Since WC is not a PIM its quite normal to receive product data via an interface
and this interface would then be responsible for maintaining attributes and
assign them to products.
• As previously stated there are many ways to get data into WC and because
this module is using idresload then any interface process would output an
idresload xml file.
<catentryattr attr_id="500" attrval_id="702" usage="1" sequence="1.0"
catentry_id="8231465" />
Best Practices