Skip to main content

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