Syarat dalam Shopify Flow
Syarat meneruskan aliran kerja apabila peraturan tertentu dipenuhi, seperti permulaan penyataan jika-maka. Apabila anda menetapkan syarat, anda memilih kriteria daripada medan dalam GraphQL Admin API (seperti product.title), operator logik (seperti equal to), dan nilai yang hendak dibandingkan (seperti Blue jeans). Apabila aliran kerja menilai syarat, Flow menyemak nilai yang ditakrifkan dalam aliran kerja tersebut dengan nilai yang dikembalikan bagi kedai anda, kemudian memaparkan hasil dalam larian aliran kerja. Bagi memahami dengan lebih baik tentang medan dan nilai yang tersedia bagi menakrifkan syarat, pelajari cara untuk pratonton data kedai.
Ketahui lebih lanjut tentang memahami asas syarat.
Pada halaman ini
Jenis data yang digunakan dengan Flow
Apabila anda menetapkan syarat, anda memilih kriteria daripada medan yang tersedia dalam Admin API dan Flow membuat penilaian terhadap nilai yang dikembalikan bagi kedai anda.
Flow menyokong jenis data yang berikut:
- Apungan: Nilai apungan ialah nombor dengan jumlah perpuluhan. Sebagai contoh, 4.25.
- Integer: Nilai integer ialah nombor bulat yang tidak mempunyai jumlah perpuluhan. Sebagai contoh, 42.
- Tarikh: Nilai tarikh merupakan perwakilan berangka bagi tarikh. Sebagai contoh, 01012021.
- Rentetan: Nilai rentetan ialah teks. Perbandingan menggunakan nilai rentetan tidak membezakan huruf besar dan kecil.
- Boolean: Nilai boolean adalah sama ada benar atau palsu.
- Enum: Nilai enum ialah set data yang membolehkan pemboleh ubah menjadi set pemalar prapengtakrifan.
Operator logik
Operator logik mentakrifkan cara syarat anda digunakan. Syarat boleh menyemak sifat ringkas seperti sama ada jumlah pesanan adalah melebihi amaun tertentu, atau sama ada pelanggan menerima pemasaran. Operator logik juga boleh menyemak sifat yang lebih kompleks.
Operator boleh menjadi sama ada operator tahap medan, seperti sama dengan atau tidak sama dengan, atau operator senarai, seperti sekurang-kurangnya satu daripada atau tiada satu pun daripada.
Operator tahap medan
Operator tahap medan digunakan untuk membandingkan 2 nilai. Flow boleh menggunakan operator yang berikut:
| Operator | Perihalan | Contoh |
|---|---|---|
| Sama dengan | Membandingkan nilai bagi menyemak sama ada nilai tersebut sama. |
Nilai untuk order.currentTotalDiscountsSet.shopMoney.amount didapatkan semula daripada data kedai anda dan dibandingkan dengan nilai kedua, 50.Jika jumlah diskaun pesanan betul-betul sama dengan 50, maka syarat adalah benar. |
| Tidak sama dengan | Membandingkan nilai bagi menyemak sama ada nilai tersebut tidak sama. |
Nilai untuk order.currentTotalDiscountsSet.shopMoney.amount didapatkan semula daripada data kedai anda dan dibandingkan dengan nilai kedua, 50.Jika jumlah diskaun pesanan tidak betul-betul sama dengan 50, maka syarat adalah benar. |
| Lebih besar daripada dan Lebih besar daripada atau sama dengan | Membandingkan nilai bagi menyemak sama ada nilai pertama adalah lebih besar daripada, atau lebih besar daripada atau sama dengan, nilai kedua. |
Nilai untuk order.currentTotalDiscountsSet.shopMoney.amount didapatkan semula daripada data kedai anda dan dibandingkan dengan nilai kedua, 50.Jika nilai jumlah diskaun pesanan ialah 137, maka syarat adalah benar, kerana 137 lebih besar daripada 50. |
| Kurang daripada dan Kurang daripada atau sama dengan | Membandingkan nilai untuk menyemak sama ada nilai pertama kurang daripada, atau kurang daripada atau sama dengan nilai kedua. |
Nilai untuk order.currentTotalDiscountsSet.shopMoney.amount didapatkan semula daripada data kedai anda dan dibandingkan dengan nilai kedua, 50.Jika jumlah diskaun pesanan ialah 47, maka syarat adalah benar, kerana 47 kurang daripada atau sama dengan 50. |
| Sekurang-kurangnya salah satu daripada | Menyemak sama ada medan sama dengan mana-mana nilai dalam senarai yang diberikan. Nilai tersebut mesti dimasukkan secara individu dan diikuti oleh kekunci enter (serupa dengan tag). Penggunaannya pada tatasusunan kosong menyebabkan penilaian palsu. |
Nilai untuk order.lineitem.product.title dibandingkan dengan: pineapple, guava, kiwi.Jika tajuk produk item baris ialah guava, maka syarat adalah benar, kerana "guava" disertakan dalam senarai yang anda berikan. |
| Bukan mana-mana daripada | Menyemak sama ada medan tidak sama dengan mana-mana nilai dalam senarai yang diberikan. |
Nilai untuk order.lineitem.product.title dibandingkan dengan: pineapple, guava, kiwi.Jika tajuk produk item baris ialah raspberry, maka syarat adalah benar, kerana "raspberry" tidak disertakan dalam senarai yang anda berikan. |
| Termasuk | Membandingkan nilai untuk menyemak sama ada sebarang input nilai pertama termasuk data dalam input nilai kedua. |
Nilai untuk order.lineitem.product.title dibandingkan dengan: berry.Jika tajuk produk item baris ialah strawberry, maka syarat adalah benar, kerana "berry" disertakan dalam "strawberry". |
| Tidak termasuk | Membandingkan nilai untuk menyemak sama ada sebarang input nilai pertama tidak termasuk data dalam input nilai kedua. |
Nilai untuk order.lineitem.product.title dibandingkan dengan: berry.Jika tajuk produk item baris ialah apple, maka syarat ini adalah benar kerana "berry" tidak disertakan dalam "apple". |
| Bermula dengan | Membandingkan nilai untuk menyemak sama ada nilai pertama bermula dengan data dalam nilai kedua. |
Nilai untuk order.shippingAddress.country dibandingkan dengan: United.Jika negara untuk alamat pengiriman pesanan ialah United Kingdom, maka syarat ini adalah benar kerana "United Kingdom" bermula dengan "United". |
| Tidak bermula dengan | Membandingkan nilai untuk menyemak sama ada nilai pertama tidak bermula dengan data dalam nilai kedua. |
Nilai untuk order.shippingAddress.country dibandingkan dengan: United.Jika negara untuk alamat pengiriman pesanan ialah Canada, maka syarat ini adalah benar kerana "United Kingdom" tidak bermula dengan "Canada". |
| Berakhir dengan | Membandingkan nilai untuk menyemak sama ada nilai pertama berakhir dengan data dalam nilai kedua. |
Nilai untuk order.lineitems.product.title dibandingkan dengan: pie.Jika tajuk produk item baris ialah key lime pie, maka syarat ini adalah benar kerana "key lime pie" berakhir dengan "pie". |
| Tidak berakhir dengan | Membandingkan nilai untuk menyemak sama ada nilai pertama tidak berakhir dengan data dalam nilai kedua. |
Nilai untuk order.lineitems.product.title dibandingkan dengan: pie.Jika tajuk produk item baris ialah chocolate cake, maka syarat ini adalah benar kerana "chocolate cake" tidak berakhir dengan "pie". |
Pengendali nol atau kosong
| Operator | Perihalan | Syarat Benar/Palsu |
|---|---|---|
| Kosong atau tidak wujud | Menyemak sama ada medan kosong (tidak mempunyai nilai) atau tidak wujud (adalah null). |
Mengembalikan benar apabila medan kosong atau null, dan palsu jika wujud.
|
| Tidak kosong dan wujud | Menyemak sama ada medan wujud dan tidak kosong atau null. | Mengembalikan benar apabila medan tidak kosong dan wujud, palsu apabila medan kosong. |
Pengendali senarai
Pengendali senarai digabungkan dengan pengendali peringkat medan untuk membolehkan anda menyemak syarat pada data yang disertakan dalam senarai.
Seperti dalam contoh “sekurang-kurangnya satu”, anda mungkin mahu menyemak sama ada pesanan mengandungi produk khusus (terletak dalam order.lineItems) dengan tag khusus (senarai di bawah order.lineItems.product.tags). Dalam kedua-dua kes, contoh menggunakan pengendali senarai sekurang-kurangnya salah satu daripada.
Flow menyediakan 3 pengendali untuk berfungsi dengan senarai: Sekurang-kurangnya salah satu daripada, Tiada satu pun daripada dan Semua daripada.
| Operator | Perihalan | Contoh penggunaan |
|---|---|---|
| Sekurang-kurangnya salah satu daripada | Menyemak sama ada mana-mana item dalam senarai sepadan dengan syarat yang ditentukan. Mengembalikan true jika mana-mana item dalam senarai tersebut sepadan. Jika senarai tersebut kosong atau tiada item yang sepadan, maka mengembalikan false. | Menyemak sama ada pesanan mengandungi produk dengan tag khusus menggunakan Sekurang-kurangnya salah satu daripada order line items.product.tags adalah sama dengan tagname. |
| Tiada satu pun daripada | Menyemak bahawa tiada item dalam senarai sepadan dengan syarat yang ditentukan. Mengembalikan true jika tiada item sepadan dengan syarat tersebut. Jika senarai kosong, maka mengembalikan true. | Semak jika produk tidak mempunyai tag presale menggunakan None of product tags is equal to presale.Kesilapan biasa adalah dengan mencuba menidakkan pengendali ini dengan menggunakan is not equal to. Menggunakan penafian berganda ini, iaitu None of product tags is not equal to presale, menjadikan syarat ini sukar untuk difahami dan tidak sah.
|
| Semua | Menyemak bahawa semua item dalam senarai sepadan dengan syarat yang ditentukan. Mengembalikan true jika setiap item dalam senarai sepadan dengan syarat tersebut. | Semak jika semua item dalam pesanan mempunyai vendor produk khusus yang dipanggil Acme menggunakan All of order line items have a product.vendor equal to Acme. |
Susunan syarat
Anda boleh mencipta aliran kerja yang mempunyai berbilang syarat yang mana setiap satunya boleh menghasilkan tindakan yang berbeza. Susunan syarat adalah penting. Semakan syarat bermula pada permulaan aliran kerja dan diteruskan secara sistematik melalui setiap syarat. Semakan berhenti apabila syarat dipenuhi.
Contoh ini menggunakan berbilang syarat untuk menyemak sama ada pelanggan layak untuk program kesetiaan berdasarkan jumlah keseluruhan yang mereka telah belanjakan di kedai. Syarat tersebut disemak mengikut susunan ia dipaparkan:
- Jika jumlah harga lebih besar daripada $1000 dan pelanggan bersetuju untuk menerima pemasaran, maka tag mereka dengan tag
Gold. - Jika jumlah harga kurang daripada $1000 tetapi lebih daripada $500 dan pelanggan bersetuju untuk menerima pemasaran, maka tag mereka dengan tag
Silver. - Jika jumlah harga kurang daripada $500 tetapi lebih daripada $200 dan pelanggan bersetuju untuk menerima pemasaran, maka tag mereka dengan tag
Bronze.

