Shopify Flow'daki Koşullar
Koşullar, "eğer-o zaman" ifadesinin başlangıcı gibi belirli kurallar karşılandığında bir iş akışını devam ettirir. Bir koşul ayarladığınızda GraphQL Admin API alanlarından (product.title gibi) ölçütler, bir mantıksal operatör (eşittir gibi) ve karşılaştırma yapılacak bir değer (Mavi kot pantolon gibi) seçersiniz. Bir iş akışı bir koşulu değerlendirdiğinde Flow, iş akışında tanımlanan değeri mağazanız için döndürülen değerle karşılaştırır ve ardından sonuçları iş akışı çalıştırmasında görüntüler. Koşulları tanımlamak için kullanılabilecek alanları ve değerleri daha iyi anlamak için mağaza verilerini önizleme hakkında bilgi edinin.
Koşulların temellerini anlama hakkında daha fazla bilgi edinin.
Bu sayfada
Flow ile kullanılan veri türleri
Bir koşul ayarladığınızda, Admin API'de bulunan alanlardan bir ölçüt seçersiniz ve Flow, mağazanız için döndürülen değere göre değerlendirme yapar.
Flow aşağıdaki veri türlerini destekler:
- Float: Float değerleri, ondalık kısmı olan sayılardır. Örneğin, 4,25.
- Integer: Tamsayı değerleri, ondalık kısmı olmayan tam sayılardır. Örneğin, 42.
- Date: Tarih değerleri, tarihin sayısal temsilidir. Örneğin, 01012021.
- String: Dize değerleri metindir. Dize değerleri kullanan karşılaştırmalar büyük/küçük harfe duyarlı değildir.
- Boolean: Boolean değerleri doğru veya yanlıştır.
- Enum: Enum değerleri, bir değişkenin önceden tanımlanmış bir sabitler kümesi olmasına olanak tanıyan veri kümeleridir.
Mantıksal operatörler
Mantıksal operatörler koşulunuzun nasıl uygulanacağını tanımlar. Koşullar, bir siparişin toplamının belirli bir tutarın üzerinde olup olmadığı veya bir müşterinin pazarlamayı kabul edip etmediği gibi basit özellikleri kontrol edebilir. Mantıksal operatörler daha karmaşık özellikleri de kontrol edebilir.
Operatörler, eşittir veya eşit değildir gibi alan düzeyinde operatörler ya da en az biri veya hiçbiri gibi liste operatörleri olabilir.
Alan düzeyinde operatörler
Alan düzeyinde operatörler 2 değeri karşılaştırmak için kullanılır. Flow aşağıdaki operatörleri kullanabilir:
| Operatör | Açıklama | Örnek |
|---|---|---|
| Eşittir | Değerlerin aynı olup olmadığını kontrol etmek için karşılaştırma yapar. |
order.currentTotalDiscountsSet.shopMoney.amount değeri, mağaza verilerinizden alınır ve ikinci değer olan 50 ile karşılaştırılır.Siparişin toplam indirimleri tam olarak 50'ye eşitse koşul doğrudur. |
| Eşit değildir | Değerlerin aynı olmadığını kontrol etmek için karşılaştırma yapar. |
order.currentTotalDiscountsSet.shopMoney.amount değeri, mağaza verilerinizden alınır ve ikinci değer olan 50 ile karşılaştırılır.Siparişin toplam indirimleri tam olarak 50'ye eşit değilse koşul doğrudur. |
| Büyüktür ve Büyük veya eşittir | İlk değerin ikinci değerden büyük veya büyük ya da eşit olup olmadığını kontrol etmek için değerleri karşılaştırır. |
order.currentTotalDiscountsSet.shopMoney.amount değeri, mağaza verilerinizden alınır ve ikinci değer olan 50 ile karşılaştırılır.Siparişin toplam indirimleri 137 ise 137 değeri 50'den büyük olduğu için koşul doğrudur. |
| Küçüktür ve Küçük veya eşittir | İlk değerin ikinci değerden küçük veya küçük ya da eşit olup olmadığını kontrol etmek için değerleri karşılaştırır. |
order.currentTotalDiscountsSet.shopMoney.amount değeri, mağaza verilerinizden alınır ve ikinci değer olan 50 ile karşılaştırılır.Siparişin toplam indirimleri 47 ise 47 değeri 50'den küçük veya ona eşit olduğu için koşul doğrudur. |
| En az biri | Alanın, sağlanan listedeki herhangi bir değere eşit olup olmadığını kontrol eder. Değerler tek tek girilmeli ve ardından (etiketlerde olduğu gibi) enter tuşuna basılmalıdır. Boş bir dizide kullanılması, yanlış değerlendirmeyle sonuçlanır. |
order.lineitem.product.title değeri şu değerlerle karşılaştırılır: pineapple, guava, kiwi.Satır öğesi ürün başlığı guava ise sağladığınız listede "guava" yer aldığı için koşul doğrudur. |
| Hiçbiri | Alanın, sağlanan listedeki değerlerden hiçbirine eşit olmadığını kontrol eder. |
order.lineitem.product.title değeri şu değerlerle karşılaştırılır: pineapple, guava, kiwi.Satır öğesi ürün başlığı raspberry ise sağladığınız listede "raspberry" yer almadığı için koşul doğrudur. |
| İçerir | İlk değerin, ikinci değeri içerip içermediğini kontrol eder. |
order.lineitem.product.title değeri şu değerle karşılaştırılır: berry.Satır öğesi ürün başlığı strawberry ise "strawberry" kelimesinde "berry" yer aldığı için koşul doğrudur. |
| İçermez | İlk değerin, ikinci değeri içerip içermediğini kontrol eder. |
order.lineitem.product.title değeri berry ile karşılaştırılır.Satır öğesi ürün başlığı apple ise, "berry" "apple" içinde yer almadığı için koşul doğru olur. |
| Şununla başlar | İlk değerin, ikinci değerdeki verilerle başlayıp başlamadığını kontrol etmek için değerleri karşılaştırır. |
order.shippingAddress.country değeri United ile karşılaştırılır.Siparişin kargo adresindeki ülke United Kingdom ise, "United Kingdom" "United" ile başladığı için koşul doğru olur. |
| Şununla başlamaz | İlk değerin, ikinci değerdeki verilerle başlamadığını kontrol etmek için değerleri karşılaştırır. |
order.shippingAddress.country değeri United ile karşılaştırılır.Siparişin kargo adresindeki ülke Canada ise, "United Kingdom" "Canada" ile başlamadığı için koşul doğru olur. |
| Şununla biter | İlk değerin, ikinci değerdeki verilerle bitip bitmediğini kontrol etmek için değerleri karşılaştırır. |
order.lineitems.product.title değeri pie ile karşılaştırılır.Satır öğesi ürün başlığı key lime pie ise, "key lime pie" "pie" ile bittiği için koşul doğru olur. |
| Şununla bitmez | İlk değerin, ikinci değerdeki verilerle bitmediğini kontrol etmek için değerleri karşılaştırır. |
order.lineitems.product.title değeri pie ile karşılaştırılır.Satır öğesi ürün başlığı chocolate cake ise, "chocolate cake" "pie" ile bitmediği için koşul doğru olur. |
Boş veya null operatörleri
| Operatör | Açıklama | Doğru/Yanlış Durumu |
|---|---|---|
| Boş veya mevcut değil | Bir alanın boş (değeri yoksa) veya mevcut olmadığını (null ise) kontrol eder. |
Alan boş veya null olduğunda true, mevcutsa false değerini döndürür.
|
| Boş değil ve mevcut | Bir alanın mevcut olup boş veya null olmadığını kontrol eder. | Alan boş olmadığında ve mevcut olduğunda true, boş olduğunda false değerini döndürür. |
Liste operatörleri
Liste operatörleri, alan düzeyindeki operatörlerle birleştirilerek listelerde yer alan verilerle ilgili koşulları kontrol etmenize olanak tanır.
"En az biri" ö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 yer alır) içerip içermediğini kontrol etmek isteyebilirsiniz. Her iki durumda da örnekte en az biri liste operatörü kullanılır.
Shopify Flow, listelerle çalışmak için 3 operatör sunar: En az biri, Hiçbiri ve Tümü.
| Operatör | Açıklama | Örnek kullanım |
|---|---|---|
| En az biri | Listedeki herhangi bir öğenin belirtilen koşulla eşleşip eşleşmediğini kontrol eder. Listedeki herhangi bir öğe eşleşirse true değerini döndürür. Liste boşsa veya hiçbir öğe eşleşmiyorsa false değerini döndürür. | At least one of order line items.product.tags is equal to tagname koşulunu kullanarak bir siparişin belirli bir etikete sahip bir ürün içerip içermediğini kontrol edin. |
| Hiçbiri | Listedeki hiçbir öğenin belirtilen koşulla eşleşmediğini kontrol eder. Hiçbir öğe koşulla eşleşmiyorsa true değerini döndürür. Liste boşsa true değerini döndürür. | None of product tags is equal to presale koşulunu kullanarak bir üründe presale etiketinin bulunmadığını kontrol edin.Yaygın bir hata, is not equal to (eşit değildir) seçeneğini kullanarak operatörü olumsuz yapmaya çalışmaktır. Bu çift olumsuzluğun, yani None of product tags is not equal to presale ifadesinin kullanılması koşulun hem anlaşılmasını zorlaştırır hem de geçersiz kılar.
|
| Tümü | Listedeki tüm öğelerin belirtilen koşulla eşleştiğini kontrol eder. Listedeki her bir öğe koşulla eşleşirse true değerini döndürür. | All of order line items have a product.vendor equal to Acme koşulunu kullanarak bir siparişteki tüm satır öğelerinin ürün satıcısının Acme olup olmadığını kontrol edin. |
Koşulları sıralama
Her biri farklı eylemlerle sonuçlanabilecek, birden çok koşulu olan iş akışları oluşturabilirsiniz. Koşulların sırası önemlidir. Koşul kontrolü, iş akışının başında başlar ve her bir koşul üzerinden sistematik olarak ilerler. Bir koşul karşılandığında kontrol durur.
Bu örnekte, bir müşterinin mağazada harcadığı toplam tutara göre bir bağlılık programına uygun olup olmadığını kontrol etmek için birden fazla koşul kullanılır. Koşullar, görüntülendikleri sırayla kontrol edilir:
- Toplam fiyat 1.000 $'dan fazlaysa ve müşteri pazarlama bildirimlerini almayı kabul ederse müşteriyi
Goldetiketiyle etiketleyin. - Toplam fiyat 1.000 $'dan az ancak 500 $'dan fazlaysa ve müşteri pazarlama bildirimlerini almayı kabul ederse müşteriyi
Silveretiketiyle etiketleyin. - Toplam fiyat 500 $'dan az ancak 200 $'dan fazlaysa ve müşteri pazarlama bildirimlerini almayı kabul ederse müşteriyi
Bronzeetiketiyle etiketleyin.

