Kondisi di Shopify Flow
Kondisi akan melanjutkan alur kerja jika aturan tertentu terpenuhi, seperti awal dari pernyataan jika-maka. Saat Anda menetapkan kondisi, Anda memilih kriteria dari kolom di GraphQL Admin API (seperti product.title), operator logis (seperti sama dengan), dan nilai untuk diperiksa (seperti Blue jeans). Saat alur kerja mengevaluasi suatu kondisi, Flow akan memeriksa nilai yang ditentukan dalam alur kerja terhadap nilai yang ditampilkan untuk toko Anda, lalu menampilkan hasilnya dalam jalannya alur kerja. Untuk lebih memahami kolom dan nilai yang tersedia untuk menentukan kondisi, pelajari cara melihat pratinjau data toko.
Pelajari selengkapnya tentang memahami dasar-dasar kondisi.
Di halaman ini
Tipe data yang digunakan dengan Flow
Saat Anda menetapkan kondisi, Anda memilih kriteria dari kolom yang tersedia di Admin API dan Flow akan mengevaluasinya terhadap nilai yang dikembalikan untuk toko Anda.
Flow mendukung jenis data berikut:
- Float: Nilai float adalah angka dengan jumlah desimal. Misalnya, 4,25.
- Integer: Nilai integer adalah bilangan bulat yang tidak memiliki jumlah desimal. Misalnya, 42.
- Tanggal: Nilai tanggal adalah representasi numerik dari tanggal. Misalnya, 01012021.
- String: Nilai string adalah teks. Perbandingan yang menggunakan nilai string tidak peka huruf besar/kecil.
- Boolean: Nilai boolean adalah benar atau salah.
- Enum: Nilai enum adalah set data yang memungkinkan variabel menjadi set konstanta yang telah ditentukan sebelumnya.
Operator logis
Operator logis menentukan cara kondisi Anda diterapkan. Kondisi dapat memeriksa properti sederhana seperti apakah total pesanan di atas jumlah tertentu, atau apakah pelanggan menyetujui pemasaran. Operator logis juga dapat memeriksa properti yang lebih kompleks.
Operator bisa berupa operator tingkat kolom, seperti sama dengan atau tidak sama dengan, atau operator daftar, seperti setidaknya salah satu dari atau tidak satu pun dari.
Operator tingkat kolom
Operator tingkat kolom digunakan untuk membandingkan 2 nilai. Flow dapat menggunakan operator berikut:
| Operator | Deskripsi | Contoh |
|---|---|---|
| Sama dengan | Membandingkan nilai untuk memeriksa apakah keduanya sama. |
Nilai untuk order.currentTotalDiscountsSet.shopMoney.amount diambil dari data toko Anda dan dibandingkan dengan nilai kedua, 50.Jika total diskon pesanan sama persis dengan 50, maka kondisinya benar. |
| Tidak sama dengan | Membandingkan nilai untuk memeriksa apakah keduanya tidak sama. |
Nilai untuk order.currentTotalDiscountsSet.shopMoney.amount diambil dari data toko Anda dan dibandingkan dengan nilai kedua, 50.Jika total diskon pesanan tidak sama persis dengan 50, maka kondisinya benar. |
| Lebih besar dari dan Lebih besar dari atau sama dengan | Membandingkan nilai untuk memeriksa apakah nilai pertama lebih besar dari, atau lebih besar dari atau sama dengan, nilai kedua. |
Nilai untuk order.currentTotalDiscountsSet.shopMoney.amount diambil dari data toko Anda dan dibandingkan dengan nilai kedua, 50.Jika nilai total diskon pesanan adalah 137, maka kondisinya benar, karena 137 lebih besar dari 50. |
| Kurang dari dan Kurang dari atau sama dengan | Membandingkan nilai untuk memeriksa apakah nilai pertama kurang dari, atau kurang dari atau sama dengan, nilai kedua. |
Nilai untuk order.currentTotalDiscountsSet.shopMoney.amount diambil dari data toko Anda dan dibandingkan dengan nilai kedua, 50.Jika total diskon pesanan adalah 47, maka kondisinya benar, karena 47 kurang dari atau sama dengan 50. |
| Setidaknya salah satu dari | Memeriksa apakah kolom tersebut sama dengan nilai apa pun dalam daftar yang disediakan. Nilai harus dimasukkan satu per satu dan diikuti dengan menekan tombol enter (mirip dengan tag). Penggunaan pada array kosong akan menghasilkan evaluasi yang salah. |
Nilai untuk order.lineitem.product.title dibandingkan dengan: pineapple, guava, kiwi.Jika judul produk item pesanan adalah guava, maka kondisinya benar, karena "guava" disertakan dalam daftar yang Anda berikan. |
| Tidak satu pun dari | Memeriksa apakah kolom tersebut tidak sama dengan nilai apa pun dalam daftar yang disediakan. |
Nilai untuk order.lineitem.product.title dibandingkan dengan: pineapple, guava, kiwi.Jika judul produk item pesanan adalah raspberry, maka kondisinya benar, karena "raspberry" tidak disertakan dalam daftar yang Anda berikan. |
| Mencakup | Membandingkan nilai untuk memeriksa apakah input nilai pertama mencakup data dalam input nilai kedua. |
Nilai untuk order.lineitem.product.title dibandingkan dengan: berry.Jika judul produk item pesanan adalah strawberry, maka kondisinya benar, karena "berry" termasuk dalam "strawberry". |
| Tidak mencakup | Membandingkan nilai untuk memeriksa apakah input nilai pertama tidak mencakup data dalam input nilai kedua. |
Nilai untuk order.lineitem.product.title dibandingkan dengan: berry.Jika judul produk item pesanan adalah apple, maka kondisinya benar karena "berry" tidak disertakan dalam "apple". |
| Diawali dengan | Membandingkan nilai untuk memeriksa apakah nilai pertama diawali dengan data di nilai kedua. |
Nilai untuk order.shippingAddress.country dibandingkan dengan: United.Jika negara untuk alamat pengiriman pesanan adalah United Kingdom, maka kondisinya benar karena "United Kingdom" dimulai dengan "United". |
| Tidak diawali dengan | Membandingkan nilai untuk memeriksa apakah nilai pertama tidak diawali dengan data di nilai kedua. |
Nilai untuk order.shippingAddress.country dibandingkan dengan: United.Jika negara untuk alamat pengiriman pesanan adalah Canada, maka kondisinya benar karena "United Kingdom" tidak dimulai dengan "Canada". |
| Diakhiri dengan | Membandingkan nilai untuk memeriksa apakah nilai pertama diakhiri dengan data di nilai kedua. |
Nilai untuk order.lineitems.product.title dibandingkan dengan: pie.Jika judul produk item pesanan adalah key lime pie, maka kondisinya benar karena "key lime pie" diakhiri dengan "pie". |
| Tidak diakhiri dengan | Membandingkan nilai untuk memeriksa apakah nilai pertama tidak diakhiri dengan data di nilai kedua. |
Nilai untuk order.lineitems.product.title dibandingkan dengan: pie.Jika judul produk item pesanan adalah chocolate cake, maka kondisinya benar karena "chocolate cake" tidak diakhiri dengan "pie". |
Operator null atau kosong
| Operator | Deskripsi | Kondisi Benar/Salah |
|---|---|---|
| Kosong atau tidak ada | Memeriksa apakah suatu kolom kosong (tidak memiliki nilai) atau tidak ada (adalah null). |
Menghasilkan benar saat kolom kosong atau null, dan salah jika kolom ada.
|
| Tidak kosong dan ada | Memeriksa apakah kolom ada dan tidak kosong atau null. | Menghasilkan benar saat kolom tidak kosong dan ada, salah saat kolom kosong. |
Operator daftar
Operator daftar digabungkan dengan operator tingkat kolom agar Anda dapat memeriksa kondisi pada data yang terdapat dalam daftar.
Seperti dalam contoh "setidaknya salah satu", Anda mungkin ingin memeriksa apakah suatu pesanan berisi produk tertentu (terletak di order.lineItems) dengan tag tertentu (daftar di bawah order.lineItems.product.tags). Dalam kedua kasus, contoh tersebut menggunakan operator daftar setidaknya salah satu dari.
Flow menyediakan 3 operator untuk bekerja dengan daftar: Setidaknya salah satu dari, Tidak satu pun dari, dan Semua dari.
| Operator | Deskripsi | Contoh penggunaan |
|---|---|---|
| Setidaknya salah satu dari | Memeriksa apakah ada item dalam daftar yang sesuai dengan kondisi yang ditentukan. Menghasilkan true jika ada item dalam daftar yang cocok. Jika daftar kosong atau tidak ada item yang cocok, maka menghasilkan false. | Periksa apakah pesanan berisi produk dengan tag tertentu menggunakan At least one of order line items.product.tags is equal to tagname. |
| Tidak satu pun dari | Memeriksa bahwa tidak ada item dalam daftar yang sesuai dengan kondisi yang ditentukan. Menghasilkan true jika tidak ada item yang sesuai dengan kondisi. Jika daftar kosong, maka menghasilkan true. | Periksa apakah produk tidak memiliki tag presale dengan menggunakan None of product tags is equal to presale.Kesalahan yang umum terjadi adalah mencoba meniadakan operator dengan menggunakan is not equal to. Penggunaan bentuk negatif ganda ini, None of product tags is not equal to presale, membuat kondisi ini sulit dipahami dan tidak valid.
|
| Semua dari | Memeriksa bahwa semua item dalam daftar sesuai dengan kondisi yang ditentukan. Menghasilkan true jika setiap item dalam daftar sesuai dengan kondisi. | Periksa apakah semua item dalam pesanan memiliki vendor produk tertentu bernama Acme menggunakan All of order line items have a product.vendor equal to Acme. |
Mengurutkan kondisi
Anda dapat membuat alur kerja yang memiliki beberapa kondisi, yang masing-masing dapat menghasilkan tindakan yang berbeda. Urutan kondisi itu penting. Pemeriksaan kondisi dimulai dari awal alur kerja dan berlanjut secara sistematis melalui setiap kondisi. Pemeriksaan berhenti ketika suatu kondisi terpenuhi.
Contoh ini menggunakan beberapa kondisi untuk memeriksa apakah pelanggan memenuhi syarat untuk program loyalitas berdasarkan jumlah total yang telah mereka belanjakan di toko. Kondisi diperiksa sesuai urutan ditampilkannya:
- Jika harga total lebih besar dari $1.000 dan pelanggan setuju untuk menerima materi pemasaran, maka beri mereka tag
Gold. - Jika harga total kurang dari $1.000 tetapi lebih dari $500 dan pelanggan setuju untuk menerima materi pemasaran, maka beri mereka tag
Silver. - Jika harga total kurang dari $500 tetapi lebih dari $200 dan pelanggan setuju untuk menerima materi pemasaran, maka beri mereka tag
Bronze.

