ProductVariant
A sellable version of a product, with its own SKU, price, units of measure and stock.
type ProductVariant {
QRCode: String
attributes: JSON!
barcode: String
baseUOM: UnitOfMeasure
baseUOMId: ID
cost: Float
createdAt: DateTime!
deletedAt: DateTime
deletedBy: String
dimensions: JSON
enteredBy: String!
id: ID!
imageUrl: String
imageUrls: [String!]
inventory: [ProductInventory!]
inventoryUOM: UnitOfMeasure
inventoryUOMId: ID
isActive: Boolean!
isDefault: Boolean!
isLowStock: Boolean!
isOutOfStock: Boolean!
maxOrderQuantity: Float
metaDescription: String
metaTitle: String
minOrderQuantity: Float!
name: String
organizationId: String!
price: Float
product: Product
productId: ID!
purchaseUOM: UnitOfMeasure
purchaseUOMId: ID
salePrice: Float
salesUOM: UnitOfMeasure
salesUOMId: ID
serialNo: String
sku: String!
tags: [String!]!
totalAvailable: Float!
totalReserved: Float!
totalStock: Float!
updatedAt: DateTime!
updatedBy: String!
variantPrices: [VariantPrice!]
weight: Float
}
Fields
ProductVariant.QRCode ● String scalar
The QR code of the variant.
ProductVariant.attributes ● JSON! non-null scalar
The variant's attributes, such as colour or size, as JSON.
ProductVariant.barcode ● String scalar
The barcode of the variant.
ProductVariant.baseUOM ● UnitOfMeasure object
The base unit of measure.
ProductVariant.baseUOMId ● ID scalar
The ID of the base unit of measure.
ProductVariant.cost ● Float scalar
The cost of one unit.
ProductVariant.createdAt ● DateTime! non-null scalar
When the record was created.
ProductVariant.deletedAt ● DateTime scalar
When the record was deleted. Empty while the record is live.
ProductVariant.deletedBy ● String scalar
The ID of the user who deleted the record.
ProductVariant.dimensions ● JSON scalar
The size of one unit, as JSON.
ProductVariant.enteredBy ● String! non-null scalar
The ID of the user who created the record.
ProductVariant.id ● ID! non-null scalar
The unique ID of this record.
ProductVariant.imageUrl ● String scalar
The URL of the main image.
ProductVariant.imageUrls ● [String!] list scalar
The URLs of the images.
ProductVariant.inventory ● [ProductInventory!] list object
The stock of the variant, one entry per warehouse.
ProductVariant.inventoryUOM ● UnitOfMeasure object
The unit of measure stock is kept in.
ProductVariant.inventoryUOMId ● ID scalar
The ID of the unit of measure stock is kept in.
ProductVariant.isActive ● Boolean! non-null scalar
Whether the record is active.
ProductVariant.isDefault ● Boolean! non-null scalar
Whether this is the default.
ProductVariant.isLowStock ● Boolean! non-null scalar
True when the variant is low on stock.
ProductVariant.isOutOfStock ● Boolean! non-null scalar
True when the variant is out of stock.
ProductVariant.maxOrderQuantity ● Float scalar
The largest quantity that can be ordered.
ProductVariant.metaDescription ● String scalar
The page description for search engines.
ProductVariant.metaTitle ● String scalar
The page title for search engines.
ProductVariant.minOrderQuantity ● Float! non-null scalar
The smallest quantity that can be ordered.
ProductVariant.name ● String scalar
The name of the variant.
ProductVariant.organizationId ● String! non-null scalar
The ID of the organization the record belongs to.
ProductVariant.price ● Float scalar
The list price.
ProductVariant.product ● Product object
The product the variant belongs to.
ProductVariant.productId ● ID! non-null scalar
The ID of the product.
ProductVariant.purchaseUOM ● UnitOfMeasure object
The unit of measure used for purchases.
ProductVariant.purchaseUOMId ● ID scalar
The ID of the unit of measure used for purchases.
ProductVariant.salePrice ● Float scalar
Pre-negotiated sale price
ProductVariant.salesUOM ● UnitOfMeasure object
The unit of measure used for sales.
ProductVariant.salesUOMId ● ID scalar
The ID of the unit of measure used for sales.
ProductVariant.serialNo ● String scalar
The serial number of the variant.
ProductVariant.sku ● String! non-null scalar
The SKU of the variant.
ProductVariant.tags ● [String!]! non-null scalar
Tags on the variant.
ProductVariant.totalAvailable ● Float! non-null scalar
The quantity free to allocate across all warehouses.
ProductVariant.totalReserved ● Float! non-null scalar
The quantity held by confirmed orders across all warehouses.
ProductVariant.totalStock ● Float! non-null scalar
The quantity on hand across all warehouses.
ProductVariant.updatedAt ● DateTime! non-null scalar
When the record was last changed.
ProductVariant.updatedBy ● String! non-null scalar
The ID of the user who last changed the record.
ProductVariant.variantPrices ● [VariantPrice!] list object
Qty-break price ladder. NOT populated by the products list projection — use productVariants(productId:) for variant detail.
ProductVariant.weight ● Float scalar
The weight of one unit.
Returned By
createProductVariant mutation ● deleteProductVariant mutation ● productVariant query ● productVariants query ● updateProductVariant mutation
Member Of
Inventory object ● InvoiceItem object ● Product object ● ProductReturnItem object ● QuoteItem object ● SalesOrderItem object ● StockMovement object ● VariantInsights object ● VariantPrice object ● VariantSearchResult object