Itemvariant data model

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
idstringNo
created_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
updated_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
namestringNo
public_namestringNo
descriptionstringNo
public_descriptionstringNo
skustringNobarcode, UPC, isbn, etc
is_activebooleanNo
is_visiblebooleanNo
is_featuredbooleanNo
mediaCommerceItemMedia[]No
media[].idstringNo
media[].urlstringYes
media[].altstringNo
media[].typeenumNoValues: image, video
media[].heightnumberNo
media[].widthnumberNo
media[].positionnumberNo1 is the first
media[].metadataCommerceMetadata[]No
media[].metadata[].idstringNo
media[].metadata[].valueobjectNo
media[].metadata[].namespacestringNo
media[].metadata[].formatenumNoValues: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL
media[].metadata[].extra_dataobjectNo
media[].metadata[].slugstringNo
media[].metadata[].descriptionstringNo
media[].metadata[].is_requiredbooleanNo
available_atstring (date-time)No(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
tagsstring[]No
widthnumberNo
heightnumberNo
lengthnumberNo
weightnumberNo
size_unitenumNoValues: cm, inch
weight_unitenumNoValues: g, kg, oz, lb
total_stocknumberNo
pricesCommerceItemPrice[]No
prices[].pricenumberYes
prices[].compare_at_pricenumberNoThe original price of the item before an adjustment or a sale.
prices[].currencystringNo
optionsCommerceItemOption[]No
options[].idstringNo
options[].namestringYes
options[].positionnumberNo
options[].valuesstring[]Yes
inventory_idstringNo
requires_shippingbooleanNo
metadataCommerceMetadata[]No
metadata[].idstringNo
metadata[].valueobjectNo
metadata[].namespacestringNo
metadata[].formatenumNoValues: TEXT, NUMBER, DATE, BOOLEAN, FILE, TEXTAREA, SINGLE_SELECT, MULTIPLE_SELECT, MEASUREMENT, PRICE, YES_NO, CURRENCY, URL
metadata[].extra_dataobjectNo
metadata[].slugstringNo
metadata[].descriptionstringNo
metadata[].is_requiredbooleanNo
itemsCommerceReference[]Noreferences CommerceItem
items[].idstringNo
items[].namestringNo
items[].typestringNo

TypeScript

TypeScript
export type CommerceItemvariant = {
	id?: string;
	created_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	updated_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	name?: string;
	public_name?: string;
	description?: string;
	public_description?: string;
	sku?: string; // barcode, UPC, isbn, etc
	is_active?: boolean;
	is_visible?: boolean;
	is_featured?: boolean;
	media?: [];
	available_at?: string-time; // (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	tags?: string[];
	width?: number;
	height?: number;
	length?: number;
	weight?: number;
	size_unit?: 'cm' | 'inch';
	weight_unit?: 'g' | 'kg' | 'oz' | 'lb';
	total_stock?: number;
	prices?: [];
	options?: [];
	inventory_id?: string;
	requires_shipping?: boolean;
	metadata?: [];
	items?: []; // references CommerceItem
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodCommerceItemvariant = z.object({
	id: z.string().optional(),
	created_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	updated_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	name: z.string().optional(),
	public_name: z.string().optional(),
	description: z.string().optional(),
	public_description: z.string().optional(),
	sku: z.string().optional().describe("barcode, UPC, isbn, etc"),
	is_active: z.boolean().optional(),
	is_visible: z.boolean().optional(),
	is_featured: z.boolean().optional(),
	media: z.array().optional(),
	available_at: z.string-time().optional().describe("(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	tags: z.array().optional(),
	width: z.number().optional(),
	height: z.number().optional(),
	length: z.number().optional(),
	weight: z.number().optional(),
	size_unit: z.enum("cm", "inch").optional(),
	weight_unit: z.enum("g", "kg", "oz", "lb").optional(),
	total_stock: z.number().optional(),
	prices: z.array().optional(),
	options: z.array().optional(),
	inventory_id: z.string().optional(),
	requires_shipping: z.boolean().optional(),
	metadata: z.array().optional(),
	items: z.array().optional().describe("references CommerceItem"),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class CommerceItemvariantSize_unit(str, Enum):
	cm = 'cm'
	inch = 'inch'

@dataclasses.dataclass
class CommerceItemvariantWeight_unit(str, Enum):
	g = 'g'
	kg = 'kg'
	oz = 'oz'
	lb = 'lb'

@dataclasses.dataclass
class CommerceItemvariant:
	id: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	created_at: Optional[str]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	updated_at: Optional[str]
	name: Optional[str]
	public_name: Optional[str]
	description: Optional[str]
	public_description: Optional[str]
	"""barcode, UPC, isbn, etc"""
	sku: Optional[str]
	is_active: Optional[bool]
	is_visible: Optional[bool]
	is_featured: Optional[bool]
	media: Optional[PropertyCommerceItemvariantMedia]
	"""(ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	available_at: Optional[str]
	tags: Optional[List[List[str]]]
	width: Optional[int]
	height: Optional[int]
	length: Optional[int]
	weight: Optional[int]
	size_unit: Optional[CommerceItemvariantSize_unit]
	weight_unit: Optional[CommerceItemvariantWeight_unit]
	total_stock: Optional[int]
	prices: Optional[PropertyCommerceItemvariantPrices]
	options: Optional[PropertyCommerceItemvariantOptions]
	inventory_id: Optional[str]
	requires_shipping: Optional[bool]
	metadata: Optional[PropertyCommerceItemvariantMetadata]
	"""references CommerceItem"""
	items: Optional[PropertyCommerceItemvariantItems]
Are we missing anything? Let us know
Was this page helpful?