Inventory & Products | Products | Attributes

Attributes (Product Options)

Attributes are free options a merchant can offer on products — toppings on a pizza, meal bases, included drinks. This page explains the concept and the CMS setup; the API endpoints are documented separately (links at the bottom).

The model

Attribute sets            Attributes              Attribute values
  |____ Pizza options       |____ Included toppings  |____ Salami
  |____ Meal options        |                      |____ Onion
                            |____ Included drinks   |____ CocaCola 250 ML
                            |                      |____ Fanta 250 ML
                            |____ Meal base        |____ Rice
                                                   |____ Noodles
  • Attribute — a question ("Included toppings?"). An attribute with no predefined values is a free-text attribute.
  • Attribute values — the offered answers ("Salami", "Onion").
  • Attribute set — a named group of attributes ("Pizza options") that products attach. A set can be shared by many products, and since platform v3.83 a product can attach multiple sets.
  • Attribute use — the row that puts an attribute INTO a set with its picker rules: selection type (single choice / multi select), default selections, and max allowed options (0 = unlimited).

Where it is set up (CMS product editor)

Everything lives in the product editor's Attributes tab (Ominaisuudet):

  1. Attach sets — the multi-select at the top attaches one or more attribute sets to the product, in order. The first attached set is what the cash register carries.
  2. Build the sets — the builder under it manages the set definitions themselves (tenant-global, shared across products): add/rename attributes, add values, pick selection type, tick defaults, set max options.
  3. Ask at sale — the Ask for attribute values switch (isverpatrib) makes order/invoice lines ask for the selections when the product is added.
  4. Preview — the POS preview button shows the picker exactly as the sales screen will render it.

At sale time each selection becomes its own price-0 sub-line under the product line (labelled "Attribute: value"), so receipts and invoices show the choices.

Multilingual texts

Set, attribute and value names can be entered per language (the pencil icons open a language-tabs editor). The public API returns both the resolved text and the raw {lang_code: text} map (name / name_ml) so clients can localize.

API endpoints

Endpoint Purpose
get_product_attributes Read the tenant's set/attribute/value catalog, or one product's attached sets + flags
set_product_attributes Attach/detach sets on a product (replace-all, ordered) and set the ask-at-sale flag

Set definitions (creating sets/attributes/values) are maintained in the CMS Attributes tab — the API attaches existing sets to products.