Attribute or tag
Both are things you add yourself under Settings → Attributes & Tags, and they are not interchangeable.
Use a tag for a loose label a human applies and reads — summer range, needs a photo. Use an attribute for anything the system has to act on. A tag that turns out to need a rule behind it has to be re-entered as an attribute on every record carrying it.
One resource each
Every attribute belongs to exactly one resource, and cannot be reused across them. Similar fields on two resources are two attributes.
Inventory attributes carry one further choice, made where the attribute is filled in rather than where it is defined: a value set on the SKU is read by every stock item under it, and a value set on the stock item belongs to that unit alone. Brand on the SKU, serial number on the unit.
Order attributes are the ones to settle alongside your checkout, not your inventory — a cost centre or a PO number is usually collected at checkout rather than typed by staff.
Pick the type, because the type is permanent
Eight types, as the attribute drawer lists them:
The choice that matters is Select versus Text. They look equivalent while you are typing the first few records, and they are not:
- A Select attribute offers your configured options in a listing’s rule builder, so you can write a rule for a value before a single unit carries it — which is exactly what launch is.
- A Text attribute offers only the values already stored. Before the import there are none, so the rule cannot be written. After the import there are
Good,good,GOODandGodo, and each is a different value.
Anything a listing must match on has to be an attribute
A listing’s fulfilment rules select stock on exactly five things:
A stock item also has a built-in Condition field. It is free text, it filters and groups the inventory table, and it is not one of the five. A grade recorded only there can be read by a person and never bind a listing to the stock it describes.
So if you resell, or run any pool where units differ in state, the grading scale is an attribute — Select, with the grades as its options — decided before intake starts. Keep the Condition field for the free-text detail beside it: scuff on left fork. Take used stock in and grade it covers the scale itself; control what stock a listing draws from covers writing the rule.
Group them, and name the keys
Groups are presentation, not structure, and they are the cheap part of this page: an attribute’s group and its order can be changed at any time.- Attributes with no group appear under Details.
- Inventory carries one built-in group, Sustainability, for the fields TWICE Commerce manages there.
- Orders have no groups at all.
- and _. Set it deliberately for anything an integration will read.
One more switch on the drawer: Save as global attribute. A global attribute appears on every record of its resource, empty or not. A non-global one appears on a record only once that record has a value for it. Make the handful of fields your staff fill in every time global; leave the long tail off, or every stock item’s detail view becomes a wall of blank fields.
Then, and only then, import
Only the stock item import touches attributes. The listing, SKU and customer imports carry their built-in columns alone: a column that matches none of them is left out rather than turned into an attribute, so attribute values on those three are entered after the import, not during it. In the stock item import (Inventory → Stock items → Register Items → Import CSV), at the Match Columns step:
Existing attributes are matched to your headers by name or key automatically, exact spellings first and close spellings after, so a header called
Frame height finds the attribute you already made. Formula attributes are not offered — they are computed, not imported.
Do not pick Select or Multi-select for a new column in the import. Both types are offered in the Attribute format list, and both fail: the import cannot supply the option list those types require, so the run stops on a bare Something went wrong with nothing written. Create select attributes under Settings → Attributes & Tags first, then map your column onto one.
Done when
- Every field your stock, listings, customers and orders need exists under Settings → Attributes & Tags, on the right resource.
- Every attribute with a known set of values is Select or Multi-select, with its options entered — not Text.
- The grading scale, if you take in used stock, is a Select attribute on the inventory resource, and a rule written against one of its grades reports matches in inventory.
- Each inventory attribute is filled in at the level its value belongs to: shared values on the SKU, unit-specific values on the stock item.
- The fields staff fill in every time are marked Save as global attribute; the rest are not.
- Attribute keys are set for anything an export or integration reads.
- Your import file’s headers have been checked against the attribute list, and every column is either a built-in field, an existing attribute, or a column you intend to become a new Text, Number, Yes / No or Date attribute.
- Nothing has been imported yet.
Related articles
Set up your business
The launch step this guide belongs to.
Attributes
Every property an attribute definition carries, in full.
Attribute Groups
How grouping works across the admin.
Attributes & Tags settings
The settings page itself.
How to take used stock in and grade it
The grading scale, and why it cannot live in Condition.
How to control what stock a listing draws from
Writing the rules your attributes feed.
How to import inventory from a CSV
The import this guide comes before.
Bring in your data
The next step, once the fields exist.