Menggabungkan berbilang kriteria dalam satu syarat
Semasa membina syarat, anda boleh menetapkan beberapa kriteria. Anda boleh memilih cara kriteria yang berasingan ini harus digabungkan untuk menentukan sama ada syarat keseluruhan adalah benar atau palsu.
Jika semua kriteria dipenuhi
Memilih DAN menghasilkan respons yang benar hanya jika setiap kriteria yang anda tetapkan adalah benar.
Sebagai contoh, anda mencipta aliran kerja untuk menge-tag pelanggan yang berada di Kanada dan membelanjakan lebih daripada $500 untuk satu pesanan.

Aliran kerja menge-tag pelanggan hanya jika pelanggan berada di Kanada dan mereka membelanjakan lebih daripada $500 dalam pesanan tersebut. Jika salah satu daripada syarat ini adalah palsu, maka pelanggan tersebut tidak akan ditag.
Jika mana-mana kriteria dipenuhi
Memilih ATAU menghasilkan respons yang benar jika mana-mana satu daripada kriteria yang anda tetapkan adalah benar.
Sebagai contoh, anda mencipta aliran kerja untuk menge-tag pesanan yang mempunyai pengesyoran risiko Batal atau Siasat. Selagi salah satu daripada syarat tersebut benar, pesanan akan ditag.

