# NewVariantInput

input type

Create-input for a Variant. The tenant (org group) is derived SERVER-SIDE from the principal; productId (the parent Product — rides the header) is tenant-scoped server-side and must be active; the coordinate must realize EVERY scheme dimension exactly once (active values, of the dimension group, inside the product segment where constrained) and is IMMUTABLE; a custom stock-UoM ref is tenant-scoped + active-gated; the stock-UoM pair defaults (canned, each). The (style × cell) marker is minted IN the create transaction — a live duplicate is CONFLICT/IDENTITY_TAKEN naming holder + holderProduct; a doomed holder is taken over (the ratified).

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `caption` | [String](/types/#scalars) | no | Optional: when omitted the per-type default applies — the merchant code when given, else 'Variant'; when supplied it must be non-blank. |
| `productId` | [ID](/types/#scalars) `ID!` | yes | The parent Product id. |
| `coordinate` | [VariantCoordinateEntryInput](/types/VariantCoordinateEntryInput/) `[VariantCoordinateEntryInput!]` | no | The cell coordinate (omit for a zero-dimension style; must realize every scheme dimension exactly once). |
| `stockUomKind` | [StockUomKind](/types/StockUomKind/) | no | The stock-UoM kind — defaults to canned; immutable after birth. |
| `stockUomRef` | [String](/types/#scalars) | no | The stock-UoM ref — defaults to each; a canned code, or a CustomUom id for kind custom; immutable after birth. |
| `manufacturerPartNumbers` | [ManufacturerPartNumberInput](/types/ManufacturerPartNumberInput/) `[ManufacturerPartNumberInput!]` | no | The manufacturer part-number map — each manufacturer server-gated in-tenant + ACTIVE; at most 8, unique per manufacturer. |
| `code` | [String](/types/#scalars) | no | No further notes. |

## Used by

- [createVariant](/reference/variant/createVariant/)
