product.priceChanged

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ı

AlanTürAçıklama
productsarrayFiyatı 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ı

AlanTürAçıklama
productIdnumberÜrün ID'si
productNamestringÜrün adı
productCodestringÜrün kodu
unitsarrayÜrünün birimleri (porsiyonları). Fiyat birim bazında tanımlanır

units Alanları

AlanTürAçıklama
productUnitIdnumberÜrün birim ID'si. /Menu yanıtındaki productUnitId ile aynıdır
unitNamestringBirim adı (Adet, Porsiyon, Küçük Boy vb.)
isDefaultbooleanÜrünün varsayılan birimi olup olmadığı
pricesarraySipariş tipi bazında güncel fiyat

prices Alanları

AlanTürAçıklama
orderTypenumberSipariş tipi. 1 Masa, 3 Paket, 5 Gel-Al
orderTypeNamestringSipariş tipinin adı
pricenumberŞubede geçerli olan güncel fiyat
isActivebooleanÜ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.