This section covers all product-related entities, including physical products, events, and bookable services. The unified Product Object allows you to manage inventory, pricing, and availability across different product types. This object encapsulates essential information such as pricing, inventory tracking, availability, and variant configurations.

Inheritance Logic

Variants may override certain fields like price, status, or track_stock. If these fields are not explicitly provided, the variant will inherit them from the main product definition.

This allows flexibility in configuring individual variant behaviors while minimizing data repetition.

The Product Object ensures all necessary data for e-commerce, inventory, and service listings is structured in a unified format that can support dynamic interfaces like search, booking, or purchase workflows.


Product Object

Field Type Required Description
id String Yes Unique identifier for the product.
name String Yes Product name.
description String Optional Description of the product.
price Number Yes Base price of the product.
compare_at_price Number Optional Original price for comparison (e.g., discount).
cost Number Optional Cost of the product.
category String Yes Product category (e.g., product, booking, event).
status String Yes Product status. 'A' = Active.
app_id String Yes App identifier the product belongs to.
business_channel_id String Yes Business Channel that owns the product.
track_stock Boolean Optional Indicates if stock is tracked.
in_stock Boolean Optional Indicates if the product is in stock.
is_taxable Boolean Optional Indicates if the product is taxable.
shipping_required Boolean Optional Indicates if shipping is required.
timezone String Optional Product's timezone (if applicable).
version String Optional Version of the product record.
tag Array of Strings Optional Tags assigned to the product.
image Array of Objects Optional Images of the product.
collection Array of Objects Optional Collections the product belongs to.
option Array of Objects Optional Variant options for the product (e.g., Size, Color).
variant Array of Objects Optional List of product variants.
created_date String Yes Creation timestamp.
updated_date String Optional Last updated timestamp.

Variant Object (Array of Variants)

Field Type Required Description
id String Yes Unique ID for the variant.
parent_id String Yes Parent product ID.
option1 String Optional First variant option value (e.g., "Large").
price Number Yes Variant price.
compare_at_price Number Optional Variant compare price (for discounts).
track_stock Boolean Optional Whether this variant tracks inventory.
in_stock Boolean Optional Indicates if variant is in stock.
is_taxable Boolean Optional Indicates if taxable.
shipping_required Boolean Optional If shipping is required.
type Number Optional Type indicator for the variant.
category String Optional Variant category (e.g., product).
status String Optional Variant status. 'A' = Active.
app_id String Yes App the variant belongs to.
business_channel_id String Yes Channel/group for the variant.

Option Object (Array of Options)

Field Type Required Description
id String Yes ID of the option (e.g., option1).
name String Yes Name of the option (e.g., "Size").
values Array of Strings Yes Available values (e.g., ["S", "M", "L"]).

Image Object (Array of Images)

Field Type Required Description
url String Yes Image URL.
width Number Optional Image width in pixels.
height Number Optional Image height in pixels.

Collection Object (Array of Collections)

Field Type Required Description
id String Yes Collection ID.
name String Yes Name of the collection.
image Array Optional Optional image(s) for the collection.