Attributes
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 | 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 | , "Lorem ipsum" , "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.
Overview:
- 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:
- Product catalogue items
- Product categories
- Brands
- Global list items
- Predefined attribute values
Attribute types
There are two types of attributes.
- Single valued: has one value per entity
- Multi valued: has multiple values per entity.
Tip
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. |
Other attribute configuration options
Units
An attribute can be configured to have a unit, which represents the unit in which the values on the attribute are expressed. Using a unit keeps the data model clean and consistent: the unit is always defined on the attribute itself, and there's no need for making the unit a part of the attribute values.
Units can be set directly on a single attribute, using the PIM data types, or by creating a global list which is marked as a Unit list
.
Bizzkit recommends
In order to avoid duplication of units across several attributes, it is recommended to create a global list which acts as a unit list. All units used in the data model can be stored in this global list and they can easily be used on an attribute configuration.
By using a segmented data type on the global list, for example PTranslatedString
, translations or channel specific values are handled within the global list and are applied to all attributes using this unit list.
Fields
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. |
Note
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.
Note
For attributes with a single field, predefined values and global lists are mostly equivalent.