# Variant

object type

A variant — the spine LEAF, the SELLABLE CELL: one complete coordinate of its Style option space (every scheme dimension exactly once) and the SKU bearer (IdentifierEntry lands; inventory). Parent = its Product (NOT the family root). The coordinate is IMMUTABLE at birth — a cell IS its coordinate; re-coordinate = recreate. Cell DISJOINTNESS is the ratified: a per-(style × cell) uniqueness marker minted in the create transaction — a live duplicate is CONFLICT/IDENTITY_TAKEN naming the holding variant AND its product; a doomed holder is taken over. The stock-UoM pair (stockUomKind, stockUomRef) defaults (canned, each) and is IMMUTABLE.

## Fields

| Field | Type | Notes |
| --- | --- | --- |
| `id` | [ID](/types/#scalars) `ID!` | The record’s id — a UUID the platform assigned when the record was created; every reference to this record uses it. |
| `sysId` | [String](/types/#scalars) `String!` | The group-scoped human-facing system id (VR-…). |
| `type` | [String](/types/#scalars) `String!` | The kind of record — always `Variant` here. |
| `caption` | [String](/types/#scalars) `String!` | The record’s display name — what people see it called. |
| `status` | [String](/types/#scalars) `String!` | The FSM state: active \| inactive \| doomed. |
| `parentId` | [ID](/types/#scalars) `ID!` | The parent Product; for a Variant parentId!== rootId. |
| `rootId` | [ID](/types/#scalars) `ID!` | The org-group family root. |
| `createdAt` | [String](/types/#scalars) `String!` | When the record was created, as a UTC timestamp. |
| `updatedAt` | [String](/types/#scalars) `String!` | When the record last changed, as a UTC timestamp. |
| `revisionNum` | [Int](/types/#scalars) `Int!` | How many times this record has been edited; the first save is 0. |
| `revision` | [ID](/types/#scalars) `ID!` | The OCC revision token — supply it on every mutation of this record; rotates on every write. |
| `refCaptions` | [RefCaption](/types/RefCaption/) `[RefCaption!]!` | The server-composed captions of this record's declared references (the referenced-caption rule) — one row per referenced id; see RefCaption. |
| `coordinate` | [VariantCoordinateEntry](/types/VariantCoordinateEntry/) `[VariantCoordinateEntry!]!` | The COMPLETE cell coordinate — every scheme dimension exactly once, stored in scheme order; empty = the zero-dimension cell. IMMUTABLE at birth. |
| `stockUomKind` | [StockUomKind](/types/StockUomKind/) `StockUomKind!` | The stock-UoM kind; IMMUTABLE at birth, paired with stockUomRef. |
| `stockUomRef` | [String](/types/#scalars) `String!` | The stock-UoM ref — a canned UoM code (each, …) or a CustomUom id per the kind; IMMUTABLE at birth. |
| `manufacturerPartNumbers` | [ManufacturerPartNumber](/types/ManufacturerPartNumber/) `[ManufacturerPartNumber!]` | The manufacturer part-number map; absent when none. MUTABLE — a supplied list REPLACES wholesale. |
| `code` | [String](/types/#scalars) | Optional mutable merchant reference code; uniqueness NOT enforced (the code stance). |

## Used by

- [createVariant](/reference/variant/createVariant/)
- [deactivateVariant](/reference/variant/deactivateVariant/)
- [doomVariant](/reference/variant/doomVariant/)
- [reactivateVariant](/reference/variant/reactivateVariant/)
- [updateVariant](/reference/variant/updateVariant/)
- [variant](/reference/variant/variant/)