Data statik dan dinamik dalam syarat
Biasanya, nilai kedua dalam syarat ialah nilai statik yang dimasukkan secara manual (seperti product.title == "your title"). Nilai ini kekal sama setiap kali aliran kerja dijalankan.
Anda juga boleh menggunakan nilai dinamik jika medan untuk nilai kedua memaparkan ikon . Nilai dinamik diambil daripada data kedai anda setiap kali aliran kerja dijalankan. Untuk menggunakan nilai dinamik, klik ikon
dan pilih nilai yang anda ingin semak terhadapnya. Nilai dinamik tidak tersedia untuk semua medan.
Sebagai contoh, anda mencipta aliran kerja yang menge-tag pesanan jika negara dalam alamat pengebilan pesanan tersebut sepadan dengan negara dalam alamat penghantarannya.

Dalam contoh ini, kedua-dua nilai pertama dan kedua diambil daripada data kedai anda dan bukannya menentukan rentetan statik secara manual untuk disemak terhadapnya untuk nilai kedua. Jika negara dalam alamat pengebilan yang diberikan oleh pelanggan adalah sama dengan negara yang diberikan oleh pelanggan dalam alamat penghantaran, maka syarat adalah benar dan pesanan akan ditag.
Kadangkala anda mungkin perlu menggunakan data dinamik yang merupakan jenis yang salah. Sebagai contoh, anda mungkin perlu membandingkan nombor yang disimpan sebagai rentetan dengan nombor lain. Dalam kes ini, anda boleh menggunakan pilihan Jalankan kod untuk menukar data kepada jenis yang betul.
Templat
Kebanyakan templat dalam pustaka templat mengandungi syarat.
Contoh syarat
Semak sama ada sekurang-kurangnya satu item dalam senarai sepadan dengan syarat
Contoh ini memaparkan syarat biasa yang menyemak sama ada sekurang-kurangnya satu item dalam senarai sepadan dengan nilai tertentu.
Dalam kes ini, syarat menyemak sama ada salah satu produk dalam pesanan mempunyai tag presale. Untuk membina syarat ini, anda akan memilih order / lineItems / product / tags. Secara lalai, Flow memilih sekurang-kurangnya satu daripada sebagai pengendali logik:

