Item 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
slugstringNo
descriptionstringNo
global_codestringNo
public_descriptionstringNo
is_activebooleanNo
is_taxablebooleanNo
vendor_namestringNo
typestringNoproduct, service, digital-download, ...
is_visiblebooleanNo
is_featuredbooleanNo
weightnumberNo
weight_unitenumNoValues: g, kg, oz, lb
requires_shippingbooleanNo
pricesCommerceItemPrice[]No
prices[].pricenumberYes
prices[].compare_at_pricenumberNoThe original price of the item before an adjustment or a sale.
prices[].currencystringNo
inventory_idstringNo
total_stocknumberNo
tagsstring[]No
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
account_idstringNoReference to Accounting Account (reference to AccountingAccount)
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
collectionsCommerceReference[]Nopoints to Collection with id, name, and type fields
collections[].idstringNo
collections[].namestringNo
collections[].typestringNo
taxrate_idstringNoreferences AccountingTaxrate
location_idstringNo(reference to CommerceLocation)
durationnumberNominutes

TypeScript

TypeScript
export type CommerceItem = {
	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;
	slug?: string;
	description?: string;
	global_code?: string;
	public_description?: string;
	is_active?: boolean;
	is_taxable?: boolean;
	vendor_name?: string;
	type?: string; // product, service, digital-download, ...
	is_visible?: boolean;
	is_featured?: boolean;
	weight?: number;
	weight_unit?: 'g' | 'kg' | 'oz' | 'lb';
	requires_shipping?: boolean;
	prices?: [];
	inventory_id?: string;
	total_stock?: number;
	tags?: string[];
	media?: [];
	account_id?: string; // Reference to Accounting Account (reference to AccountingAccount)
	metadata?: [];
	collections?: []; // points to Collection with id, name, and type fields
	taxrate_id?: string; // references AccountingTaxrate
	location_id?: string; // (reference to CommerceLocation)
	duration?: number; // minutes
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodCommerceItem = 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(),
	slug: z.string().optional(),
	description: z.string().optional(),
	global_code: z.string().optional(),
	public_description: z.string().optional(),
	is_active: z.boolean().optional(),
	is_taxable: z.boolean().optional(),
	vendor_name: z.string().optional(),
	type: z.string().optional().describe("product, service, digital-download, ..."),
	is_visible: z.boolean().optional(),
	is_featured: z.boolean().optional(),
	weight: z.number().optional(),
	weight_unit: z.enum("g", "kg", "oz", "lb").optional(),
	requires_shipping: z.boolean().optional(),
	prices: z.array().optional(),
	inventory_id: z.string().optional(),
	total_stock: z.number().optional(),
	tags: z.array().optional(),
	media: z.array().optional(),
	account_id: z.string().optional().describe("Reference to Accounting Account (reference to AccountingAccount)"),
	metadata: z.array().optional(),
	collections: z.array().optional().describe("points to Collection with id, name, and type fields"),
	taxrate_id: z.string().optional().describe("references AccountingTaxrate"),
	location_id: z.string().optional().describe("(reference to CommerceLocation)"),
	duration: z.number().optional().describe("minutes"),

});

Python

Python
import dataclasses

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

@dataclasses.dataclass
class CommerceItem:
	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]
	slug: Optional[str]
	description: Optional[str]
	global_code: Optional[str]
	public_description: Optional[str]
	is_active: Optional[bool]
	is_taxable: Optional[bool]
	vendor_name: Optional[str]
	"""product, service, digital-download, ..."""
	type: Optional[str]
	is_visible: Optional[bool]
	is_featured: Optional[bool]
	weight: Optional[int]
	weight_unit: Optional[CommerceItemWeight_unit]
	requires_shipping: Optional[bool]
	prices: Optional[PropertyCommerceItemPrices]
	inventory_id: Optional[str]
	total_stock: Optional[int]
	tags: Optional[List[List[str]]]
	media: Optional[PropertyCommerceItemMedia]
	"""Reference to Accounting Account (reference to AccountingAccount)"""
	account_id: Optional[str]
	metadata: Optional[PropertyCommerceItemMetadata]
	"""points to Collection with id, name, and type fields"""
	collections: Optional[PropertyCommerceItemCollections]
	"""references AccountingTaxrate"""
	taxrate_id: Optional[str]
	"""(reference to CommerceLocation)"""
	location_id: Optional[str]
	"""minutes"""
	duration: Optional[int]
Are we missing anything? Let us know
Was this page helpful?