Tek bir koşulda birden çok ölçütü birleştirme
Bir koşul oluştururken birkaç ölçüt belirleyebilirsiniz. Genel koşulun doğru mu yoksa yanlış mı olduğunu belirlemek için bu ayrı ölçütlerin nasıl birleştirileceğini seçebilirsiniz.
Tüm ölçütler karşılanırsa
VE seçeneğini belirlediğinizde, yalnızca ayarladığınız tüm ölçütler doğruysa koşul "doğru" olarak sonuçlanır.
Örneğin, Kanada'da bulunan ve tek bir siparişte 500 $'dan fazla harcama yapan müşterileri etiketlemek için bir iş akışı oluşturabilirsiniz.

İş akışı, müşteriyi yalnızca Kanada'da bulunması ve siparişte 500 $'dan fazla harcama yapması durumunda etiketler. Bu koşullardan herhangi biri karşılanmazsa müşteri etiketlenmez.
Herhangi bir ölçüt karşılanırsa
Ayarladığınız ölçütlerden herhangi birinin doğru olması durumunda VEYA seçeneğini seçmek "doğru" sonucu verir.
Örneğin, risk değerlendirme önerisi İptal veya İnceleme olan siparişleri etiketlemek için bir iş akışı oluşturursunuz. Bu koşullardan biri karşılandığı sürece sipariş etiketlenir.

