Configuration · Extra attributes

Defines the custom fields a centre can add to stores and proposals: a label, a code, a data type (text, HTML, image, URL, address, audio, activity, form, custom form, gift card, gift-card admin) and the channels it applies to, with a CSV export.

AreaConfiguration
Routesconfiguration.extra-attributes · configuration.extra-attributes.index · configuration.extra-attributes.new · configuration.extra-attributes.edit
Centre modulesextra
Staff levelsroot · admin · manager
Modelscommerce-extra · extra · extra-language · language · proposal-extra
UI labeltitle.header.configuration.extra-attributes / menu.navbar.configuration.extra
Coverage4 use cases · 1 happy · 5 failure

Known issues (1)

How it works

This is the extensibility mechanism behind the store and proposal editors: linkedModel ∈ all / commerce / proposal decides where the field appears, and extraType decides the input widget. Channel selection is validated conditionally — required only when neither channelWeb nor channelApp is set — and channelWebIsDisabled can lock the web option. Per-language labels come from extra-language. Because the consuming forms build their own "<label> is required" message for required extras, the label chosen here leaks into user-facing error text untranslated.

Use cases

Why someone opens this (4)

  • Adding an ‘Opening hours’ HTML field to every store.
  • Attaching a centre-specific audio description field to proposals.
  • Adding a gift-card field only for Fideliza-enabled centres.
  • Exporting the extra-attribute catalogue for documentation.

Path map

flowchart LR
    F(["Extra attributes"]):::feat
    F --> H1["Store extra created"]:::ok
    F -.-> X1["Label or code missing"]:::bad
    F -.-> X2["Type missing"]:::bad
    F -.-> X3["Linked model missing"]:::bad
    F -.-> X4["No channel"]:::bad
    F -.-> X5["Deleting an extra with data"]:::bad
    classDef feat fill:#566066,stroke:#566066,color:#ffffff,font-weight:bold
    classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e
    classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13

Happy paths

Store extra created

  1. Admin creates an extra with a label, a code, type html and linked model commerce.
  2. Channels are selected (or the app/web flags set).
  3. Per-language labels are filled.
  4. The field now appears on the store editor’s extra-attributes step.

Failure paths

QA checklist

Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.

  • ✅ Store extra created
  • ⛔ Label or code missing
  • ⛔ Type missing
  • ⛔ Linked model missing
  • ⛔ No channel
  • ⛔ Deleting an extra with data

Implementation


Generated from doc/feature-inventory.json · id config-extra-attributes · commit 276788ca6