Skip to main content
Attributes settings in the admin

Settings > Attributes & Tags

Definition

Attributes are the configurable column system underlying every table and detail view in TWICE. Whatever your business needs to track that isn’t in the core data model — condition grade, serial number, warranty start date, custom delivery instructions — you express as Attributes.
The analogy: Attributes behave like custom columns in a spreadsheet — you define them once and they appear in tables, forms, filters, and exports.

Where Attributes apply

Every Attribute is scoped to exactly one resource: You cannot reuse the same Attribute across resources — if you need similar fields on both Customers and Orders, you define them separately. This keeps each resource’s schema clean and avoids cross-resource leakage. Inventory Attributes can have one of two origins:
  • sku — the attribute is defined at the SKU level and inherited by every Stock Item under that SKU
  • article — the attribute is defined at the Stock Item level only (Stock Items are also called Articles internally)
This split lets you express “Brand” once on the SKU and “Serial number” individually per Stock Item, without duplicating fields.

Attribute formats

TWICE supports eight Attribute formats: There is no separate currency, percent, email, url, phone, file, relation, or external format — use number for currency and percent values, text with validation for emails and URLs, and Documents for file attachments.

Select and Multiselect options

Each option in a select or multiselect Attribute is a { key, label } pair:
The key is the immutable identifier stored on records. The label is what users see and can be edited freely without breaking historical data. Both have a 255-character cap.

Formula attributes

Formula Attributes compute their value from other fields on the same resource. Each resource exposes a different set of system fields formulas can reference: A typical formula uses these system fields plus other Attributes — for example, a Stock Item formula item_income - item_costs yields the running profit. The formula re-evaluates whenever its inputs change. Read more: Formulas

Key properties

An Attribute definition carries: System groups are reserved categories — system for customer — that hold attributes TWICE manages on your behalf.

Inheritance: SKU > Stock Item

For inventory Attributes specifically:
  • An attribute with origin: sku is defined on the SKU and read on each Stock Item that rolls up to that SKU
  • An attribute with origin: article is defined directly on the Stock Item and not shared with siblings
  • Editing a SKU-origin attribute on one Stock Item is not allowed — you edit it on the SKU and the change propagates
This means a SKU’s attributes act as the “template” for its Stock Items, and each Stock Item only stores the values that vary unit-to-unit (serial number, condition, location, purchase date).

Order attributes

Attributes scoped to orders attach custom data to individual orders rather than to inventory, catalog, or customer records. Common examples: cost centre, gift message, PO number, or special delivery instructions.

Checkout capture

Add an attribute field to your checkout contact form and bind it to an attribute. At checkout, the system routes the captured value by the attribute’s resource:
  • orders — saved to the order’s attribute values
  • customers — saved to the customer profile
This means the same checkout form can collect both order-specific and customer-profile data in one step.

Confirmation email

Captured order attribute values render automatically in the order confirmation email:
  • Global order attributes always appear — with a dash (—) placeholder when no value was captured
  • Non-global order attributes appear only when a value exists
Values are formatted per your tenant locale: dates use your configured date format, select attributes show the option label, booleans render as Yes/No, and multiselect values are comma-separated.

Admin

Order attribute values appear on the order detail page under a dedicated attributes card. You can add, edit, and remove values directly. Order attributes also surface as filterable, sortable columns in the orders table. Once an Attribute exists, it surfaces automatically in the table for its resource: Search is full-text and runs against all string-castable Attribute values — so the toolbar search finds matches even in hidden columns.

API access

Attributes appear on every API response for the resource they apply to. They’re keyed by id and surfaced as a typed value record. A typical inventory response includes:
Values for select Attributes are the option’s key, not the user-facing label.

Lifecycle

Creating

  1. Open Settings > Attributes & tags
  2. Pick the resource the Attribute applies to (Inventory, Catalog, Customer, Order)
  3. Set name, description, and format
  4. For select / multiselect, define the option list
  5. For formula, write the expression and pick the result format
  6. Optionally assign to a Group and a sort order

Updating

  • Name, description, sort order, and group can change freely
  • Adding more options to a select/multiselect is safe
  • Renaming option labels is safe — the underlying key is what’s stored
  • Removing an option breaks any record that referenced it — TWICE warns before allowing this
  • Changing format is restricted because conversion may lose data; the safer pattern is to create a new Attribute and migrate values

Archiving and deletion

  • Archiving hides the Attribute from new entry but preserves historical values
  • Deletion removes the Attribute definition and all stored values for it across every record; this can’t be undone
  • Use archive in nearly all cases; reserve delete for cleanup of mistakenly-created Attributes

Relationships

FAQs

No — each Attribute is scoped to one resource. Create matching Attributes on each resource if you need parallel fields.
SKU-origin attributes are defined once on the SKU and read on every Stock Item under it (think: Brand). Stock Item-origin attributes are unique to a single physical unit (think: Serial number). Choose origin based on whether the value varies unit-to-unit.
Adding options is safe. Renaming an option’s user-facing label is safe — the underlying key stays put. Deleting an option breaks any record that referenced it, so TWICE warns before allowing this.
Formulas re-evaluate whenever their input fields change — no manual refresh needed. The result is read-only.
By default no. Whether an Attribute appears on the storefront depends on your storefront theme configuration — themes opt in to which Attributes they render on Listing pages.
Yes. Select rows in any table, choose Bulk edit, and set new values for any visible attribute column.

Developer Reference

Attributes are exposed as attributes in the API.

API: Attributes

Open the endpoint in the API reference.

Attribute Groups

Group related Attributes for cleaner forms

Formulas

Write expressions for calculated Attributes

Category Taxonomy

Categories suggest attributes — they work together

Tables

Where Attributes surface as filterable columns