Product Object
Overview
The product object represents a single product or product variant in an e-commerce event. It captures identification, pricing, inventory, categorization, and custom properties for tracking and audience segmentation.
Required fields are id, name, price, price_base, tax_included, tax_percent, and quantity. Fields like parent_id, parent_name, and parent_sku default to their non-parent counterparts if not provided. tax_included defaults to true, quantity defaults to 1, stock_status defaults to true, and tax_percent defaults to the site's configured rate if not provided.
Complete Reference
products[0] object
id string required
Unique product identifier in your system.
id: "PRODUCT_ID"
parent_id string recommended
Parent product ID for variants or child products. Defaults to id if not provided.
parent_id: "PRODUCT_PARENT_ID"
name string required
Product name or title displayed to users.
name: "Professional Wireless Headphones"
parent_name string
Parent product name for variants or child products. Defaults to name if not provided.
parent_name: "Professional Headphones Collection"
price_base number required
Original or base price before discounts. Always equal to or greater than price.
price_base: 299.99
price number required
Current selling price after discounts. Always equal to or less than price_base.
price: 249.99
tax_included boolean required
Whether the price includes taxes. Defaults to true if not provided.
tax_included: true
tax_percent number required
Tax percentage applied to the product (0-50). If not provided, the site default tax rate will be used (generally the standard rate of the country).
tax_percent: 19
quantity number required
Quantity of this product in the context of the event. Defaults to 1 if not provided.
quantity: 2
category string recommended
Main product category name
category: "Electronics"
sku string
Product SKU (Stock Keeping Unit) for inventory tracking
sku: "SKU_HEADPHONES_PRO"
parent_sku string
Parent product SKU for variants or child products. Defaults to sku if not provided.
parent_sku: "SKU_HEADPHONES"
gtin string
Global Trade Item Number for product identification
gtin: "1234567890123"
mpn string
Manufacturer Part Number assigned by the manufacturer
mpn: "HP-PRO-2024"
ean string
European Article Number for product barcoding
ean: "1234567890123"
brand string
Product brand or manufacturer name
brand: "AudioTech"
type string
Product type. Free-form string (e.g. "simple", "variable", "bundle", "subscription").
type: "simple"
stock_status boolean recommended
Product availability (true = in stock, false = out of stock). Defaults to true if not provided.
stock_status: true
stock_location string
Physical location or warehouse where product is stored
stock_location: "Main Warehouse EU"
created_at number
Timestamp when product was added to inventory (milliseconds)
created_at: 1748505040077
url string
Direct URL to the product page
url: "https://shop.example.com/products/headphones-pro"
parent_url string
URL to the parent product page (for variants)
parent_url: "https://shop.example.com/products/headphones-collection"
image string
Main product image URL
image: "https://cdn.example.com/headphones-main.jpg"
images array
Array of additional product image URLs
images: [
"https://cdn.example.com/headphones-front.jpg",
"https://cdn.example.com/headphones-side.jpg"
]
categories array
Array of category objects with name and id properties
- name (string, required) - Category name
- id (string) - Category identifier
categories: [
{ name: "Electronics", id: "cat_electronics" },
{ name: "Audio", id: "cat_audio" }
]
coupons array
Array of product-level coupons applied to this product. View complete Coupon Object documentation
coupons[0] (object) - required
requiredname string required
Coupon name or code.
name: "FREE SHIPPING"
value number recommended
Coupon discount value.
value: 123.99
tax_included boolean recommended
Whether coupon value includes taxes
tax_included: true
tax_percent number recommended
Tax percentage for the coupon
tax_percent: 21
id string
Coupon internal identifier.
id: "COUPON_INTERNAL_ID"
type string
Coupon type. Free-form string, use consistent naming (e.g. "LOYALTY", "SEASONAL", "FIRST_ORDER", "SHIPPING").
type: "SHIPPING"
currency string required-if-applicable
Currency code. Specifies the currency code when it differs from event.currency.
currency: "USD"
exchange_rate number
Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange_rate.
exchange_rate: 1
properties object recommended
Custom product attributes for audience segmentation. Free-form key-value object. Use properties that match your product catalog and business needs.
Use the properties object to store custom product attributes, with property names defined by each business as needed, that enable advanced segmentation, personalization, and analytics across your marketing campaigns.
- IT & C
- Fashion
- Deco
properties: {
color: "space_gray",
storage: "256GB",
memory: "16GB",
connectivity: ["wifi", "bluetooth"],
warranty: "2_years",
energy_rating: "A++",
brand_series: "pro_line"
}
properties: {
color: ["black", "white"],
size: "M",
material: "cotton",
fit: "regular",
season: "summer",
collection: "2024_spring",
care_instructions: "machine_wash"
}
properties: {
color: ["natural", "oak"],
dimensions: "120x80x75cm",
material: ["wood", "metal"],
style: "modern",
room_type: ["living_room", "office"],
assembly_required: "true"
}
currency string required-if-applicable
Currency code. Specifies the currency code when it differs from event.currency.
currency: "USD"
exchange_rate number
Custom exchange rate for multi-currency. Default has value 1. Specifies when it differs from event.exchange_rate.
exchange_rate: 1
Examples
- Complete
- Variable Product
- Minimal
{
"id": "HEADPHONES_PRO_001",
"parent_id": "HEADPHONES_PRO_SERIES",
"name": "Professional Wireless Headphones",
"parent_name": "Professional Headphones Collection",
"price_base": 299.99,
"price": 249.99,
"tax_included": true,
"tax_percent": 19,
"quantity": 1,
"category": "Electronics",
"sku": "SKU_HP_PRO_001",
"parent_sku": "SKU_HP_PRO",
"gtin": "1234567890123",
"mpn": "HP-PRO-2024",
"ean": "1234567890123",
"brand": "AudioTech",
"type": "simple",
"stock_status": true,
"stock_location": "Main Warehouse EU",
"created_at": 1748505040077,
"url": "https://shop.example.com/headphones-pro",
"parent_url": "https://shop.example.com/headphones-collection",
"image": "https://cdn.example.com/headphones-main.jpg",
"images": [
"https://cdn.example.com/headphones-front.jpg",
"https://cdn.example.com/headphones-side.jpg"
],
"categories": [
{ "name": "Electronics", "id": "cat_electronics" },
{ "name": "Audio", "id": "cat_audio" },
{ "name": "Headphones", "id": "cat_headphones" }
],
"coupons": [
{
"name": "EARLY_BIRD",
"value": 50.00,
"tax_included": true,
"tax_percent": 19,
"type": "AUTOMATED"
}
],
"properties": {
"color": "midnight_black",
"connectivity": ["bluetooth", "wired"],
"noise_cancellation": "active",
"battery_life": "30_hours"
}
}
{
"id": "SHIRT_BLUE_M",
"parent_id": "SHIRT_COLLECTION",
"name": "Blue Shirt - Medium",
"parent_name": "Premium Shirt Collection",
"price_base": 89.99,
"price": 79.99,
"tax_included": true,
"tax_percent": 19,
"quantity": 1,
"category": "Fashion",
"sku": "SHIRT_COTTON_M_BLUE",
"parent_sku": "SHIRT_COTTON",
"brand": "StyleBrand",
"type": "variable",
"url": "https://shop.example.com/shirt-blue-m",
"parent_url": "https://shop.example.com/shirt-collection",
"image": "https://cdn.example.com/shirt-blue.jpg",
"categories": [
{ "name": "Fashion", "id": "cat_fashion" },
{ "name": "Men's Clothing", "id": "cat_mens" }
],
"properties": {
"color": "navy_blue",
"size": "M",
"material": "cotton"
}
}
{
"id": "PRODUCT_001",
"name": "Basic Product",
"price_base": 29.99,
"price": 29.99,
"tax_included": true,
"tax_percent": 19,
"quantity": 1
}
All required fields provided. Missing optional fields like parent_id, parent_name, parent_sku will default to their base counterparts.
Price Logic
price_baseis always equal to or greater thanprice. Ifprice_baseis not provided, it defaults toprice.- If
price>price_base, the values are automatically corrected so thatprice_basebecomes the higher value andpricethe lower. - Negative prices are set to 0.
Parent Fields
For variable products (variants), parent fields provide the connection to the main product:
parent_id— defaults toidif not providedparent_name— defaults tonameif not providedparent_sku— defaults toskuif not providedparent_url— not defaulted, omitted if empty
Best Practices
- Consistent IDs — use the same product IDs across all events for accurate tracking
- Accurate pricing — ensure
price_baseandpricereflect actual values; the system corrects inverted prices automatically - Custom properties — use properties that enable meaningful audience segmentation (color, size, material, etc.); keep naming consistent across products
- Categories — provide hierarchical categories from broad to specific for better analytics
- Currency — only specify
currencyandexchange_ratewhen the product currency differs from the event currency - Product-level coupons — use the
couponsarray for discounts applied to specific products; use the top-levelcouponsarray for order-wide discounts