Bahagian sekurang-kurangnya satu daripada ialah pengendali senarai dan digunakan untuk mengendalikan padanan merentas berbilang item senarai. Bahagian sama dengan ialah pengendali peringkat medan yang menentukan sama ada satu item senarai sepadan.
Semak sama ada tiada item dalam senarai yang sepadan dengan syarat
Contoh ini memaparkan syarat biasa yang menyemak sama ada tiada item dalam senarai yang sepadan dengan nilai tertentu. Satu masalah biasa yang perlu dipertimbangkan ialah senarai boleh menjadi kosong. Apabila senarai kosong, syarat akan dikendalikan oleh pengendali senarai (dalam kes ini tiada daripada).
Dalam kes ini, syarat menyemak sama ada tiada tag produk yang sama dengan foo:

Syarat ini akan mengembalikan true jika (1) tiada tag produk atau (2) tiada tag yang merupakan foo. Jika tidak, syarat ini akan mengembalikan false.
Semak sama ada item dalam senarai sepadan dengan berbilang kriteria
Contoh ini memaparkan syarat biasa yang menyemak sama ada sekurang-kurangnya satu item dalam senarai sepadan dengan dua kriteria yang berasingan.
Dalam kes ini, syarat menyemak sama ada salah satu produk dalam pesanan mempunyai tag presale dan sama ada produk tersebut mempunyai productType clothing.

Untuk membina syarat ini, anda hendaklah:
- Pilih order / lineItems / product / tags untuk kriteria pertama.
- Pilih untuk Tambah kriteria bagi item yang sama pada senarai lineItems. Nota: Memilih item senarai yang salah di sini ialah kesilapan biasa.
- Pilih lineItems_item sebagai objek peringkat teratas dan kemudian product / productType` untuk kriteria kedua. Nota: Memilih objek yang salah di sini juga ialah kesilapan biasa.
- Pilih AND untuk menggabungkan dua kriteria tersebut.
- Masukkan nilai
presaledanclothinguntuk dua kriteria tersebut.