Shopify Flow'daki hataları giderme

Shopify Flow, mağazanızdaki görevleri ve süreçleri otomatikleştirmenize yardımcı olur ancak iş akışları oluştururken veya düzenlerken hatalarla karşılaşabilir ya da belirli sınırlara ulaşabilirsiniz. Bu sayfada, iş akışı sınırları ve veri hataları gibi karşılaşabileceğiniz yaygın sorunlar açıklanmakta ve bunları nasıl çözeceğinize dair yol gösterilmektedir. Bu hataları anlamak, sorunları gidermenize ve iş akışlarınızın sorunsuz çalışmasını sağlamanıza yardımcı olabilir.

İş akışları oluşturulurken karşılaşılan hatalar

Bir iş akışı oluştururken yeni bir iş akışı eklemenizi engelleyen hatalarla karşılaşabilirsiniz. Karşılaşabileceğiniz bazı hatalar şunlardır:

İş akışı sayısı aşıldı

Yeni bir iş akışı oluştururken Maksimum 1000 iş akışı sınırına ulaştınız. Devam etmek için lütfen kullanılmayan iş akışlarını silip tekrar deneyin. şeklinde bir hatayla karşılaşabilirsiniz.

Flow, bir mağazanın sahip olabileceği iş akışı sayısını 1000 ile sınırlar. Buna aktif ve etkin olmayan iş akışları da dahildir. Bu sınıra ulaşırsanız ve yeni bir iş akışı oluşturmak isterseniz kullanılmayan veya etkin olmayan iş akışlarını silmeniz gerekir.

Bu sınır belirlenmeden önce mağazanızda 1000'den fazla iş akışı varsa mağazanız 1000'den fazla iş akışıyla çalışmaya devam edebilir. Ancak yeni iş akışları oluşturmak için sınırın altında olmanız gerekir.

Flow uygulamasında çeşitli işlemler gerçekleştirirken bu hatayla karşılaşabilirsiniz:

  • Yeni bir iş akışı oluşturma
  • Bir iş akışını çoğaltma
  • Bir iş akışını içe aktarma
  • Bir şablon yükleme
Aynı tetikleyicide çok fazla iş akışı

Bir iş akışını etkinleştirirken mağazanızda aynı tetikleyiciyi kullanan 10'dan fazla etkin iş akışı olduğuna dair bir uyarı görebilirsiniz.

Aynı tetikleyiciyi paylaşan çok sayıda iş akışının olması performans sorunlarına neden olabilir çünkü tetikleyici etkinlik her gerçekleştiğinde Flow'un ilişkili tüm iş akışlarını işlemesi gerekir. Bu durum, yürütme sürelerinin yavaşlamasına ve kaynak kullanımının artmasına yol açabilir.

Tek bir tetikleyici üzerindeki iş akışı sayısını azaltmak için aşağıdaki yaklaşımları değerlendirin:

  • Aynı tetikleyiciyi kullanan iş akışlarını, birden fazla dal ve koşul içeren tek bir iş akışında birleştirin.
  • Artık gerekli olmayan iş akışlarını devre dışı bırakın veya silin.
  • Bunun yerine bazı iş akışlarında daha spesifik bir tetikleyicinin kullanılıp kullanılamayacağını gözden geçirin.

İş akışları düzenlenirken karşılaşılan hatalar

Bir iş akışını düzenlerken iş akışını kaydetmenizi engelleyen hatalarla karşılaşabilirsiniz. Bir iş akışını düzenlerken karşılaşabileceğiniz yaygın hatalar şunlardır:

Veri bulunamadı

Bir iş akışına yeni bir eylem eklerken Veri bulunamadı şeklinde bir hatayla karşılaşabilirsiniz:

Veri bulunamadı hatası

Bu hata, Ürün etiketleri ekle de dahil olmak üzere birçok eylemin Ürün gibi bir Shopify kaynağı gerektirmesi nedeniyle oluşur. Bu kaynak mevcut değilse eylem çalıştırılamaz. Genellikle iş akışları, gerekli verilere benzer ancak tam olarak gerekeni sağlamayan veriler içerebilir.

