The goal of a product information management system is to be the single source of truth for all your product data in the best possible quality. You can store text information, product relations and other data types, and binary assets and categories.
This document describes what attributes are and how to manage them.
Concept
Section titled “Concept”It’s crucial to have all pieces of information in dedicated fields. We call these fields “product attributes.” Typical examples for attributes are “product name”, “width”, “material”, “color”, … If you’re working with Excel or databases, one product attribute will store the data of one column in a worksheet.
Note: Do not add all those data in one single text attribute. Prefer one attribute for each fact.
A selling price is not an attribute: a product variant has its own prices, in price lists — see Money attributes and prices.
Units and measurement sets
Section titled “Units and measurement sets”An Integer number or Number with decimals attribute can have a Unit, such as kilograms, set on its Settings tab. Its values are plain numbers in that unit, and the app shows the unit after them. For a product’s dimensions, the Measurement set type holds two to four measurements, such as length, width and height, in one unit. New attribute offers it as three ready sets: Measurement set (length × width × height), (width × height) and (width × height × depth).
An attribute with a unit can’t be Translatable, and a measurement set is never translatable or indexed. Changing a unit converts no value. See Measurements and units.
Attribute sections
Section titled “Attribute sections”An attribute is always part of one attribute section — just a group for better readability.
Example:
- Section “Technical details” with attributes “power consumption”, “voltage”, …
- Section “Common” with “name”, “long description”, “short description”, “brand”, …
Name and labels
Section titled “Name and labels”An attribute has one name, the same in every language, and can have a label in each of your languages. Wherever the app shows an attribute — in the product editor, on the products list, and in every list, tile and picker under Settings — it shows the attribute’s label in your working language, or its name where it has no label in that language. Two people with different working languages therefore see different words for the same attribute.
Labels do not use fallback languages. An attribute with no label in your working language shows its name, even when its fallback language has a label.
| Field | Where you set it | What it is |
|---|---|---|
| Name | The attribute’s General tab | The attribute’s one name, the same in every language. Shown wherever the attribute has no label in your working language. |
| Label translations | The attribute’s Label translations tab, one field per language | What the attribute is called in each language. Optional. |
| Code | The attribute’s General tab, when you create it | Identifies the attribute in imports, exports and templates. The same in every language, and locked once the attribute is saved. To match attributes in a file you exported, use the code: a label changes with the working language. |
Labels are separate from Translatable: every attribute can have labels, while Translatable decides whether the attribute’s values differ per language.
Finding an attribute
Section titled “Finding an attribute”| Where | What it matches | What it finds |
|---|---|---|
| The Label column filter on the Attributes list | The label, the name and the code | The attribute |
| An attribute picker, as you type | The label, the name and the code | The attribute |
| The search box on Attributes & sections | A section’s name, and each attribute’s label, name and code | The section that holds the attribute |
The Attributes list heads its first column Label, and its export writes what the list shows under that header.
Edit attributes
Section titled “Edit attributes”- In the sidebar, open Settings → Attributes & sections.
- Select the section that holds the attributes, or create a new section and give it a Section name.
- Add attributes with New attribute, change them, or change their order, as A section’s attributes describes.
- Choose Save. Nothing you changed in the section’s attributes is saved before that, and leaving the page without saving loses it. A change to an attribute reaches every product type that includes it. A section you open from a product type is saved by its own window’s Save instead — see Product types.
- Open Settings → Product types and tick each new attribute in the product types that need it (Attribute sections).
A section’s attributes
Section titled “A section’s attributes”A section lists its attributes in their order, one row per attribute. Each row shows, from left to right:
| Part of the row | What it shows |
|---|---|
| The handle | Drag the row by it to move the attribute. |
| The type | The attribute type’s icon and its name, such as Text, Yes/no, Integer number, Number with decimals or Measurement set. |
| The name and the code | The attribute’s label in your working language, or its name, followed by its code. |
| The properties | One word for each of these properties the attribute has, in this order: Common, Translatable, Internal, Required. A property the attribute does not have shows nothing. |
| ✎ Edit attribute | Opens the attribute’s window. |
| ⋯ More actions | Duplicate, Delete, Move up and Move down. |
One line above the rows says what each property word on the page means:
| Word | What it means |
|---|---|
| Common | The attribute is in every product type and always included. See Common attributes. |
| Translatable | The attribute has one value per language. |
| Internal | The attribute is hidden from the brand portal. Channels still export it. |
| Required | A product variant needs a value for it to be published. |
The line names only the words that rows on the page show, and there is no line while no row shows one.
To move an attribute, drag its row by the handle; a line shows where the row will land, and Escape puts it back where it was. Without a mouse, choose Move up or Move down under ⋯: each moves the row one place. Move up is not available on the first row, Move down not on the last.
The section has no search of its own. Every name and code is shown in full, however long, so your browser’s find in page (Ctrl+F, or ⌘F on a Mac) finds an attribute in a long section by either.
A translatable attribute cannot be indexed or identify a product
Section titled “A translatable attribute cannot be indexed or identify a product”An attribute marked Translatable cannot also be marked Indexed, and cannot hold the role system.identifier or system.basecode — see Attribute roles. Indexed, Translatable and Roles are all on the attribute’s General tab.
A section that holds such an attribute is not saved. Choosing Save shows:
An attribute with the system.identifier or system.basecode role, or marked Indexed, can’t be Translatable. Move the role to an attribute that isn’t Translatable, or turn off Indexed.
The message does not name the attribute: look for the rows that show Translatable in the section.
The Assign attribute roles dialog shows the same words: it saves the whole section that holds the attribute you pick, so it refuses any role while that section holds such an attribute.
| The attribute | What to do |
|---|---|
| Saved, and marked Indexed | Turn off Indexed. If it also holds either role, see the next row. Translatable cannot be changed once an attribute is saved. |
Saved, with system.identifier or system.basecode |
Move the role to an attribute that is not translatable. |
| New, not saved yet | Turn off Translatable, or do either of the above. |
Delete an attribute
Section titled “Delete an attribute”Deleting an attribute deletes its values on every product and removes it from every product type that includes it. It cannot be undone.
- In the sidebar, open Settings → Attributes & sections, and select the section that holds the attribute.
- On the attribute’s row, choose ⋯ More actions → Delete. The app asks
Delete "‹name›"?; confirm with Delete attribute. - Choose Save. The attribute is deleted only when the section is saved.
| What stands in the way | What the app does |
|---|---|
| A product type still includes the attribute | The save stops at Couldn't save the section — At least one product type still includes “‹name›”. Choose Remove and save to remove the attribute from every product type that includes it and save the section. |
| A variant configuration splits products into product variants by the attribute | The save stops with It’s used by at least one product type., and Remove and save is not offered. Change those variant configurations so that none splits by the attribute, then save the section again. |
Filters and sorts that named the attribute
Section titled “Filters and sorts that named the attribute”A filter can still hold a condition on an attribute that has since been deleted, and a list can still be sorted by it. That condition, or that sort, is ignored: the filter works as if the condition had never been written, and whatever reads it keeps working. Usually that selects more than before; where the condition sat in an OR group, it selects less.
| The filter was | It now works as |
|---|---|
| Only a condition on the deleted attribute | No filter: everything matches |
| Color is red AND Brand is Acme, with Color deleted | Brand is Acme |
| Color is red OR Brand is Acme, with Color deleted | Brand is Acme — red products of other brands drop out |
| A group whose only conditions were on deleted attributes | As if the group were not there |
This applies wherever a filter or a sort selects products or custom entity records to read:
- a channel’s feed — see the feed’s filter;
- a product view, which is also sorted by its other sort columns only;
- a brand portal collection.
An action that changes every product a filter selects is refused instead. A bulk edit of products selected through such a filter — changing values, publishing, unpublishing or deleting — stops before it changes anything. The job still finishes, with no product changed and a message such as Couldn’t run the bulk edit. Open the job’s log file to see why. Its log file, bulk-edit-log.txt, names the deleted attribute by its code, as Data.‹code›. The list behind it, and the number of products the bulk edit window counts, already leave the condition out; the refusal keeps the edit from reaching products the filter was never meant to select.
Before you delete an attribute, check which channels, product views and collections filter or sort on it, and change those filters first.
Delete a section
Section titled “Delete a section”Deleting a section deletes every attribute in it, with their values on every product, and removes those attributes from every product type that includes them. It cannot be undone.
- In the sidebar, open Settings → Attributes & sections.
- On the section’s row, open the ⋮ menu and choose Delete — or, with the section open, choose Delete at the right end of the bar that holds Save. The app asks
Delete "‹name›" and its ‹n› attributes?(… and its attribute?for one,Delete "‹name›"?for an empty section). - Confirm with Delete section. The section is deleted at once; there is no Save to choose.
| What stands in the way | What the app does |
|---|---|
| Product types still include the section’s attributes | Asks again — Remove "‹name›" from its product types and delete it? — with the same Delete section button. |
| A variant configuration splits products into product variants by one of the section’s attributes | Refuses: Couldn't delete "‹name›", naming each such attribute and the product types whose variant configurations split by it. Change those variant configurations so that none splits by the attribute, then delete the section again. |
How To…
Section titled “How To…”Change Attribute Type or Translatable Settings Later?
Section titled “Change Attribute Type or Translatable Settings Later?”The attribute type and translatable settings affect how data is stored in database. For this reason, you cannot change those settings for existing attributes. If you need to change them, follow the following procedure:
- Export products (product list > export) and select the product identifier column and the column you need to change
- Verify your export and ensure it contains the proper data
- Delete the attribute. Until step 4, filter conditions on it are ignored — see Filters and sorts that named the attribute.
- Create a new attribute with the same name and code. The old values are removed in the background, from every product not saved since the delete. Filter conditions on that code apply to it again; check that each still fits the new type.
- Enable the new attribute in product types
- Re-import products from step 2 (product list > import). This is what brings the values back.
Related Articles
Section titled “Related Articles”- Product types - enable attributes for product types
- Common attributes - enable attributes for all products
- Custom entities - the attributes of a custom entity, listed the same way
- Money attributes - amounts with a currency
- Measurements and units - numbers with a unit, and measurement sets for dimensions
- Optimize catalog structure

