Data tables
The default view for every resource in TWICE is a data table. Inventory, Catalog, Orders, Customers, Collections — all the same component, with the same toolbar.- Core features
- Saved views
- Time-aware features
The table pattern is consistent across inventory, catalog, orders, customers, and collections. Learning it once applies everywhere.
Detail pages with tabs
Click a row in any table and you land on its detail page. Detail pages follow a consistent layout: a header with the entity’s identifying fields and primary actions, then a horizontal tab strip for everything else. The tab set varies by entity type but follows a predictable rhythm:
Two tabs appear almost everywhere:
- Attributes — custom fields organised by Attribute Group
- Activity log — the request-level audit trail scoped to this entity
Drawer vs. full page
For lightweight create/edit flows TWICE uses a drawer that slides in from the right. The drawer keeps you on the current list, so you don’t lose context. Heavier flows — adding a Location, configuring a Listing — open a full-page editor because they need more screen and break into their own tab structure. Rules of thumb:Attribute system
Every entity can carry custom fields via Attributes. The format set is fixed — text, number, boolean, date, datetime, select, multiselect, and formula — but you can define as many Attributes as you need per resource.Where Attributes surface
Read more: Attributes · Attribute Groups
Relationship models
TWICE organises commerce data into four connected asset types. Each one references others — there are no silos.
These relationships mean you can navigate from any entity to its related records — a Stock Item shows the SKU it belongs to, the Listing presenting it, and every Order that has reserved it.
Status and State
Every primary entity carries a Status (lifecycle stage) and most also carry a State (operational condition). The values are entity-specific, not universal:
Read more: Status vs State
Bulk actions
Most tables support row selection via the leftmost checkbox column. Selecting one or more rows reveals a bulk toolbar:- Edit — apply the same attribute change to every selected row
- Tag / Untag — apply or remove tags in bulk
- Archive — change status to Archived where applicable
- Delete — permanent delete (where the entity allows it)
- Export — export selected rows as CSV
Permission layers
Access control combines three independent layers:
A user’s effective permissions are the intersection of all three. The pattern applies uniformly — inventory, catalog, orders, customers, settings all use the same model.
Tabs and bulk actions hide automatically rather than render as disabled. If a feature isn’t visible, check the user’s role and visibility settings before assuming the feature is missing.
Example: how the patterns combine
A standard Stock Item API response shows the patterns above in one payload — data-table identity, custom attributes, related references, lifecycle status, and the user’s permission to mutate it.Related
Tables
Data table features and operations
Attributes
Custom fields that extend the data model
Status vs State
Per-entity status and state matrices
Usage Patterns
Day-to-day interaction patterns
OS Approach
The platform philosophy behind these patterns
Activity Logs
The audit trail on every detail page