Aşağıdaki bölümlerde bu hataya neden olabilecek yaygın senaryolar ve bunların nasıl çözüleceği açıklanmaktadır.

Sorun 1: Tek bir ürün gerekirken Veri al tarafından bir liste sağlandı

Genellikle bir iş akışı, Shopify kaynaklarının bir listesini sağlar ancak eylem yalnızca tek bir kaynağa izin verir. Örneğin, iş akışı Ürün verilerini al aracılığıyla bir ürün listesi sağlarken Ürün etiketleri ekle eylemi tek bir ürün gerektirir.

Bu hatayı çözmek için listeyi döngüye almak ve listedeki her bir ürün için eylemi çağırmak üzere bir Her biri için eylemi ekleyebilirsiniz. Bu örnek, hem hatayı hem de Her biri için kullanılarak bulunan çözümü göstermektedir:

Veri bulunamadı hatası

Sorun 2: Tek bir ürün gerekirken tetikleyici tarafından bir liste sağlandı

Bir eylem tek bir kaynak gerektirirken tetikleyici bir liste sağladığında da benzer bir hata oluşabilir. Örneğin, Bir gönderim siparişini gönderildi olarak işaretle eylemi bir Gönderim siparişi gerektirir ancak tetikleyici, bir gönderim siparişleri listesi sağlayan bir Sipariş'ten gelir.

Bu hatayı çözmek için, Sorun 1'de olduğu gibi, listeyi döngüye almak ve listedeki her bir ürün için eylemi çağırmak üzere bir Her biri için eylemi ekleyebilirsiniz:

Gönderim siparişleri için çözüm

Alternatif olarak, gerekli kaynağı sağlayan farklı bir tetikleyici kullanabilirsiniz. Örneğin, Sipariş oluşturuldu tetikleyicisi yerine, tek bir gönderim siparişi sağlayan Gönderime hazır gönderim siparişi tetikleyicisini kullanabilirsiniz.

Gönderime hazır gönderim siparişi tetikleyicisi örneği

Sorun 3: Zamanlanmış saat tetikleyicisi tarafından veri sağlanmadı

Zamanlanmış saat tetikleyicisi, Shopify kaynak verileri sağlamaz. Tetikleyiciden sonra Shopify kaynakları gerektiren eylemleri bağlamaya çalışırsanız hatayla karşılaşırsınız.

Bu hatayı çözmek için Ürün verilerini al gibi gerekli verileri sağlayan bir eylem ekleyin. Sorun 1'de belirtildiği gibi, veri alan bir eylem tarafından döndürülen herhangi bir listeyi döngüye almak için bir Her biri için eylemi de eklemeniz gerekir.

Eksik gerekli ürün örneği

Sorun 4: Bir uygulama tetikleyicisi tarafından veri sağlanmadı

Sorun 3'e benzer şekilde, uygulamalar tarafından oluşturulan bazı tetikleyiciler gerekli Shopify kaynak verilerini sağlamaz. Örneğin, bir "Değerlendirme oluşturuldu" tetikleyicisi bir e-posta adresi sağlayabilir ancak Müşteri etiketleri ekle gibi birçok eylem için gerekli olan bir Müşteri nesnesi sağlamayabilir.

Bu hatayı çözmek için ihtiyacınız olan Shopify kaynağını getirmek üzere bir "Veri al" eylemi kullanabilirsiniz. Örneğin, tetikleyici tarafından sağlanan e-posta adresinden müşteri nesnesini almak için Müşteri verilerini al eylemini kullanabilirsiniz. Diğer sorunlarda olduğu gibi, veri alan bir eylem tarafından döndürülen herhangi bir listeyi döngüye almak için bir Her biri için eylemi de eklemeniz gerekir.

"Veri al" bir seçenek değilse uygulama geliştiricisiyle iletişime geçerek tetikleyicilerini gerekli verileri sağlayacak şekilde değiştirip değiştiremeyeceklerini sormanız gerekebilir.

