The data model: attributes, formulas & lists
Attributes define your product structure. Learn about data types, formula fields (CONCAT, IF, COLLECT_VARIANTS), Lists for controlled vocabularies, and category-specific attributes.
Attributes are the fields that define your product data — from core fields like Title, Price, and SKU to custom fields like Material or Warranty Period. Each attribute has a data type (text, long text, number, boolean, date, list, multi-select), display settings, validation rules, and optional features like rich-text editing, formula computation, and unit-of-measure. A source_type indicator (user_provided, ai_generated, system, imported) tracks where data originated.
Formula fields
Computed attributes calculated from other fields. Supported functions include CONCAT (join text), UPPER/LOWER, IF (conditional logic), standard math, and COLLECT_VARIANTS which aggregates variant values up to the product level (e.g. 'Red, Blue, Green' from all variant colours). Formulas recalculate automatically when a referenced field changes.
Lists
Controlled vocabularies — predefined allowed values for dropdowns (Brand, Colour, Material, Size). They prevent free-text inconsistencies. Users can request a new value via the + icon, which notifies an admin for approval.
Category-specific attributes
Custom fields that appear only for products in particular categories — a T-Shirt sees Sleeve Length and Neckline; a Lamp sees Wattage and Bulb Base. This keeps the data model clean and focused.
Visual Data Model editor
The Data Model Fields tab mirrors your actual Product Detail Page. Field groups render as collapsible sections, and each attribute appears as the correct form field for its data type — exactly as your operators see it. Click any field to open a metadata editor popover where you can change the display label, data type, field group assignment, required/visible flags, and linked list. You can create new lists and field groups inline without leaving the page.
Many-to-many category assignments
Category-specific attributes support many-to-many assignment. Create a field once (e.g., flex_rating), then assign it to multiple categories — Snowboards, Skis, Bindings. The Categories tab shows "Also in: X, Y" badges for every shared attribute, and you can assign existing attributes to new categories without recreating them.