Menggabungkan beberapa kriteria dalam satu kondisi
Saat membuat kondisi, Anda dapat menetapkan beberapa kriteria. Anda dapat memilih bagaimana kriteria terpisah ini harus digabungkan untuk menentukan apakah kondisi keseluruhan benar atau salah.
Jika semua kriteria terpenuhi
Memilih DAN akan menghasilkan respons benar hanya jika setiap kriteria yang Anda tetapkan benar.
Misalnya, Anda membuat alur kerja untuk memberi tag kepada pelanggan yang berlokasi di Kanada dan membelanjakan lebih dari $500 untuk satu pesanan.

Alur kerja menandai pelanggan hanya jika pelanggan berlokasi di Kanada dan membelanjakan lebih dari $500 dalam pesanan. Jika salah satu dari kondisi ini salah, maka pelanggan tidak diberi tag.
Jika salah satu kriteria terpenuhi
Memilih OR menghasilkan respons benar jika salah satu kriteria yang Anda tetapkan bernilai benar.
Misalnya, Anda membuat alur kerja untuk menandai pesanan dengan rekomendasi risiko Batalkan atau Selidiki. Selama salah satu dari kondisi tersebut benar, pesanan akan diberi tag.

Data statis dan dinamis dalam kondisi
Biasanya, nilai kedua dalam suatu kondisi adalah nilai statis yang dimasukkan secara manual (seperti product.title == "judul Anda"). Nilai ini tetap sama setiap kali alur kerja dieksekusi.
Anda juga dapat menggunakan nilai dinamis jika kolom untuk nilai kedua menampilkan ikon . Nilai dinamis diambil dari data toko Anda setiap kali alur kerja dieksekusi. Untuk menggunakan nilai dinamis, klik ikon
, lalu pilih nilai yang ingin Anda periksa. Nilai dinamis tidak tersedia untuk semua kolom.
Misalnya, Anda membuat alur kerja yang menandai pesanan jika negara di alamat penagihan pesanan cocok dengan negara di alamat pengirimannya.