Bekleme adımı sayısı aşıldı

İş akışınıza yeni bekleme adımları eklerken İş akışlarında 40 veya daha az bekleme adımı olmalıdır şeklinde bir hatayla karşılaşabilirsiniz.

Flow, bir iş akışında izin verilen bekleme adımlarının sayısını 40 ile sınırlar. Bu hatayla karşılaşırsanız bu sınırı aşmışsınız demektir. Sorunu çözmek için iş akışınızın başka bir yerindeki bekleme adımlarını kaldırın.

Bu sınır getirilmeden önce 40'tan fazla bekleme adımı içeren iş akışlarınız varsa iş akışınız beklendiği gibi çalışmaya devam eder. Ancak ek bekleme adımları eklemek için öncelikle sınırın altında kalmak üzere mevcut adımları kaldırmanız gerekir.

Ayrıca, tüm bekleme adımlarındaki toplam bekleme süresi 90 günü aşamaz.

Yapılandırma alanı değeri boyut sınırı aşıldı

İş akışınızdaki koşulların içindeki yapılandırma alanlarının değerini düzenlerken Yapılandırma alanı değeri 50 kB'nin altında olmalıdır şeklinde bir hatayla karşılaşabilirsiniz.

Flow, bir yapılandırma alanı değerinin boyutunu 50 kB veriyle sınırlar. Bu hatayla karşılaştığınızda bu sınırı aşmışsınız demektir. Sorunu çözmek için bu alana eklediğiniz verilerin uzunluğunu kısaltın.

Değeri 50 kB veya daha fazla olan yapılandırma alanlarınız zaten varsa iş akışlarınız beklendiği gibi çalışmaya devam eder. Ancak iş akışınızda değişiklik yapmak için hataya neden olan değeri gözden geçirmeniz gerekir.

Bir iş akışı çalışırken karşılaşılan hatalar

Bir iş akışı çalıştırması hatayla karşılaştığında, başarısız olarak işaretlenir. Hata mesajı, iş akışı çalıştırma ayrıntılarında görüntülenir. Bir iş akışı çalıştırması başarısız olduğunda karşılaşabileceğiniz yaygın hatalar şunlardır:

  • Geçici hatalar, Flow bir görevi tamamlayamadığında oluşan geçici hatalardır. Bu hatalar, başarılı olana veya zaman aşımı sınırına ulaşana kadar yeniden denenir.
  • Kalıcı hatalar, Flow bir görevi tamamlayamadığında oluşan ve görevin yeniden denemediği hatalardır.

Geçici hatalar

Geçici hatalar, Flow bir görevi tamamlayamadığında oluşan geçici hatalardır. Bu hatalar, başarılı olana veya zaman aşımı sınırına ulaşana kadar yeniden denenir. Örneğin, Flow bir bağlayıcı eylemi gerçekleştirirken bir iş ortağıyla iletişime geçemezse görevden vazgeçmeden önce görevi birkaç kez yeniden dener.

Yeniden denemeler zamana yayılır ve sonraki her deneme arasındaki gecikme, bir önceki gecikmeye göre artar. Genellikle, bir iş akışında geçici hatalar yaşandığında iş akışı, görevleri yeniden denerken uzun bir süre çalışıyor durumunda kalır.

Bir görev başarıyla yeniden denendiğinde iş akışı devam eder. Yeniden denenen bir görevde kalıcı bir hata oluşursa iş akışı başarısız olur. Her iş akışı bölümünün toplamda 36 saatlik bir üst yürütme sınırı vardır. Geçici hataların olduğu bir adım bu sınıra ulaşılmadan önce başarılı olmazsa iş akışı başarısız olur.

