product.priceChanged
Bu event, bir ürünün restorandaki satış fiyatı değiştiğinde tetiklenir.
Fiyat listesi üzerinden yapılan güncellemeler, ürün fiyatının doğrudan değiştirilmesi, şubeye özel fiyat tanımlanması/kaldırılması ve Excel ile toplu fiyat aktarımları bu event'i tetikler. Değişikliğin merkez uygulamasından mı yoksa şubenin kendi Adisyo uygulamasından mı yapıldığı fark etmez; her iki durumda da event gönderilir.
Fiyat gerçekten değişmediyse (aynı tutar tekrar kaydedildiyse) event üretilmez.
Şubeye özel fiyat tanımlıysa payload'da bu fiyat, yoksa şubenin bağlı olduğu fiyat listesindeki fiyat gönderilir; yani her zaman şubede geçerli olan güncel fiyat iletilir.
Payload Yapısı
Tek bir kaydetme işlemi birden fazla ürünü etkileyebildiği için (fiyat listesi güncelleme, Excel ile toplu aktarım) ürünler products dizisinde listelenir. Tek ürün değiştiğinde de dizi tek elemanlı gelir.
{
"eventId": "9c1f0a2d-4b7e-4c1a-9f52-1d8e6b3a7c04",
"webhookEventType": "product.priceChanged",
"eventTimeUtc": "2025-10-21T11:59:50.1855135Z",
"data": {
"products": [
{
"productId": 2230902,
"productName": "Sushi Set",
"productCode": "SUS-001",
"units": [
{
"productUnitId": 55123,
"unitName": "Adet",
"isDefault": true,
"prices": [
{ "orderType": 1, "orderTypeName": "Masa siparişi", "price": 40.00, "isActive": true },
{ "orderType": 3, "orderTypeName": "Paket servis", "price": 45.00, "isActive": true },
{ "orderType": 5, "orderTypeName": "Gel-Al siparişi", "price": 30.00, "isActive": true }
]
}
]
}
]
},
"restaurantIdentity": "3edc2d46-bfc0-44d1-b701-f18e56306aed"
}Veri Alanları
| Alan | Tür | Açıklama |
|---|---|---|
products | array | Fiyatı değişen ürünler. Bir event'te en fazla 250 ürün gönderilir; daha fazlası birden çok event'e bölünür |
products Alanları
| Alan | Tür | Açıklama |
|---|---|---|
productId | number | Ürün ID'si |
productName | string | Ürün adı |
productCode | string | Ürün kodu |
units | array | Ürünün birimleri (porsiyonları). Fiyat birim bazında tanımlanır |
units Alanları
| Alan | Tür | Açıklama |
|---|---|---|
productUnitId | number | Ürün birim ID'si. /Menu yanıtındaki productUnitId ile aynıdır |
unitName | string | Birim adı (Adet, Porsiyon, Küçük Boy vb.) |
isDefault | boolean | Ürünün varsayılan birimi olup olmadığı |
prices | array | Sipariş tipi bazında güncel fiyat |
prices Alanları
| Alan | Tür | Açıklama |
|---|---|---|
orderType | number | Sipariş tipi. 1 Masa, 3 Paket, 5 Gel-Al |
orderTypeName | string | Sipariş tipinin adı |
price | number | Şubede geçerli olan güncel fiyat |
isActive | boolean | Ürünün bu sipariş tipinde satışa açık olup olmadığı |
Kullanım Örneği
Payload, ürünün yalnızca değişen fiyatını değil, o andaki tüm birim ve sipariş tipi fiyatlarını içerir. Bu sayede ek bir sorgu yapmadan ürünün güncel fiyatları doğrudan yansıtılabilir.
products dizisi tek ürün değişikliğinde de kullanılır; tekil ve toplu durumlar için ayrı bir işleme mantığı yazmanız gerekmez.
Fiyat tanımı bulunmayan sipariş tipleri prices listesine eklenmez. Ürünün şubede hiç fiyatı yoksa o ürün products dizisine eklenmez; hiçbir ürün kalmazsa event gönderilmez.
isActive alanı fiyattan bağımsız olarak ürünün satış durumunu belirtir ve product.statusChanged event'i ile aynı kaynaktan gelir. Ürünün satışa kapatılması fiyat event'i üretmez; bu durumda product.statusChanged event'i tetiklenir.