Skip to content


An attribute is a named property that may be assigned to entities like product catalogue items, brands, global list items, etc.

This page explains attributes on a conceptual level but it might be easier to understand by looking at a few concrete examples.

Click to expand examples...
Attribute Multiple values Type Value Note
NAME No String "Lorem Ipsum" Simple attribute with a short textual value
COST_PRICE No Decimal 99.95 Simple attribute of numeric type
OPERATING_SYSTEMS Yes String "Windows 2016"
"Windows 10"
Multi-valued attribute meaning that a single product can have many values for this attribute.
SCREEN_RESOLUTION No Integer,Integer Width: 1600, Height: 1200 Simple attribute that has its value separated into two separate fields - width and height. Instead of saving it as a string "1600 x 1200", it is saved as proper numeric values in two fields.
IMAGE No Image link longsleeve_b A simple attribute using a so-called referential type which is a value that references some other entity - in this case a DAM image.
PRODUCT_IMAGE Yes Image,Alt text longsleeve_w, "Lorem ipsum"

longsleeve_b, "Dolor sit amet"
Attribute with two fields: Image and Alt text. It is a multi-valued attribute where each value is a combination of the two fields.

See more examples in Modelling attributes.


  • Attributes can be single-valued or multi-valued
  • Attributes can have multiple fields (up to four)
  • Attributes use data types as its foundation

Where can attributes be used?

Attributes can be assigned to several types of entities, including:

Attribute types

There are two types of attributes.

  • Single valued: has one value per entity
  • Multi valued: has multiple values per entity.


Please refer to examples above for a few concrete single valued and multi valued attributes

Attribute configurations

An attribute must be configured with fields and other settings before use.

PIM has a number of predefined configurations to choose from, including:

Configuration Field(s) Description Use when
Plain Value One field. Can be any of the data types. Only a simple value such as 45, "My string", True, etc. is needed.
RectangularArea Width, Height Two fields. Both must be numeric data types. The data you need to represent has a height and width component. Examples are areas, screen resolutions, etc.
CuboidVolume Width, Height, Length Three fields. All must be numeric data types. The data you need to represent has a height, width, and length component. An example is the volume of a kitchen cabinet etc.
Range From, To Two fields each of an optional data type as long as the type has a well-defined ordering such as numeric types, dates, timespans, character, etc. Note that in this context, strings don't have well-defined ordering and therefore is not applicable. You wish to register two values that mark the minimum and maximum bound of a range. This might be a start time and end time, or it might be a minimum age and maximum age, etc.
Quantified Item, Quantity Two fields. Item can be any of the data types. Quantity must be a numeric data type. You need to register a quantity along with an item of some sort. This can be used e.g. for clothing related attributes to describe a material/fabric and a quantity. For example 30% (quantity) and "Silk" (item).
Calculated Formula One field of type PString. Can contain a formula. You wish to calculate some value as a function of other values in the same attribute collection. Say you have a NAME attribute and you want to calculate the length of it. You can write a formula with the value "LEN(NAME)". Can also be used for string concatenation with the CONCAT function.
Unconstrained Field1[, Field2[, Field3[, Field4]]] At least one field, and up to four fields of an optional data type. Your requirements are not solved by any of the above configurations. This configuration allows you to define an attribute with up to four fields of any type. You can name each field as you like.


Attributes can have multiple fields (up to four) depending on the configuration of the particular attribute.

Most simple attributes like NAME, COST_PRICE, etc. only need to contain a single value.

Sometimes this is insufficient though. Consider more complex data like an area or volume. These need separate fields for Width, Height, and Width, Height, Length respectively.

Multiple fields are useful because they allow proper separation which improves data quality.

Each field has its own configuration which contains the field name, underlying data type, and display options.

Possible configurations are:

Configuration Description
PimTypedFieldConfiguration A field configuration that allows the full range of PIM data types to be used for the field.
TextualFieldConfiguration A field configuration that allows any textual data types to be used for the field. Textual types are types such as PString, PTranslatedString, etc. In general all types that contain the word "String" in the name.
PStringFieldConfiguration A field configuration that allows only theĀ PString data types to be used for the field. This is a system configuration that is used for calculated attributes that needs a string field to contain the formula.
NumericFieldConfiguration A field configuration that allows any numeric data types to be used for the field. Numeric types are types such as PInt32, PDecimal2, etc. In general all types that contain the words "Int" or "Decimal" in the name.
GlobalListReferencingFieldConfiguration A field configuration that doesn't allow free value to be specified. Instead values must reference a value in a global list. Basically the global list becomes a data source for the field allowing the user to only specify values that exist in the global list. See the "Binding attributes and/or fields to fixed lists of values" section below for further details.


Field configurations are not visible in the UI, however the UI and backend enforce them by only allowing users to pick settings that are compatible with the configuration.

It is only necessary to know about field configurations when using the api to create attributes.

Predefined values vs. global lists

PIM supports predefined attribute values which essentially is a way to restrict the range of values.

When using this feature, users are not able to assign any value to the attribute but must choose among the predefined values.

Predefined values have some overlap with global list referencing fields. The main difference being that a set of predefined values is an attribute data source while a global list is a field data source.

If an attribute has predefined values, those values include all fields.

If an attribute has a global list referencing field, then only that field is bound to the global list.


For attributes with a single field, predefined values and global lists are mostly equivalent.