Shopify Flow'daki koşullar

Shopify Flow'da koşullar, genellikle bir işlem gerçekleştirilip gerçekleştirilmeyeceğini kontrol etmek için, iş akışında hangi yolun takip edileceğini belirlemek amacıyla kullanılır. Bir koşul ayarladığınızda kontrol edilecek bir veri alanı (ürün başlığı gibi), bir mantıksal operatör (equal to gibi) ve karşılaştırmak üzere bir değer (Blue jeans gibi) seçersiniz.

Örnek koşullar

Bir listedeki en az bir öğenin, bir koşulu karşılayıp karşılamadığını kontrol etme

Bu örnekte, bir listedeki en az bir öğenin belirli bir değere eşit olup olmadığını kontrol eden tipik bir koşul gösterilmektedir.

Bu durumda koşul, siparişte yer alan ürünlerden birinde presale etiketi olup olmadığını kontrol eder. Bu koşulu oluşturmak için şunları seçersiniz: order / lineItems / product / tags. Varsayılan olarak Flow, at least one of (en az biri) mantıksal operatörünü seçer:

If at least one of order / lineItems:
  If at least one of lineItem_item / product / tags
    tags_item
    is equal to
    presale

At least one of ifadesini içeren kısımlar, liste operatörleridir ve birden fazla liste öğesi arasında eşleştirme yapmak için kullanılır. Is equal to kısmı, tek bir liste öğesinin eşleşip eşleşmediğini belirleyen alan düzeyindeki bir operatörüdür.

Bir listede yer alan öğelerden hiçbirinin bir koşulu karşılamaması durumunu kontrol etme

