The ProductUpdate event fires whenever any field on an existing product is changed — including name, description, availability, variant structure, or media assets. Use this event to propagate catalog changes to external storefronts, CDN caches, or inventory systems without polling the API.
Payload
| Field | Type | Description |
|---|
_id | string | Unique identifier for the product |
locationId | string | Account ID where the product resides |
name | string | Updated display name of the product |
description | string | Updated product description |
productType | string | Product category type (e.g., PHYSICAL, DIGITAL, SERVICE) |
availableInStore | boolean | Whether the product is visible and purchasable in the storefront |
userId | string | ID of the user who last updated the product |
variants | array | Updated variant dimensions (e.g., Size, Color), each with an id, name, and options array |
medias | array | Updated media assets attached to the product |
statementDescriptor | string | Short description that appears on customer payment statements |
image | string | URL of the primary product image |
createdAt | string | ISO 8601 timestamp when the product was originally created |
updatedAt | string | ISO 8601 timestamp of this update |
Example payload
{
"_id": "655b33a82209e60b6adb87a5",
"description": "This is a really awesome product",
"variants": [
{
"id": "38s63qmxfr4",
"name": "Size",
"options": [{ "id": "h4z7u0im2q8", "name": "XL" }]
}
],
"medias": [
{
"id": "fzrgusiuu0m",
"title": "product-image.png",
"url": "https://storage.googleapis.com/hoopai-assets/3SwdhCsvxI8Au3KsPJt6/media/sample.png",
"type": "image",
"isFeatured": true
}
],
"locationId": "3SwdhCsvxI8Au3KsPJt6",
"name": "Awesome Product",
"productType": "PHYSICAL",
"availableInStore": true,
"userId": "6YAtzfzpmHAdj0e8GkKp",
"createdAt": "2023-11-20T10:23:36.515Z",
"updatedAt": "2024-01-23T09:57:04.846Z",
"statementDescriptor": "abcde",
"image": "https://storage.googleapis.com/hoopai-assets/3SwdhCsvxI8Au3KsPJt6/media/65af8d5df88bdb4b1022ee90.png"
}
Last modified on March 5, 2026