İçeriğe Geç

Shopify Flow Run Code İçinde Dış Servis İsteği Neden Çalışmaz?

Shopify Flow otomasyonunda JavaScript hesaplamasıyla dış servis bağlantısının sorumluluklarını, yanıt verisini ve tekrarlanan istek riskini değerlendirin.

Yazar: Teknik AçıklamaPlatforma ÖzelAltyapı ve EntegrasyonOperasyon ve Lojistik
AdPix tarafından hazırlanan açıklayıcı şema.

Run Code İşleminin Sınırları

Shopify Flow içindeki Run code, önceki adımlardan gelen veriyi JavaScript ile işleyip sonraki adımlara sonuç döndürür. Bu ortamda fetch ile dış HTTP isteği gönderilemez; Node.js modülleri de kullanılamaz. Dolayısıyla masaüstünde çalışan bir entegrasyon kodunun aynı şekilde Flow içine taşınması beklenmemelidir. Önce otomasyonun hangi bilgiyi hesaplayacağı ve hangi bilgiyi başka sistemden alacağı belirlenir. Hatanın bu ayrımdan kaynaklanması, mağazanın dış servise erişiminin bütünüyle kapalı olduğunu göstermez.

Dış Servis Bağlantısının Yeri

Dış sisteme erişim için Send HTTP request eylemi bulunur; kullanılabilirliği Shopify planına bağlıdır ve resmî belgede Grow, Advanced ve Plus planları belirtilir. Dönen yanıtın gövdesi sonraki Run code adımında işlenebilir. Örneğin bir depo servisinden alınan sevkiyat durumu önce bağlantı adımında elde edilir, sonra işletmenin kullandığı durum adlarına dönüştürülür. İki adımın kayıtlarını ayrı incelemek, erişim sorunuyla veri dönüştürme hatasının birbirine karışmasını önler.

Girdi ve Çıktı Uyumu

Run code girişindeki GraphQL sorgusu, Flow ortamındaki verilere yöneliktir. Shopify Admin API sorgusunu doğrudan bu alana yapıştırmak uygun değildir. Çıktı tanımındaki alanlarla kodun döndürdüğü değerler de uyuşmalıdır. Örneğin sevkiyat hazır mı sorusunun sonucu mantıksal değer olarak beklenirken servis metin döndürebilir. Böyle bir uyuşmazlıkta alanın adını değiştirmek yerine gelen değerin türü ve işletmedeki anlamı birlikte incelenir. Boş yanıt için de açık bir karar gerekir.

Örnek Sevkiyat Kontrolü

Bir mağazanın paketleri hazır olduğunda ekibine bildirim göndermek istediğini düşünelim. Örnek tasarımda siparişin dış sistemdeki kimliğiyle durum okunur, yanıt içinden hazırlık bilgisi ayrılır ve yalnızca beklenen durumda bildirim adımına geçilir. Dış sistemde sipariş bulunamaması, paketin hazırlanmadığıyla aynı sonuç sayılmamalıdır. İlk durum eşleme veya veri gecikmesi incelemesi gerektirirken ikinci durum normal bir operasyon aşaması olabilir. Bu örnek, mağazaya göre ayrıca uyarlanacak bir iş kuralıdır.

Zaman Aşımı ve Tekrarlanan İstekler

Send HTTP request yanıtı en fazla otuz saniye bekler; zaman aşımından sonra yeniden deneme gerçekleşebilir. Hata kodlarına karşı davranış da eylemin ayarlarına bağlıdır. Özellikle dış sistemde kayıt oluşturan işlemlerde aynı isteğin tekrar gelmesi hesaba katılmalıdır. Örneğin her denemede yeni sevkiyat açılması operasyonu çoğaltabilir. Entegrasyonun işlem kimliği ve tekrar kontrolü buna göre tasarlanır. Başarısız yanıtı yok sayarak ilerlemek de başarı kaydı olarak yorumlanmamalıdır.

Güvenli Tanılama

Bağlantı anahtarları için Flow'un Secrets alanı kullanılabilir; gizli değerler çalışma kayıtlarında maskelenir. İnceleme notunda sipariş kimliği, hata adımı ve beklenen sonuç gibi gerekli bilgiler tutulmalıdır. Tam müşteri verisini veya erişim anahtarını teşhis amacıyla paylaşmak gereksizdir. Run code tarafından yazılan console.log çıktısı tarayıcı konsolunda değil Flow çalışma kaydında görülür. Düzeltme sonrasında boş yanıt, normal yanıt ve hatalı yanıt örnekleriyle işletmenin kararlarının doğru oluştuğu doğrulanır.

Bu Yazıdaki Terimler 1 Kavram

Kısa açıklamaları burada okuyabilir, ayrıntılar için sözlüğe geçebilirsiniz.

API
API (Application Programming Interface), farklı yazılımların birbirleriyle veri alışverişi yapmasını sağlayan bağlantı yöntemidir.

Bu Konuda Nasıl Destek Oluyoruz?

AdPix’in bu alandaki hizmet kapsamını ve çalışma sürecini inceleyin.

İlgili Platformlarda Keşfedin

Shopify