logo
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.

Object

json
{ "id": "5121419845126176", "app_id": 90090684293000559, "business_channel_id": 90090684293000559, "name": "Black T-shirt", "description": "Cotton T-shirt for Men", "price": 50.0, "cost": 0, "timezone": "America/Toronto", "track_stock": false, "in_stock": null, "is_taxable": false, "shipping_required": false, "tag": [], "version": "L0hmcA", "created_date": "2025-04-02 13:56:34", "updated_date": "2025-04-02 14:15:17", "category": "product", "status": "A", "image": [ { "width": 235, "url": "https://m1.nandbox.ca/v1/AUTH_137b624a8e434c4e88e9be30fa5e7bed/g/90090684293000559_b7010f02ed0d2a57ace1df2607986f0fa2a9ed3fff30caedcba7fa9c21a6451c.jpg?temp_url_sig=c5c3d17d11b1e5093552242cc62d1ff95c068cea&temp_url_expires=2059844191", "height": 275 } ], "compare_at_price": 0.0, "variant": [ { "compare_at_price": 0, "business_channel_id": 90090684293000559, "price": 50, "parent_id": "5121419845126176", "option1": "Large", "track_stock": false, "in_stock": null, "is_taxable": false, "shipping_required": false, "id": "5121792017126173", "type": 2, "category": "product", "app_id": 90090684293000559, "status": "A" }, { "compare_at_price": 0, "business_channel_id": 90090684293000559, "price": 50, "parent_id": "5121419845126176", "option1": "Medium", "track_stock": false, "in_stock": null, "is_taxable": false, "shipping_required": false, "id": "5121362976126174", "type": 2, "category": "product", "app_id": 90090684293000559, "status": "A" }, { "compare_at_price": 0, "business_channel_id": 90090684293000559, "price": 50, "parent_id": "5121419845126176", "option1": "Small", "track_stock": false, "in_stock": null, "is_taxable": false, "shipping_required": false, "id": "5121705203126175", "type": 2, "category": "product", "app_id": 90090684293000559, "status": "A" } ], "collection": [ { "image": [ { "width": 720, "url": "https://m1.nandbox.ca/v1/AUTH_137b624a8e434c4e88e9be30fa5e7bed/g/null073734a35fbf6f2374c2cfe1080a2c3eb28a64f8c75fc7ba0ef6d7b7fe3520af.jpg?temp_url_sig=3d864d3723b85e6ebce8c99231419781818ebbc1&temp_url_expires=2059203944", "height": 340 } ], "name": "New Collection", "id": "5121960361126208" } ], "option": [ { "values": [ "Large", "Medium", "Small" ], "name": "Size", "id": "option1" } ] }