Bekleme adımları içeren iş akışları bölümlere ayrılır. Bu durum, zaman aşımı sınırlarının bir iş akışında nasıl hesaplandığını etkiler. Her bölüm, birlikte yürütülen bir görev grubudur ve her birinin kendi 36 saatlik zaman sınırı vardır. Örneğin, bir iş akışında bir saat bekleyen bir bekleme adımı varsa bekleme adımından önceki görevler bir bölümde, bekleme adımından sonraki görevler ise başka bir bölümde birlikte yürütülür. Bir iş akışında birden fazla bekleme adımı varsa her bir bekleme adımı arasındaki görevler tek bir bölümde birlikte yürütülür. Bekleme adımı olmayan iş akışları tek bir bölüm olarak kabul edilir.

Ara sıra geçici hatalar oluşması yaygın bir durumdur. Ancak, birden fazla çalıştırmada sürekli olarak aynı geçici hatayla karşılaşan bir iş akışınız varsa iş akışınızın yeniden yapılandırılması gerekebilir.

Adım zaman aşımına uğradı

Adım zaman aşımına uğradı hatası genellikle, iş akışındaki bir görev tek bir bölüm içinde çok fazla veri sorgulamaya çalıştığında meydana gelir. Bu hata genellikle, özellikle de hızlıca işlenemeyecek kadar büyük olan iç içe listelerde döngüye giren iş akışlarında oluşur.

Bu hata oluştuğunda tetikleyici veya bekleme adımı yeniden deneniyor olarak görüntülenir.

Bu sorunu çözmek için listelere ve iç içe listelere erişen durumları inceleyerek doğru şekilde ayarlandıklarını doğrulayın. Yaygın bir sorun, bir durumun yalnızca bir siparişteki ürünler yerine mağazadaki tüm ürünleri kontrol etmesidir.

5XX durumu

Çoğu Flow eylemi, HTTP çağrıları yapmayı içerir. Bazen ağ veya diğer sunucu sorunları, HTTP çağrılarının başarısız olmasına ve 500 ile 599 arasında bir hata kodu döndürmesine neden olabilir. Bu hatanın bir kez görülmesi sorun teşkil etmez ancak tekrarlanan örnekler, adımın nasıl yapılandırıldığından ziyade görevi yürüten sunucuda bir sorun olduğunu gösterebilir.

Bu tür bir hata en çok HTTP isteği gönder eyleminde görüntülenir ancak çoğu görevde meydana gelebilir.

GraphQL kısıtlandı

Bir iş akışı tarafından tamamlanan toplam iş hacmi, kısmen planınıza göre belirlenen API hız sınırları ile kısıtlanır. İş akışı çok karmaşık olmadıkça veya istenmeyen bir tasarım hatası içermedikçe bu sınırlara genellikle ulaşılmaz.

Aşağıdaki örnekler bu hataya yol açabilecek durumları açıklamaktadır:

  • İş akışındaki Liquid veya durumlar, HTML içeren meta alan değerlerini kontrol etmek gibi büyük miktarda veri içeren bir listede döngüye girer.
  • İş akışındaki Liquid veya durumlar, büyük bir mağazada shop.orders üzerinde döngü yapmak gibi büyük bir listede döngüye girer.
  • Bir iş akışı, sürekli olarak yeni iş akışı çalıştırmaları oluşturduğu sonsuz bir döngüye girer. Örneğin, iş akışı Müşteri etiketleri eklendi tetikleyicisini kullanıyor ve Müşteri etiketleri ekle eylemini içeriyorsa bu durum yaşanabilir.

Sınıra ulaşılırsa GraphQL kısıtlandı hatası alırsınız. Bu hata, çalışmaya çalıştıklarında diğer iş akışlarını etkileyebilir. Bu nedenle bu hata oluşursa hemen çözün.

Kalıcı hatalar

Kalıcı hatalar, Flow bir görevi tamamlayamadığında oluşan ve görevin yeniden denemediği hatalardır. Örneğin, Flow geçersiz bir e-posta adresi nedeniyle e-posta gönderemiyorsa görevi yeniden denemez. Bunun yerine iş akışı başarısız olur.

Alanlar: Kimlik gerekli ancak boş

