01When does it fire?
- When a new product is created — once per product.
- Snapshots include variants up to the first 100 (variants_truncated = true).
02Full payload example
{
"id": "mwh:product-created:9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b:7a2b9c4e-8f31-4d5a-b6c2-1e9f8a7b6c5d",
"type": "product.created",
"api_version": "v2",
"tenant_id": "9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b",
"data": {
"product_id": "7a2b9c4e-8f31-4d5a-b6c2-1e9f8a7b6c5d",
"name": "Cotton T-shirt - Blue",
"description": "100% cotton t-shirt, multiple sizes",
"category_id": "8b1c2d3e-4f5a-4b6c-8d7e-9f0a1b2c3d4e",
"price": 225,
"compare_at_price": 300,
"sku": "TSH-BLU",
"barcode": "6221048312571",
"image_url": "https://cdn.example.com/tshirt-blue.jpg",
"has_variants": true,
"is_available": true,
"is_featured": false,
"stock_quantity": 62,
"low_stock_threshold": 5,
"variants": [
{
"id": "2c4e6f8a-0b1d-4e2f-8a3b-5c6d7e8f9a0b",
"sku": "TSH-BLU-L",
"name": "Blue / L",
"color": "Blue",
"size": "L",
"price_override": 225,
"compare_at_price": 300,
"stock_quantity": 30,
"low_stock_threshold": 3
}
],
"variants_truncated": false,
"created_at": "2026-10-20T11:02:44.517392+00:00"
}
}03data fields
| Field | Meaning |
|---|---|
| product_id | The product id (UUID). |
| name / description | The product name and description (description capped at 1000 chars). |
| category_id | The category id (UUID). |
| price / compare_at_price | The price and the before-discount price (null when unset). |
| sku / barcode | The SKU and barcode (may be null). |
| image_url | The product image URL (may be null). |
| has_variants | Whether the product has variants. |
| is_available / is_featured | Availability and featured flag. |
| stock_quantity / low_stock_threshold | Total stock and the low-stock threshold. |
| variants | Variants: id, sku, name, color, size, price_override, compare_at_price, stock_quantity, low_stock_threshold. |
| variants_truncated | true when variants exceeded 100 and were capped. |
| created_at | Creation time, ISO 8601. |
04Event identity
Pattern: mwh:product-created:<tenant_id>:<product_id> — once per product.
COMPLETE YOUR INTEGRATION
