Stok ve sipariş için önemli konular
| Konu | Ne zaman |
|---|---|
| orders/create | Sipariş oluştuğunda |
| orders/updated | Sipariş güncellendiğinde |
| orders/paid | Sipariş ödendiğinde |
| orders/cancelled | Sipariş iptal edildiğinde |
| orders/fulfilled | Sipariş gönderildiğinde |
| refunds/create | İade oluştuğunda |
| products/create, products/update | Ürün açıldığında ya da değiştiğinde |
| inventory_levels/update | Stok seviyesi değiştiğinde |
| app/uninstalled | Uygulama mağazadan kaldırıldığında |
Teslim adresi bir HTTPS adresi, Google Pub/Sub ya da Amazon EventBridge olabilir. filter ve include_fields ile hangi olayların geleceğini ve gövdede hangi alanların bulunacağını daraltabilirsiniz.
Abonelik nasıl kurulur?
| Yol | Ne zaman | Not |
|---|---|---|
| shopify.app.toml | Shopify CLI ile geliştirilen uygulamalar | Shopify abonelikleri güncel tutar |
| webhookSubscriptionCreate | Uygulama kendi aboneliğini API ile yönetiyorsa | Adres, filtre ve alan seçimi verilir |
| Dev Dashboard | Amazon EventBridge hedefi tanımlamak için | Uygulama ayarlarında |
Webhook gövdesinin API sürümü abonelik başına değil, uygulamada yapılandırılan Webhooks API sürümüyle belirlenir. Bu sürüm desteklenmez hâle gelirse Shopify erişilebilir en eski kararlı sürüme geçer ve kullandığı sürümü X-Shopify-Api-Version başlığında bildirir.
Teslimat başlıkları ve doğrulama
| Başlık | Ne işe yarar |
|---|---|
| X-Shopify-Topic | Konu |
| X-Shopify-Hmac-Sha256 | Gövdenin base64 HMAC-SHA256 imzası |
| X-Shopify-Webhook-Id | Teslimat kimliği; yinelenenleri ayıklamak için |
| X-Shopify-Event-Id | Aynı satıcı işleminden doğan teslimatları ilişkilendirir |
| X-Shopify-Triggered-At | Olayın tetiklendiği zaman |
| X-Shopify-Api-Version | Gövdenin üretildiği API sürümü |
İmzayı doğrulamak için ham gövdenin HMAC-SHA256 özetini uygulamanın client secret değeriyle hesaplayıp base64 olarak başlıkla karşılaştırın. Gövdeyi JSON olarak çözen ara katman doğrulamadan önce çalışırsa imza tutmaz. Sır döndürüldükten sonra yeni sırla imzalamaya geçiş bir saate kadar sürebilir.
Zaman aşımı ve yeniden deneme
| Kural | Değer |
|---|---|
| Başarılı sayılan yanıt | 200 aralığı; 3xx dahil diğerleri hata |
| Bağlantı zaman aşımı | 1 saniye |
| İsteğin tamamı için süre | 5 saniye |
| Yeniden deneme | 4 saat içinde 8 kez |
| 8 ardışık hatadan sonra | Admin API ile kurulan abonelik silinir |
Hata durumunda uygulamanın acil durum geliştirici e-postasına uyarı gider. Beş saniyeye sığmak için bildirimi hızla kuyruğa yazıp 200 döndürün, asıl işi sonra yapın.
Sıra, yineleme ve uzlaştırma
- Shopify aynı konu içinde ya da aynı kaynağın farklı konuları arasında sıra garantisi vermez; products/update, products/create’ten önce gelebilir. Sıralamak için X-Shopify-Triggered-At başlığını ya da gövdedeki updated_at alanını kullanın.
- Aynı bildirim birden çok kez gelebilir. İşleminizi tekrarlansa da aynı sonucu verecek şekilde kurun ya da X-Shopify-Webhook-Id ile yinelenenleri atlayın.
- Belge, uygulamanızın webhook’a bel bağlamamasını, düzenli aralıklarla API’den okuyarak eksikleri tamamlamasını önerir.
- committed, reserved ve benzeri envanter durumlarındaki değişiklikler webhook tetiklemez.
Sık sorulanlar
Shopify webhook imzası nasıl doğrulanır?
Ham istek gövdesinin HMAC-SHA256 özetini uygulamanın client secret değeriyle hesaplayıp base64’e çevirir, X-Shopify-Hmac-Sha256 başlığıyla karşılaştırırsınız.
Shopify webhook yanıtı ne kadar sürede verilmeli?
Bağlantı 1 saniyede kurulmalı, istek 5 saniyede tamamlanmalıdır. 200 aralığı dışındaki yanıtlar, 3xx dahil, hata sayılır.
Webhook başarısız olursa ne olur?
Shopify 4 saat içinde 8 kez yeniden dener. Admin API ile kurulan abonelik 8 ardışık hatadan sonra silinir.
Webhook varken düzenli API okumasına gerek var mı?
Evet. Shopify teslimatı garanti etmez ve uzlaştırma işleriyle eksiklerin tamamlanmasını önerir.
Kaynaklar
İlgili Shopify API konuları
Son güncelleme: 27.10.2026 · Shopify API rehberinin tamamı