Dalam contoh ini, nilai pertama dan kedua diambil dari data toko Anda, bukan menentukan string statis secara manual untuk diperiksa sebagai nilai kedua. Jika negara di alamat penagihan yang diberikan oleh pelanggan sama dengan negara yang diberikan pelanggan di alamat pengiriman, maka kondisinya benar dan pesanan diberi tag.
Terkadang Anda mungkin perlu menggunakan data dinamis dengan jenis yang salah. Misalnya, Anda mungkin perlu membandingkan angka yang disimpan sebagai string dengan angka lain. Dalam hal ini, Anda dapat menggunakan opsi Jalankan kode untuk mengonversi data ke jenis yang benar.
Templat
Sebagian besar templat di pustaka templat berisi kondisi.
Contoh kondisi
Memeriksa apakah setidaknya satu item dalam daftar cocok dengan kondisi
Contoh ini menampilkan kondisi umum yang memeriksa apakah setidaknya satu item dalam daftar cocok dengan nilai tertentu.
Dalam kasus ini, kondisi memeriksa apakah salah satu produk dalam pesanan memiliki tag presale. Untuk membuat kondisi ini, Anda akan memilih order / lineItems / product / tags. Secara default, Flow memilih setidaknya salah satu dari sebagai operator logis:

Bagian setidaknya salah satu dari adalah operator daftar dan digunakan untuk menangani pencocokan di beberapa item daftar. Bagian sama dengan adalah operator tingkat kolom yang menentukan apakah satu item daftar cocok.
Memeriksa apakah tidak ada item dalam daftar yang cocok dengan kondisi
Contoh ini menampilkan kondisi umum yang memeriksa apakah tidak ada item dalam daftar yang cocok dengan nilai tertentu. Satu masalah umum yang perlu dipertimbangkan adalah daftar dapat kosong. Saat daftar kosong, kondisi akan ditangani oleh operator daftar (dalam hal ini tidak satu pun dari).
Dalam kasus ini, kondisi memeriksa apakah tidak ada tag produk yang sama dengan foo:

Kondisi akan mengembalikan true jika (1) tidak ada tag produk atau (2) tidak ada tag yang berupa foo. Jika tidak, kondisi akan mengembalikan false.
Memeriksa apakah suatu item dalam daftar cocok dengan beberapa kriteria
Contoh ini menampilkan kondisi umum yang memeriksa apakah setidaknya satu item dalam daftar cocok dengan dua kriteria terpisah.
Dalam kasus ini, kondisi memeriksa apakah salah satu produk dalam pesanan memiliki tag presale dan apakah produk tersebut memiliki productType pakaian.

Untuk membuat kondisi ini, Anda harus:
- Pilih order / lineItems / product / tags untuk kriteria pertama.
- Pilih Tambahkan kriteria untuk item yang sama pada daftar lineItems. Catatan: Memilih item daftar yang salah di sini adalah kesalahan umum.
- Pilih lineItems_item sebagai objek tingkat atas, lalu product / productType` untuk kriteria kedua. Catatan: Memilih objek yang salah di sini juga merupakan kesalahan umum.
- Pilih AND untuk menggabungkan kedua kriteria.
- Masukkan nilai
presaledanpakaianuntuk kedua kriteria.