Webhook vs polling: ne zaman hangisi?
Polling belirli aralıklarla API'yi sorgular; webhook Trendyol'un olayı size push etmesidir. Sipariş gecikmesini dakikalardan saniyelere indirmek için webhook şarttır; ancak tek başına yeterli değildir — reconciliation polling yedek olarak kalmalıdır.
Webhook kaybı (endpoint down, DNS hatası) sessiz veri kaybı üretir. En az 15 dakikada bir «son sipariş zamanı» kontrolü ile webhook sağlığını doğrulayın.
Endpoint kurulumu ve güvenlik
Webhook URL'niz HTTPS, geçerli sertifika ve dışarıdan erişilebilir olmalıdır. Self-signed sertifika Trendyol tarafından reddedilir. Endpoint path'ini tahmin edilemez yapın; `/hooks/trendyol/{tenantId}` gibi.
Gelen istekte imza veya shared secret doğrulaması yapın; doğrulanmayan payload işlenmemelidir. Replay saldırısına karşı timestamp toleransı (ör. 5 dakika) uygulayın.
Olay türleri ve işleyiciler
Her olay türü için ayrı handler: sipariş oluşturuldu, iptal, kargo statüsü, iade talebi. Tek monolitik handler hata ayıklamayı zorlaştırır.
Handler idempotent olmalıdır: aynı sipariş ID iki kez gelirse ikinci işlem no-op. Idempotency key olarak Trendyol sipariş numarasını kullanın.
- Sipariş → rezervasyon + depo kuyruğu
- İptal → rezervasyon iptali + kargo kodu iptali
- İade → müşteri hizmetleri kuyruğu
Kuyruk mimarisi ve ölçekleme
Webhook handler'ı hafif tutun: doğrula, kuyruğa yaz, 200 dön. Ağır iş (ERP yazma, stok push) arka plan worker'da. Handler timeout webhook yeniden gönderimine yol açar.
Yoğun kampanya gecesinde kuyruk derinliği alarmı kurun; worker sayısını otomatik ölçeklendirin veya öncelik kuyruğu kullanın.
Test, gözlem ve hata ayıklama
Staging endpoint'i ile Trendyol test olayları gönderin. Production'a geçmeden önce kaçırılan olay senaryosunu simüle edin: endpoint'i 10 dakika kapatıp reconciliation'ın yakaladığını doğrulayın.
Her webhook için correlation ID'yi structured log'a yazın. Destek ticket'ında «hangi olay gelmedi» sorusuna log ile cevap verebilmelisiniz.
Sık sorulan sorular
Webhook gelmiyor — ilk kontrol?
URL erişilebilirliği, SSL zinciri, firewall/WAF kuralları ve Trendyol panelindeki kayıtlı URL. Son olarak endpoint'in 2xx dönüp dönmediği — 500 serisi retry fırtınası yaratır.
Aynı olay birden fazla gelirse?
Normaldir; idempotent handler tasarlayın. Veritabanında unique constraint sipariş ID üzerinde olmalıdır.
Webhook yeterli olunca polling'i kapatır mıyım?
Hayır. Günlük reconciliation job webhook kaçaklarını yakalar. İkisini birlikte kullanın.
Pillar rehber
Trendyol satıcıları için entegrasyon yalnızca «ürün çekmek» değildir. Güvenli credential yönetimi, batch push sonuçları, katalog eşleştirme ve sync izleme birlikte çalışmalıdır.
Trendyol entegrasyonu: API'den operasyona