Bu örnekte, bir listede yer alan öğelerden hiçbirinin belirli bir değerle eşleşmemesi durumunu kontrol eden tipik bir koşul gösterilmektedir. Yaygın olarak karşılaşılan bir sorun, listelerin boş olmasıdır. Liste boş olduğunda koşul, liste operatörü tarafından işlenir (bu durumda none of (hiçbiri).

Bu durumda koşul, ürün etiketlerinden hiçbirinin foo değerine eşit olmaması durumunu kontrol eder:

If none of product / tags:
  tag_item
  is equal to
  foo

(1) Ürün etiketi yoksa veya (2) etiketlerden hiçbiri foo değilse koşul true sonucunu döndürür. Aksi takdirde, false sonucunu döndürür.

Bir listedeki bir öğenin, birden fazla ölçütü karşılayıp karşılamadığını kontrol etme

Bu örnekte, bir listedeki en az bir öğenin iki farklı ölçütü karşılayıp karşılamadığını kontrol eden tipik bir koşul gösterilmektedir.

Bu durumda koşul, bir siparişte yer alan ürünlerden birinin presale etiketine sahip olup olmadığını ve productType değerinin clothing olup olmadığını kontrol eder.

If at least one of order / lineItems:
  If at least one of lineItem_item / product / tags
    tags_item
    is equal to
    presale
  AND
  If lineItem_item / product
    productType
    is equal to
    clothing

Bu koşulu oluşturmak için şunları yapmanız gerekir:

  1. İlk ölçüt için order / lineItems / product / tags'i seçin.
  2. lineItems listesinden Add criteria for same item'ı (Aynı ürün için ölçüt ekle) seçin. Not: Burada yanlış liste öğesini seçmek yaygın bir hatadır.
  3. Üst düzey nesne olarak lineItems_item'ı, ikinci ölçüt olarak product / productType'ı seçin. Not: Burada da yanlış nesneyi seçmek yaygın bir hatadır.
  4. İki ölçütü birleştirmek için AND'i seçin.
  5. İki ölçüt için presale ve clothing değerlerini girin.

Flow ile kullanılan veri türleri

Herhangi bir Flow koşulunda ilk değer, mağazanızdan alınan verilerdir ve GraphQL Admin API'sinden alınır.

Flow aşağıdaki veri türlerini destekler:

  • Reel Sayı: Reel sayı değerleri ondalık miktarı olan sayılardır. Örneğin 4,25.
  • Tam Sayı: Tam sayı değerleri, ondalık miktarı olmayan sayılardır. Örneğin 42.
  • Tarih: Tarih değerleri, tarihin sayısal temsilidir. Örneğin, 01012021.
  • Dize: Dize değerleri metindir. Dize değerleri kullanılarak yapılan karşılaştırmalar büyük/küçük harfe duyarlı değildir.
  • Boole: Boole değerleri doğru veya yanlıştır.
  • Enum: Enum değerleri, bir değişkenin önceden tanımlanmış sabitler kümesi olmasına izin veren veri gruplarıdır.

Mantıksal operatörler

Mantıksal operatörler, koşulunuzun nasıl uygulandığını tanımlar. Koşullar, bir siparişin toplamının belirli bir tutarın üzerinde olup olmadığı veya müşterinin pazarlama kabul edip etmediği gibi basit özellikleri kontrol eder. Mantıksal operatörler daha karmaşık özellikleri de kontrol edebilir.

Operatörler, equal to (şuna eşit) veya not equal to (şuna eşit değil) gibi alan düzeyindeki operatörler veya at least one of (en az biri) veya none of (hiçbiri) gibi liste operatörleri olabilir.

Alan düzeyindeki operatörler

Alan düzeyindeki operatörler, iki değeri karşılaştırmak için kullanılır. Flow aşağıdaki operatörleri kullanabilir:

Şuna eşit:

Equal to (Şuna eşit), değerlerin aynı olması koşulunun karşılanıp karşılanmadığını kontrol etmek için değerleri karşılaştırır. Aşağıdaki örnekte, order.currentTotalDiscountsSet.shopMoney.amount değeri mağaza verilerinizden alınmış ve ikinci değer olan 50 ile karşılaştırılmıştır.

Alınan veri 50'ye eşitse siparişi iptal etmek için

İlk değer 50'ye eşitse koşul doğru olur. Sipariş iptal edilir.

Şuna eşit değil:

Not equal to (Şuna eşit değil), değerlerin aynı olmaması koşulunun karşılanıp karşılanmadığını kontrol etmek için değerleri karşılaştırır. Aşağıdaki örnekte, order.currentTotalDiscountsSet.shopMoney.amount değeri mağaza verilerinizden alınmış ve ikinci değer olan 50 ile karşılaştırılmıştır.

Alınan veri 50'ye eşit değilse siparişi iptal etmek için

İlk değer 93'e eşitse koşul doğru olur. Sipariş iptal edilir.

"Şu değerden yüksek" ve "Şu değerden yüksek veya ona eşit"

Greater than (Şu değerden yüksek) ve Greater than or equal to (Şu değerden yüksek veya ona eşit), ilk değerin ikinci değerden yüksek olup olmadığını ya da yüksek veya eşit olup olmadığını kontrol etmek için değerleri karşılaştırır. Aşağıdaki örnekte, order.currentTotalDiscountsSet.shopMoney.amount değeri mağaza verilerinizden alınmış ve ikinci değer olan 50 ile karşılaştırılmıştır.

Alınan veri 50'den yüksekse siparişi iptal etmek için

Mağazanızdan alınan değer 137 ise 137 50'den yüksek olduğundan koşul doğrudur. Sipariş iptal edilir.

"Şu değerden düşük" ve "Şu değerden düşük veya ona eşit"

Less than (Şu değerden düşük) ve Less than or equal to (Şu düşük yüksek veya ona eşit), ilk değerin ikinci değerden düşük olup olmadığını ya da düşük veya eşit olup olmadığını kontrol etmek için değerleri karşılaştırır. Aşağıdaki örnekte, order.currentTotalDiscountsSet.shopMoney.amount değeri mağaza verilerinizden alınmış ve ikinci değer olan 50 ile karşılaştırılmıştır.

Alınan veri 50'ye eşit veya 50'den düşükse siparişi iptal etmek için

Mağazanızdan alınan değer 47 ise 47 50'den düşük veya ona eşit olduğundan koşul doğrudur. Sipariş iptal edilir.

At least one of (En az biri)

At least one of operatörü, alanın sağlanan listede yer alan herhangi bir değere eşit olup olmadığını kontrol eder. Kontrol edilecek değerler tek tek girilmeli, ardından enter tuşuna basılmalıdır (etiketlerde olduğu gibi). At least one of operatörünü boş bir dizide kullanmak yanlış bir değerlendirmeyle sonuçlanır. Aşağıdaki örnekte, mağaza verilerinizden order.lineitem.product.title değeri alınır ve ikinci değer kümesiyle kıyaslanır: pineapple, guava, kiwi (ananas, guava, kivi).

Alınan veri pineapple, guava, veya kiwi (ananas, guava veya kivi) içeriyorsa siparişi iptal etmek için

Mağazanızdan alınan değer guavaysa guava, ananas, guava ve kivi dizisinin içinde yer aldığından koşul doğrudur. Sipariş iptal edilir.

Not any of (Herhangi bir değil)

Not any of operatörü, alanın sağlanan listede yer alan değerlerden herhangi birine eşit olmaması koşulunun karşılanıp karşılanmadığını kontrol eder. Kontrol edilecek değerler tek tek girilmeli, ardından enter tuşuna basılmalıdır (etiketlerde olduğu gibi). Aşağıdaki örnekte, mağaza verilerinizden order.lineitem.product.title değeri alınır ve ikinci değer kümesiyle kıyaslanır: pineapple, guava, kiwi (ananas, guava, kivi).

Alınan veri ananas, guava veya kivi içermiyorsa siparişi iptal etmek için

Mağazanızdan alınan değer ahududuysa bu değer ananas, guava ve kivi dizisinin içinde yer almadığından koşul doğrudur. Sipariş iptal edilir.

Şunu içerir:

Includes (Şunu içerir), ilk değer girişinin ikinci değer girişindeki verileri içermesi koşulunun karşılanıp karşılanmadığını kontrol etmek için değerleri karşılaştırır. Aşağıdaki örnekte, order.lineitem.product.title değeri mağaza verilerinizden alınmış ve ikinci değer olan "scrape" ile karşılaştırılmıştır.

Alınan veri

Mağaza verilerinizden alınan değer "skyscraper" ise koşul doğrudur. Çünkü "scrape" dizesinin tümü "skyscraper" dizesinin içinde yer alır. Sipariş iptal edilir.

Şunu içermez:

Does not include (Şunu içermez), ilk değer girişinin ikinci değer girişindeki verileri içermemesi koşulunun karşılanıp karşılanmadığını kontrol etmek için değerleri karşılaştırır. Aşağıdaki örnekte, order.lineitem.product.title değeri mağaza verilerinizden alınmış ve ikinci değer olan "scrape" ile karşılaştırılmıştır.

Alınan veri

Mağaza verilerinizden alınan değer "scrap-metal" ise koşul doğrudur çünkü scrape dizesinin tümü "scrap-metal" dizesinin içinde yer almaz. Sipariş iptal edilir.

Şununla başlar:

Starts with (Şununla başlar), ilk değerin, ikinci değerdeki veriyle başlaması koşulunun karşılanıp karşılanmadığını kontrol etmek için değerleri karşılaştırır. Aşağıdaki örnekte, order.shippingAddress.country değeri mağaza verilerinizden alınmış ve ikinci değer olan "United" ile karşılaştırılmıştır.

Alınan veriler Birleşik dizesi ile başlıyorsa siparişi iptal etmek için

Mağazanızdan alınan değer Birleşik Krallık ise Birleşik dizesi, Birleşik Krallık dizesini başlattığından koşul doğru olur. Sipariş iptal edilir.

Şununla başlamaz:

Does not start with (Şununla başlamaz), ilk değerin, ikinci değerdeki veriyle başlamaması koşulunun karşılanıp karşılanmadığını için değerleri karşılaştırır. Aşağıdaki örnekte, order.shippingAddress.country değeri mağaza verilerinizden alınmış ve ikinci değer olan "United" ile karşılaştırılmıştır.

Alınan veriler

Mağazanızdan alınan değer Kanada ise, Kanada dizesi Birleşik Krallık'ı başlatmadığından koşul doğrudur. Sipariş iptal edilir.

Şununla biter:

Ends with (Şununla biter), ilk değerin, ikinci değerdeki veriyle bitmesi koşulunun karşılanıp karşılanmadığını kontrol etmek için değerleri karşılaştırır. Aşağıdaki örnekte, order.lineitems.product.title değeri mağaza verilerinizden alınmış ve ikinci değer olan "last-available" ile karşılaştırılmıştır.

Alınan veriler

Mağazanızdan alınan değer "athletic socks last-available" ise "athletic socks last-available" dizesi "last-available" ile bittiğinden koşul doğrudur. Sipariş iptal edilir.

Şununla bitmez:

Does not end with (Şununla bitmez), ilk değerin ikinci değerdeki veriyle bitmemesi koşulunun karşılanıp karşılanmadığını kontrol etmek için değerleri karşılaştırır. Aşağıdaki örnekte, order.lineitems.product.title değeri mağaza verilerinizden alınmış ve ikinci değer olan "last-available" ile karşılaştırılmıştır.

Alınan veriler son olarak

Mağazanızdan alınan değer "athletic socks new" ise "athletic socks new" dizesi "last-available" ile bitmediğinden koşul doğrudur. Sipariş iptal edilir.

Null veya boş operatörler

Boş veya mevcut değil

Verilerinizdeki bazı alanlar boş olabilir. Örneğin order.cancelReason, sipariş iptal edilmemişse null sonucunu döndürür. Bir alan boş olduğunda null, mevcut olduğunda true ve false sonuçlarını döndürmek itiyorsanız empty or does not exist (boş veya mevcut değil) operatörünü kullanın.

Not empty and exists (Boş değil ve mevcut)

Verilerinizdeki bazı alanlar boş olabilir. Örneğin order.cancelReason, sipariş iptal edilmemişse null sonucunu döndürür. Bir alan boş olmadığında true, boş olduğunda false sonucunu döndürmek itiyorsanız not empty and exists (boş değil ve mevcut) ifadesini kullanın.

Liste operatörleri

Liste operatörleri, listelerde yer alan verileri kontrol etmek için alan düzeyindeki operatörlerle birleştirilir.

"At least one" örneğinde olduğu gibi, bir siparişin belirli bir etikete (order.lineItems.product.tags altındaki bir liste) sahip olan belirli bir ürünü (order.lineItems içinde bulunur) içerip içermediğini kontrol etmek isteyebilirsiniz. Her iki durumda da, örnekte at least one of liste operatörü kullanılmıştır.

Flow, listelerle çalışmak için 3 operatör sağlar: At least one of (En az biri), None of (Hiçbiri) ve All of (Tümü).

At least one of (En az biri)

Listeleri içeren koşulların çoğu için At least one of kullanılması gerekir. Bu operatör, öğelerden herhangi biri koşulu karşıladığında true sonucunu döndürür. Örneğin, bir siparişin belirli bir etikete sahip olan bir ürünü içerip içermediğini kontrol etmek için At least one of operatörünü kullanırsınız. Liste boş olduğunda veya koşul karşılanmadığında koşul false sonucunu döndürür.

None of (Hiçbir)

Bazı durumlarda, bir listede bir öğenin bulunmaması koşulunun karşılanıp karşılanmadığını kontrol etmek isteyebilirsiniz. Bu koşulu oluşturmanın en iyi yolu, liste operatörünü None of olarak değiştirmektir. Bu operatör, listedeki öğelerden hiçbiri koşulu karşılamadığında true sonucunu döndürür. Önemli bir ayrıntı da operatörün, liste boş olduğunda da true sonucunu döndürmesidir. Örneğin bir ürünün presale etiketine sahip olması koşulunu kontrol etmek için None of product tags is equal to presale ifadesini kullanırsınız.

All of (Tümü)

Sınırlı birkaç durumda, listedeki tüm öğelerin bir koşulla eşleşip eşleşmediğini kontrol etmek isteyebilirsiniz. Örneğin bir siparişteki tüm öğelerin, Acme adlı belirli bir ürün satıcısına sahip olup olmadığını kontrol etmek siteyebilirsiniz. Bunun için All of order line items have a product.vendor equal to Acme ifaesini kullanırsınız.

Koşulları sıralama

Her biri farklı işlemlere neden olabilecek birden fazla koşul içeren iş akışları oluşturabilirsiniz. Koşulların sırası önemlidir. Koşul kontrolü iş akışının başlangıcında başlar ve her koşul üzerinden sistematik olarak ilerler. Bir koşul sağlandığında kontrol durur.

Birden fazla ölçütü tek bir koşulda birleştirme

Bir koşul oluştururken çeşitli ölçütler belirleyebilirsiniz. Bu ayrı ölçütlerin nasıl birleştirileceğini seçebilirsiniz.

Tüm koşullar karşılanırsa

If all conditions are met (Tüm koşullar karşılanırsa) seçeneğini belirlediğinizde, yalnızca belirlediğiniz her ölçüt doğruysa true (doğru) sonucunu alırsınız. Bu, programlamada kullanılan AND ifadesi gibidir.

Örneğin, Kanada'da bulunan ve tek bir siparişte 500 USD'den fazla harcama yapan müşterileri etiketleyecek bir iş akışı oluşturdunuz.

İş akışı, müşteriyi yalnızca Kanada'daysa ve siparişte 500 USD'den fazla harcama yaptıysa etiketler. Bu koşullardan biri yanlışsa müşteri etiketlenmez.

Koşullardan herhangi biri karşılanırsa

If any conditions are met (Koşullardan herhangi biri karşılanırsa) seçeneğini belirlemek, belirlediğiniz ölçütlerden herhangi birinin doğru olması halinde doğru yanıtının döndürülmesiyle sonuçlanır. Bu, programlamada kullanılan OR ifadesi gibidir.

Örneğin, yüksek veya orta düzeyde riskli kabul edilen siparişleri etiketlemek için bir iş akışı oluşturdunuz.

İş akışı, siparişi yüksek veya orta düzeyde riskliyse etiketler. Bu koşullardan biri doğru olduğu sürece sipariş etiketlenir.

Koşulları ve işlemleri birleştirme

Bir büyük koşul yapmak için koşulları birleştirebilirsiniz. Koşullar birleştirildiğinde, koşulun tamamen doğru olması için koşulların tümünün karşılanması gerekir. Herhangi bir koşul karşılanmazsa tüm koşul yanlış olur. Aşağıdaki örnekte müşteri, pazarlama materyallerini kabul etmeli ve siparişin toplam fiyatı belirli bir eşiğe ulaşmış olmalıdır.

Müşterinin toplam harcama tutarını kontrol eden ve etiket ekleyen bir iş akışı örneği

Benzer şekilde, birden fazla eylemin çalıştırılabilmesi için eylemleri birleştirebilirsiniz. Bu örnekte, bir müşterinin, mağazada harcadığı toplam tutara göre bağlılık programına uygun olup olmadığını kontrol etmek için birden fazla koşul kullanılır. Yukarıda verilen örnekte şu koşullar, görüntülendiği sırayla kontorl edilir:

  1. Toplam fiyat 1000 USD değerinden büyükse ve müşteri, pazarlama amaçlı iletişimleri almayı kabul ediyorsa müşteriyi Gold etiket ile etiketleyin.
  2. Toplam fiyat 1000 USD değerinden düşük ancak 500 USD'den yüksekse ve müşteri, pazarlama amaçlı iletişimleri almayı kabul ediyorsa müşteriyi Silver etiket ile etiketleyin.
  3. Müşteri 200 USD'den fazla harcama yapmışsa ve pazarlama amaçlı iletişimleri almayı kabul ediyorsa müşteriyi Bronze etiket ile etiketleyin.

Koşullardaki statik ve dinamik veriler

Genellikle, bir koşuldaki ikinci değer, manuel olarak girilen statik bir değerdir (product.title == "your title" gibi). Bu değer, iş akışı her çalıştığında aynı kalır.

İkinci değerin alanı </> simgesini gösteriyorsa dinamik değerler kullanabilirsiniz. Dinamik değerler, her iş akışı çalıştırmasında mağaza verilerinizden alınır. Dinamik bir değer kullanmak için </> simgesine tıklayın ve kontrol etmek istediğiniz değeri seçin. Dinamik değerler tüm alanlarda kullanılamaz.

Örneğin, siparişin fatura adresindeki ülke, kargo adresindeki ülkeyle eşleştiğinde siparişi etiketleyen bir iş akışı oluşturdunuz.

Müşterinin fatura ve kargo ülkelerinin aynı olup olmadığını kontrol etmek için RHS verilerini kullanarak siparişi etiketleyen bir iş akışı örneği.

Bu örnekte, ikinci değer için kontrol edilecek statik bir dizeyi manuel olarak belirtmek yerine, hem birinci hem de ikinci değerler mağazanızın verilerinden alınır. Müşteri tarafından sağlanan fatura adresindeki ülke, müşterinin kargo adresinde belirttiği ülkeyle aynıysa koşul doğrudur ve sipariş etiketlenir.

Bazen yanlış türe sahip dinamik verileri kullanmanız gerekebilir. Örneğin, dize olarak depolanan bir sayıyı başka bir sayıyla karşılaştırmanız gerekebilir. Bu durumda, verileri doğru türe dönüştürmek için Run code (Kodu çalıştır) seçeneğini kullanabilirsiniz.

Shopify ile satış yapmaya hazır mısınız?

Ücretsiz olarak dene