Koşullardaki statik ve dinamik veriler
Genellikle bir koşuldaki ikinci değer, statik ve manuel olarak girilen bir değerdir (product.title == "your title" gibi). Bu değer, iş akışı her çalıştığında aynı kalır.
İkinci değere ilişkin alanda simgesi görüntüleniyorsa dinamik değerler de kullanabilirsiniz. Dinamik değerler, iş akışı her çalıştığında mağaza verilerinizden alınır. Dinamik bir değer kullanmak için
simgesine tıklayın ve karşılaştırma yapmak istediğiniz değeri seçin. Dinamik değerler tüm alanlarda kullanılamaz.
Örneğin, bir siparişin fatura adresindeki ülke ile kargo adresindeki ülke eşleşiyorsa bu siparişi etiketleyen bir iş akışı oluşturursunuz.

Bu örnekte, ikinci değer için karşılaştırma amacıyla manuel olarak statik bir dize 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 sağladığı ülkeyle aynıysa koşul doğru olur ve sipariş etiketlenir.
Bazen yanlış türde dinamik veriler 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 Kod çalıştır seçeneğini kullanabilirsiniz.
Şablonlar
Şablon kitaplığındaki çoğu şablon bir koşul içerir.
Örnek koşullar
Listedeki en az bir ürünün bir koşulla eşleşip eşleşmediğini kontrol etme
Bu örnek, bir listedeki en az bir ürünün belirli bir değerle eşleşip eşleşmediğini kontrol eden tipik bir koşulu gösterir.
Bu durumda koşul, siparişteki ürünlerden birinin presale etiketine sahip olup olmadığını kontrol eder. Bu koşulu oluşturmak için order / lineItems / product / tags yolunu seçersiniz. Varsayılan olarak Flow, mantıksal operatör olarak en az biri seçeneğini belirler:

