Product properties

Overview
Properties describe items in a structured way rather than in prose: groups such as colour, size or material, each with their options.
Two markers per group decide what it does:
| Marker | Effect |
|---|---|
| Variant-forming | the group spans variants — colour × size produces an item's combinations |
| Filterable | the group is available as a filter |
The two are independent. A group can be filterable without forming variants — material, for instance, describes without multiplying the product. Marking everything variant-forming produces a flood of items nobody maintains.
Core tasks
Create a group. New group requires a code, display type, sort order and the markers variant-forming, filterable and active. Name, short and long description are maintained per language.
Maintain options. Per group the possible values, with code, value per language, sort order and active state.
Add images. Choose Image in the dialog sets the group image. If the display is image or colour, every option also gets its own image column — the fabric pattern for the option check, for instance. The choice runs through the file storage (pick or upload); it is saved with the dialog. Remove takes the image off, the file stays in the storage.
Note: options are never deleted. Existing options are updated; **hiding happens through active**. That is deliberate — a deleted option would orphan the items and documents using it.
Fields in detail
The What it does column answers what changes in the system — not what the field is called. The grey name behind the label is the API field: the same thing runs under that name through automation, import and AI tools.
Property group
| Field | Required | Values / format | What it does |
|---|---|---|---|
Code code | yes | text, max. 50 characters | The group's identifier, such as colour or size. Do not change it once articles carry values from it. |
Display displayType | no | select, colour, image, text | How the values are shown in the catalogue. Colour shows swatches instead of words, image small previews — that is the difference between a list and a usable selection. |
Forms variants variantForming | no | yes/no | Whether variants may be built from this group. Only then does "colour: blue" become an orderable version of its own rather than a mere detail. |
Filterable filterable | no | yes/no | Whether the catalogue can be filtered by it: only filterable, active groups appear in the article list under Manufacturer & properties, with a hit count per value (see Products). |
Values options | no | list of values | The possible values with label, colour or image — depending on the display. An option's image is options[].mediaFileId (file id, null removes it), plus mediaFileUlid when reading. In the form the image column only appears for the display image or colour. |
Image mediaFileId | no | image file from the file storage; through the interface the file id, 0 removes the image | An image for the group itself. When reading, mediaFileUlid is provided as well (preview, download). |
Translations translations | no | labels per language | What group and values are called in other languages. |
Order sortOrder | no | number | Position in filter and article mask. |
Active active | no | yes/no | Off means no longer assignable; existing assignments remain. |
Settings & permissions
- Module
module.products. - Permission
products.catalog.manage. - The code is permanent, the per-language label changeable at any time.
- Variants are created on the item, from the groups marked variant-forming here, see
FAQ & troubleshooting
Variants cannot be spanned on an item. No group is marked variant-forming.
An option cannot be deleted. By design — switch active off. Existing assignments stay readable.
A property does not appear as a filter. Check the filterable marker.
How many variant-forming groups make sense? Very few. Two axes with five options each already give 25 variants; three axes overwhelm any maintenance effort.