Skip to content
Merchant guide
HTTPS · Signed events

product.created — V2 event (envelope + data)

It reaches you the moment a product is created with a full snapshot: core data, stock and variants.

Reviewed against implementation
YOUR INTEGRATION, AT A GLANCE
product.created — full 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"
  }
}
See the implementation
On this page

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

product.created — full 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

FieldMeaning
product_idThe product id (UUID).
name / descriptionThe product name and description (description capped at 1000 chars).
category_idThe category id (UUID).
price / compare_at_priceThe price and the before-discount price (null when unset).
sku / barcodeThe SKU and barcode (may be null).
image_urlThe product image URL (may be null).
has_variantsWhether the product has variants.
is_available / is_featuredAvailability and featured flag.
stock_quantity / low_stock_thresholdTotal stock and the low-stock threshold.
variantsVariants: id, sku, name, color, size, price_override, compare_at_price, stock_quantity, low_stock_threshold.
variants_truncatedtrue when variants exceeded 100 and were capped.
created_atCreation time, ISO 8601.

04Event identity

Pattern: mwh:product-created:<tenant_id>:<product_id> — once per product.