product.statusChanged
This event is triggered when a product's sales status changes in a restaurant.
Opening or closing the product for sale, enabling or disabling it for a specific order type (Table / Delivery / Takeaway), and assigning the product to a branch or removing it from a branch all trigger this event.
Payload Structure
{
"eventId": "9c1f0a2d-4b7e-4c1a-9f52-1d8e6b3a7c04",
"webhookEventType": "product.statusChanged",
"eventTimeUtc": "2025-10-21T11:59:50.1855135Z",
"data": {
"productId": 2230902,
"productName": "Sushi Set",
"productCode": "SUS-001",
"isProductSalable": true,
"orderTypes": [
{ "orderType": 1, "orderTypeName": "Masa siparişi", "isActive": false },
{ "orderType": 3, "orderTypeName": "Paket servis", "isActive": true },
{ "orderType": 5, "orderTypeName": "Gel-Al siparişi", "isActive": true }
]
},
"restaurantIdentity": "3edc2d46-bfc0-44d1-b701-f18e56306aed"
}Data Fields
| Field | Type | Description |
|---|---|---|
productId | number | Product ID |
productName | string | Product name |
productCode | string | Product code |
isProductSalable | boolean | Whether the product is open for sale in the restaurant. When false, it cannot be sold regardless of order type |
orderTypes | array | Current status per order type |
orderTypes Fields
| Field | Type | Description |
|---|---|---|
orderType | number | Order type. 1 Table, 3 Delivery, 5 Takeaway |
orderTypeName | string | Name of the order type |
isActive | boolean | Whether the product is open for sale for this order type |
Usage
The payload contains the full current status of the product, not only the field that changed. This allows you to reflect the product's current sales status directly, without making an additional request.
When the product is removed from the restaurant or closed for sale, isProductSalable becomes false and every order type in the orderTypes list is returned with isActive: false.