Shopify eylemlerinin çalışması için ürün, müşteri veya sipariş gibi bir veya daha fazla kaynak gerekir. Gerekli kaynak mevcut değilse eylem, amaçlandığı gibi çalışamaz. Örneğin, Shopify yöneticisinde müşteri olmadan bir sipariş oluşturulabilir. Müşteri etiketleri ekle gibi bir eylem çalıştırırsanız eylem bu hatayı vererek başarısız olur.

Bu hatayı önlemek için eylemden önce kaynağın mevcut olup olmadığını kontrol edecek bir durum ekleyin. Önceki örnekte, Müşteri etiketleri ekle ile aynı iş akışında dahili bir e-posta göndermek istiyorsanız e-posta eylemini başarısız olabilecek adımdan önceye yerleştirebilir veya aşağıdaki yaklaşımlardan birini kullanabilirsiniz:

Eylemleri paralel şubelere yerleştirin (bir adımdan 2 veya daha fazla şube çıktığı durumlarda):

Tetikleyiciden sonra paralel olarak iki eylem gösteren örnek.

Eylemden önce müşterinin mevcut olup olmadığını kontrol etmek için bir durum ekleyin. Örneğin, sipariş / müşteri / kimliği boş değil ve mevcut olup olmadığını kontrol edebilirsiniz.

Kimlik arayan bir durumu gösteren örnek.

Flow'un Google E-Tablolar hesabınız için izni yok. Lütfen hesabınızı yeniden bağlayın.

Google E-Tablolar bağlayıcısı, e-tabloya yazma iznine sahip olmak için Google hesabınızı Flow'a bağlamanızı gerektirir. Bu hata; hesabın Flow ile olan bağlantısının kaldırılması veya bu hesabın ilgili e-tabloya erişememesi nedeniyle Flow'un bir e-tabloya yazma izni olmadığında oluşabilir.

Bunu çözmek için bağlayıcı için kullanılan hesabın e-tabloyu açabildiğinden ve düzenleme erişimine sahip olduğundan emin olun. Yanlış hesap bağlıysa bağlantısını kesebilir ve yeni bir hesap bağlayabilirsiniz.

Adımlar:

  1. Mevcut bir iş akışını açın veya yeni bir iş akışı oluşturun.
  2. İş akışına bir eylem ekleyin.
  3. Google E-Tablolar bağlayıcısını seçin.
  4. Bağlantıyı Kes'e ve ardından doğru Google hesabını yeniden bağlamak için Bağlan'a tıklayın.
Geçersiz özelliklere sahip Flow eylemi alındı. Müşteri, pazarlama materyallerini kabul etmiyor.

Pazarlama e-postası gönder eylemi, pazarlama e-postası almayı kabul etmemiş müşterilere e-posta göndermez ve iş akışı bunu yapmaya çalışırsa kalıcı olarak başarısız olur.

Bunu çözmek için iş akışına, müşterilerin abonelik durumunu kontrol eden bir durum ekleyin. Müşterilerinize e-posta göndermeden önce, pazarlama e-postaları almayı kabul ettiklerinden emin olabilirsiniz. E-posta abone listesi yönetimi bölümündeki adımları izleyin.

[Kaynak türü] için eksik kaynak

Bu hata, müşteri veya sipariş gibi bir kaynağın, iş akışı verilerini almadan önce silindiğini gösterir. Bu durum çoğunlukla bir bekleme adımından sonra meydana gelir ancak kaynak, tetikleyici olay gerçekleştikten hemen sonra silinirse tetikleyicide de meydana gelmesi olasıdır.

Bir hata oluştuğunda bildirim alın

Hataların mağaza operasyonlarınızı etkilemesi durumunda, bir hata oluştuğunda bildirim alacak şekilde ayarlama yapabilirsiniz. Hata bildirimleri, İş akışı hatası oluştu tetikleyicisi kullanılarak bir iş akışı olarak oluşturulabilir. Hata bildirimleri, gereksiz uyarıları sınırlayacak şekilde tasarlanmıştır. Bu nedenle, iş akışı sürümü başına yalnızca bir bildirim alırsınız.