En az biri bölümleri liste operatörleridir ve birden fazla liste öğesindeki eşleşmeleri işlemek için kullanılır. Eşittir bölümü, tek bir liste öğesinin eşleşip eşleşmediğini belirleyen bir alan düzeyinde operatördür.
Listedeki hiçbir ürünün bir koşulla eşleşmediğini kontrol etme
Bu örnek, listedeki hiçbir ürünün belirli bir değerle eşleşmediğini kontrol eden tipik bir koşulu gösterir. Göz önünde bulundurulması gereken yaygın bir sorun, listelerin boş olabilmesidir. Liste boş olduğunda, koşul liste operatörü (bu durumda hiçbiri) tarafından işlenir.
Bu durumda koşul, ürün etiketlerinden hiçbirinin foo'ya eşit olup olmadığını kontrol eder:

Koşul, (1) hiç ürün etiketi yoksa veya (2) etiketlerden hiçbiri foo değilse true değerini döndürür. Aksi takdirde false değerini döndürür.
Listedeki bir ürünün birden çok ölçütle eşleşip eşleşmediğini kontrol etme
Bu örnek, bir listedeki en az bir ürünün iki ayrı ölçütle eşleşip eşleşmediğini kontrol eden tipik bir koşulu gösterir.
Bu durumda koşul, siparişteki ürünlerden birinin presale etiketine sahip olup olmadığını ve productType değerinin clothing olup olmadığını kontrol eder.

Bu koşulu oluşturmak için şunları yapmalısınız:
- Birinci ölçüt için order / lineItems / product / tags yolunu seçin.
- lineItems listesinde Aynı ürün için ölçüt ekle'yi seçin. Not: Burada yanlış liste öğesini seçmek, sık yapılan bir hatadır.
- Üst düzey nesne olarak lineItems_item'ı ve ardından ikinci ölçüt için product / productType` yolunu seçin. Not: Burada yanlış nesneyi seçmek de sık yapılan bir hatadır.
- İki ölçütü birleştirmek için VE'yi seçin.
- İki ölçüt için
presaleveclothingdeğerlerini girin.