WooCommerce Ürün Yayımlama Webhook'u Nasıl Kurulur?
Ürün yayımlandığında WooCommerce başka sisteme haber verebilir mi?
Evet. WooCommerce 10.8 sürümü, ürünün yayımlanması için ayrı bir product.published webhook konusunu ekledi. Bu olay, taslak bir ürünün canlı kataloğa çıktığı anı izleyen entegrasyonlarda yararlı olabilir. WooCommerce 10.8 sürüm notu bu konunun ürün yayımlandığında çalıştığını doğruluyor. Ancak webhook bir “her şey senkronize” düğmesi değildir; alıcı sistemin mesajı doğrulaması, işlemesi, başarısızlıkta toparlanması ve mevcut ürün durumuyla uzlaşması gerekir.
Bu yazının odağı stok veya fiyat eşitlemesinin tamamı değil, ilk yayın olayının başka sisteme doğru aktarılmasıdır. Ürün oluşturulmuş ama hâlâ taslaksa dış katalogda görünmemesi gerekebilir. Yayınlandığı an arama dizinine, iç ürün keşfine veya izinli satış kanalına bilgi göndermek istiyorsanız ayrı yayın sinyali daha net bir başlangıç noktası sağlar. Ardından gelen fiyat, açıklama veya stok değişiklikleri için farklı güncelleme akışını planlamalısınız.
Önce yayın olayının iş anlamını tanımlayın
“Yayımlandı” kelimesi her işletmede aynı iş sonucunu üretmez. Bir mağaza için ürünün sitede görünmesi yeterlidir; başka bir mağazada fotoğraf, lojistik kodu veya kanal onayı tamamlanmadan harici katalogda açılmamalıdır. Bu nedenle önce yayından sonraki hedef sistemi ve hedef sistemin kabul koşullarını yazın. Webhook'a bağlanan otomasyon yalnızca teknik olayı değil, iş kuralını da uygulamalı.
Örneğin bir perakendeci, yeni ürün açıldığında uygulama içi arama indeksini güncellemek isteyebilir. Olay alıcısı ürün kimliğini alır; gerekli alanları güvenilir API'den okur; zorunlu alanları doğrular; ardından arama sisteminde kayıt açar. Başka bir örnekte ürün, teklif portalına aktarılabilir ama fiyat onayı yoksa portalda “incelemede” kalmalıdır. İki durumda da yayın olayı süreci başlatır; nihai yayıma tek başına karar vermez.
WooCommerce'in geliştirici ön duyurusu, bu konunun product.created ve product.updated olaylarından farklı olduğunu ve katalog senkronizasyonu gibi akışlarda kullanılabileceğini açıklar. Ön duyurudaki özellikleri nihai sürüm notuyla karşılaştırmak önemlidir; bazı beta davranışları son sürümde değişebilir. Bu yazıda yalnızca nihai notta da görülen yayın olayını temel alıyoruz.
Gönderici ve alıcı sözleşmesini yazın
Entegrasyonu kurmadan önce birkaç soruyu yanıtlayın: alıcı hangi ürün kimliğini temel alıyor, aynı ürün birden fazla mağazada varsa nasıl eşleşiyor, hangi alanlar gerçekten taşınacak, ürün daha sonra yayından kaldırılırsa ne olacak? Yalnızca “ürün yayınlandı” olayını dinleyen bir sistem, sonraki değişiklikleri ve silinmeyi göremeyebilir. Bu yüzden başlangıç olayı, güncelleme olayı ve geri çekme/uzlaşma süreci birlikte tasarlanmalı.
Webhook yükünü otomatik olarak doğru ve eksiksiz veri kabul etmeyin. Alıcı sistem, olayın kaynağını doğrulayıp gerekli alanları kendi sözleşmesine göre kontrol etmeli. Ürün adı boşsa, kategori eşleşmiyorsa veya hedef kanala gerekli bilgi yoksa olay kayda alınmalı fakat eksik kayıt doğrudan canlıya çıkarılmamalı. Operasyon ekibinin bu durumu görebileceği bir inceleme kuyruğu oluşturun.
WooCommerce'in webhook yönetimi belgesi, teslim adresi ve secret alanlarını tanımlıyor. Secret, teslim edilen isteğin hash değerinin oluşturulmasında kullanılır. Alıcı tarafta bu doğrulamayı kurmak, dışarıdan gelen sahte olaylara karşı temel adımdır. Kimlik doğrulama sırrını ürün verisine, hata raporuna veya açık bir depoya yazmayın. Ayrı test ve üretim ortamları kullanıyorsanız teslim adreslerini de ayırın.
Kurulum ve test için küçük bir sıra izleyin
İlk adım sürüm kontrolüdür: mağazanın gerçekten product.published konusunu destekleyen WooCommerce sürümünde çalıştığını doğrulayın. Sonra test ortamında webhook'u oluşturun, alıcı URL'sini ve secret'ı girin, ardından taslak bir ürünü yayımlayarak tek olayın alıcıya ulaştığını kontrol edin. WooCommerce belgesine göre webhook yönetimi ayarlardaki gelişmiş bölümde bulunur. Canlı mağazada gelişigüzel test ürünü açmak yerine test ortamı kullanın.
Testi yalnızca başarılı teslimle bitirmeyin. Aynı ürünü yeniden düzenleyin: sistem yeni bir ilk-yayın işlemi mi yapıyor, yoksa güncelleme akışına mı geçiyor? Alıcı geçici olarak kapalıyken ne oluyor? Ürün hedef sistemde zaten varsa tekrar gelen olay nasıl ele alınıyor? Bunların her biri ayrı test vakasıdır. Yanıtta başarısızlık alınırsa hata, ürün kimliği ve zaman damgasıyla kayda alınmalı; müşteriye görünür ürünü sessizce yarım senkron durumda bırakmamalı.
Önemli bir sınır daha var: WooCommerce belgesi art arda teslim hatalarında webhook'un otomatik devre dışı kalabileceğini anlatıyor. Bu nedenle “bir gün gelir” varsayımıyla sadece olay bekleyen entegrasyon kırılgan olur. Başarısız teslim uyarısı, günlük durum kontrolü ve gerekirse ürün listesini karşılaştıran uzlaşma işi tasarlayın. Uyarı, küçük ekibin anlayacağı kadar açık olmalı: hangi olay, hangi hedef, hangi hata ve önerilen sonraki adım.
Yayın sonrası değişiklik ve geri alma ne olacak?
Ürün yayımlandıktan sonra stok, fiyat, başlık veya görünürlük değişebilir. Bu makale yalnızca ilk yayın sinyalini açıklar; sonraki değişiklikleri yönetmek için ayrı güncelleme kuralı gerekir. Ürün yanlışlıkla yayına alınmışsa hedef sistemde kaydı kaldırma ya da pasifleştirme kararı da tasarıma eklenmeli. Aksi halde kaynak mağaza ve harici kanal birbirinden farklı gerçekler gösterir.
Burada basit bir durum tablosu işe yarar: kaynak ürün durumu, hedef katalog durumu, beklenen işlem, başarısızlık uyarısı. Örneğin kaynakta taslak ve hedefte canlı kayıt varsa bu bir uyuşmazlıktır. Kaynakta canlı, hedefte bekleyen kayıt varsa eksik alan incelemesi gerekebilir. Bu tablo, otomasyonun “çalışıyor” görünmesine rağmen iş sonucunun yanlış kalmasını önler.
Önceki stok ve fiyat entegrasyonu rehberi, ürünün sonraki veri değişikliklerini ele alıyor. Bu yazı ise ürünün ilk kez yayımlanmasının ayrı bir olay olarak tasarlanmasına odaklanır. İki süreci birleştirmek mümkün olsa da görevlerini karıştırmak, hem veri hatası hem de zor hata ayıklama yaratabilir.
Hangi projede özel geliştirme gerekir?
Tek bir mağaza ve tek bir katalog kullanan ekip, hazır bir entegrasyonun tüm ihtiyacını karşıladığını görebilir. Birden fazla depo, kanal veya onay aşaması varsa olay alıcısında özel iş kuralları gerekebilir. Karar için mevcut WooCommerce sürümünü, hedef kanalları, ürün durumlarını, ilk yayın ile güncelleme farkını ve hata sahipliğini birlikte çıkarın. Ardından küçük bir pilot ürün setiyle davranışı sınayın; genel lansmanı gözleme göre planlayın.
Webinle'nin web yazılım ve web uygulama hizmeti, mağaza ile harici sistem arasında ihtiyaca göre entegrasyon kurgulamak isteyen işletmeler için ilgili başlangıç noktasıdır. Başvuru yapmadan önce “hangi ürün hangi koşulda dış kanalda canlı olmalı?” sorusuna birkaç gerçek örnek hazırlayın. Böylece teklif yalnızca webhook kurulumuna değil, güvenlik, hata toparlama ve operasyon sorumluluğuna da dayanır.