Başlamak için aşağıdaki şablonlardan birini kullanabilirsiniz:

Çalıştırmaları yeniden deneme

Bazı durumlarda bir iş akışı çalıştırması hatayla karşılaşabilir veya amaçlandığı gibi çalışmayabilir. İlgili iş akışındaki sorunları giderip düzelttikten sonra, geçmiş çalıştırmaların sonuçlarını geriye dönük olarak düzeltmek için bu çalıştırmalar manuel olarak yeniden denenebilir. İş akışı çalıştırmalarını yeniden deneme hakkında daha fazla bilgi edinin.

Çalışıyor (hız sınırlı)

Bazı durumlarda bir veya daha fazla iş akışı çok fazla kaynak kullanabilir. Bunun sorunlara yol açmasını önlemek için Flow, mağazanızdaki çalıştırmaların yürütülmesini kasıtlı olarak sınırlar ve bu durum gecikmelere ve zaman aşımı hatalarına neden olabilir. Bu sorun, genellikle amaçlandığı gibi çalışmayan bir hatayı düzeltmek için verimsiz iş akışları yeniden yazılarak çözülebilir.

Çok uzun süre çalışma

Bu mesaj, bir iş akışına ait çalıştırmaların yürütülmesinin çok uzun sürdüğünü belirtir. Bunun yaygın nedeni, bir iş akışı içinde Flow'un getirmesi çok uzun süren büyük miktarda verinin kullanılmasıdır.

Bu durumlara genellikle, birden çok öğe listesinden geçen derin talep yolları neden olur (örneğin, bir ürünün dahil olduğu tüm koleksiyonlardaki tüm ürünlerin tüm meta alanlarını talep etmek gibi):

Uzun süren bir iş akışı örneği.

Bu durum, genellikle bir iş akışının tetikleyici adımının zaman aşımına uğramasıyla da ilişkilidir.

Tüm meta alanlar arasında döngü oluşturan iş akışları genellikle yalnızca belirli bir meta alan kullanılarak iyileştirilebilir. İçe içe geçmiş birden çok listeye (bir ürüne ait tüm koleksiyonlardaki tüm ürünler gibi) veya özellikle büyük listelere (tüm nesnelere ait tüm meta alanları içeren meta alan tanımları gibi) kasıtsız olarak erişilmiş olabilir. Doğru alanı (tek bir ürün veya bir nesnedeki tek bir meta alan) seçmek verimliliği önemli ölçüde artırabilir. Diğer durumlarda, bir sorgu filtresiyle "Ürün/Sipariş/Müşteri Verilerini Al" eylemini kullanmak, kullanılan nesne sayısını önemli ölçüde azaltabilir ancak yine de ilgili nesnelere erişim sağlar.

Çok fazla veri işleme

Bu mesaj, bir iş akışına ait çalıştırmaların büyük miktarda veri oluşturduğunu belirtir. Buna genellikle, birden çok liste katmanındaki alanların kontrol edilmesi nedeniyle birçok alanı kontrol eden karmaşık durumlar yol açar.

Örneğin, "Bu müşterideki en az bir etiket için, en az bir sipariş satır öğesi için, satır öğesindeki en az bir etiket için" gibi bir durum, birçok kontrolün yapılmasına ve bu kontrollerin sonuçlarını görüntülemek için çok fazla veri oluşturulmasına neden olabilir:

Çok fazla veri işlemeye çalışan bir iş akışı örneği.

Otomatik yeniden denemelerin başarısız olması

Bu mesaj, bir iş akışına ait çalıştırmaların geçici bir sorun nedeniyle tekrar tekrar başarısız olduğunu ancak sonraki yeniden denemelerde sık sık başarılı olmadığını belirtir. Bu durum genellikle Shopify'ın Admin API'si veya bir iş ortağının uygulaması yüksek hacimde taleple karşılaştığında meydana gelir.