პირობები Shopify Flow-ში
პირობები აგრძელებს სამუშაო პროცესს გარკვეული წესების დაკმაყოფილებისას, როგორიცაა if-then დებულების დაწყება. პირობის დაყენებისას, შენ ირჩევ კრიტერიუმებს GraphQL Admin API-ის ველებიდან (მაგალითად: product.title), ლოგიკურ ოპერატორს (მაგალითად: equal to (უდრის)) და შესამოწმებელ მნიშვნელობას (მაგალითად: Blue jeans (ლურჯი ჯინსი)). როდესაც სამუშაო პროცესი აფასებს პირობას, Flow ამოწმებს სამუშაო პროცესში განსაზღვრულ მნიშვნელობას შენი მაღაზიისთვის დაბრუნებული მნიშვნელობის მიმართ, შემდეგ კი შედეგებს სამუშაო პროცესის გაშვებაში აჩვენებს. იმის უკეთ გასაგებად, თუ რომელი ველები და მნიშვნელობებია ხელმისაწვდომი პირობების განსაზღვრისთვის, გაეცანი ინსტრუქციას: მაღაზიის მონაცემების წინასწარი ნახვა.
გაიგე მეტი პირობების საფუძვლების შესახებ.
ამ გვერდზე
მონაცემთა ტიპები, რომლებიც გამოიყენება Flow-სთან
პირობის დაყენებისას, შენ ირჩევ კრიტერიუმებს Admin API-ში ხელმისაწვდომი ველებიდან და Flow აფასებს მათ შენი მაღაზიისთვის დაბრუნებული მნიშვნელობის მიმართ.
Flow მხარს უჭერს შემდეგი ტიპის მონაცემებს:
- Float: Float მნიშვნელობები არის რიცხვები ათწილადებით. მაგალითად, 4,25.
- Integer: Integer მნიშვნელობები მთელი რიცხვებია ათწილადების გარეშე. მაგალითად, 42.
- Date: Date მნიშვნელობები თარიღის რიცხვითი გამოსახულებაა. მაგალითად, 01012021.
- სტრიქონი: სტრიქონის მნიშვნელობები არის ტექსტი. სტრიქონის მნიშვნელობებით შედარებისას რეგისტრისადმი მგრძნობიარე არ არის.
- Boolean: Boolean მნიშვნელობები არის true (ჭეშმარიტი) ან false (მცდარი).
- Enum: Enum მნიშვნელობები არის მონაცემთა ნაკრები, რომელიც ცვლადს საშუალებას აძლევს, იყოს წინასწარ განსაზღვრული კონსტანტების ერთობლიობა.
ლოგიკური ოპერატორები
ლოგიკური ოპერატორები განსაზღვრავენ, თუ როგორ გამოიყენება შენი პირობა. პირობებს შეუძლია შეამოწმოს მარტივი თვისებები, მაგალითად, აღემატება თუ არა შეკვეთის ჯამი გარკვეულ თანხას, ან იღებს თუ არა მომხმარებელი მარკეტინგულ შეტყობინებებს. ლოგიკურ ოპერატორებს ასევე შეუძლიათ უფრო რთული თვისებების შემოწმება.
ოპერატორები შეიძლება იყოს ან ველის დონის ოპერატორები, როგორიცაა უდრის ან არ უდრის, ან სიის ოპერატორები, როგორიცაა ერთ-ერთი მაინც ან არცერთი.
ველის დონის ოპერატორები
ველის დონის ოპერატორები გამოიყენება 2 მნიშვნელობის შესადარებლად. Flow-ს შეუძლია გამოიყენოს შემდეგი ოპერატორები:
| ოპერატორი | აღწერა | მაგალითი |
|---|---|---|
| უდრის | ადარებს მნიშვნელობებს, რათა შეამოწმოს, არიან თუ არა ისინი იდენტური. |
მნიშვნელობა order.currentTotalDiscountsSet.shopMoney.amount-სთვის მიიღება შენი მაღაზიის მონაცემებიდან და შედარდება მეორე მნიშვნელობასთან, 50-თან.თუ შეკვეთის ჯამური ფასდაკლებები ზუსტად 50-ის ტოლია, მაშინ პირობა ჭეშმარიტია. |
| არ უდრის | ადარებს მნიშვნელობებს, რათა შეამოწმოს, რომ ისინი არ არიან იდენტური. |
მნიშვნელობა order.currentTotalDiscountsSet.shopMoney.amount-სთვის მიიღება შენი მაღაზიის მონაცემებიდან და შედარდება მეორე მნიშვნელობასთან, 50-თან.თუ შეკვეთის ჯამური ფასდაკლებები ზუსტად 50-ს არ უდრის, მაშინ პირობა ჭეშმარიტია. |
| მეტია ვიდრე და მეტია ან ტოლია | ადარებს მნიშვნელობებს, რათა შეამოწმოს, არის თუ არა პირველი მნიშვნელობა მეტი, ან მეტი ან ტოლი მეორე მნიშვნელობაზე. |
მნიშვნელობა order.currentTotalDiscountsSet.shopMoney.amount-სთვის მიიღება შენი მაღაზიის მონაცემებიდან და შედარდება მეორე მნიშვნელობასთან, 50-თან.თუ შეკვეთის ჯამური ფასდაკლებების მნიშვნელობა 137-ია, მაშინ პირობა ჭეშმარიტია, რადგან 137 მეტია 50-ზე. |
| ნაკლებია ვიდრე და ნაკლებია ან ტოლია | ადარებს მნიშვნელობებს, რათა შეამოწმოს, არის თუ არა პირველი მნიშვნელობა ნაკლები, ან ნაკლები ან ტოლი მეორე მნიშვნელობაზე. |
მნიშვნელობა order.currentTotalDiscountsSet.shopMoney.amount-სთვის მიიღება შენი მაღაზიის მონაცემებიდან და შედარდება მეორე მნიშვნელობასთან, 50-თან.თუ შეკვეთის ჯამური ფასდაკლებები 47-ია, მაშინ პირობა ჭეშმარიტია, რადგან 47 ნაკლებია ან ტოლია 50-ზე. |
| ერთ-ერთი მაინც | ამოწმებს, უდრის თუ არა ველი მოწოდებულ სიაში არსებულ რომელიმე მნიშვნელობას. მნიშვნელობები უნდა შეიყვანო ინდივიდუალურად და დააჭირო ღილაკს Enter (თეგების მსგავსად). ცარიელ მასივზე გამოყენება იძლევა მცდარ (false) შედეგს. |
მნიშვნელობა order.lineitem.product.title-სთვის დარდება შემდეგს: ანანასი, გუავა, კივი.თუ ხაზის ელემენტის პროდუქტის სათაური არის გუავა, მაშინ პირობა ჭეშმარიტია, რადგან „გუავა“ შედის შენ მიერ მოწოდებულ სიაში. |
| არცერთი | ამოწმებს, რომ ველი არ უდრის მოწოდებულ სიაში არსებულ არცერთ მნიშვნელობას. |
მნიშვნელობა order.lineitem.product.title-სთვის დარდება შემდეგს: ანანასი, გუავა, კივი.თუ ხაზის ელემენტის პროდუქტის სათაური არის ჟოლო, მაშინ პირობა ჭეშმარიტია, რადგან „ჟოლო“ არ შედის შენ მიერ მოწოდებულ სიაში. |
| შეიცავს | ადარებს მნიშვნელობებს, რათა შეამოწმოს, შეიცავს თუ არა შეყვანილი პირველი მნიშვნელობა მეორე შეყვანილ მონაცემს. |
მნიშვნელობა order.lineitem.product.title-სთვის დარდება შემდეგს: ბურთი.თუ ხაზის ელემენტის პროდუქტის სათაური არის ფეხბურთი, მაშინ პირობა ჭეშმარიტია, რადგან „ბურთი“ შედის სიტყვაში „ფეხბურთი“. |
| არ შეიცავს | ადარებს მნიშვნელობებს, რათა შეამოწმოს, რომ შეყვანილი პირველი მნიშვნელობა არ შეიცავს მეორე შეყვანილ მონაცემს. |
მნიშვნელობა order.lineitem.product.title-სთვის დარდება შემდეგს: ბურთი.თუ ხაზის ელემენტის პროდუქტის სათაური არის ვაშლი, მაშინ პირობა ჭეშმარიტია, რადგან „ბურთი“ არ შედის სიტყვაში „ვაშლი“. |
| იწყება შემდეგით | ადარებს მნიშვნელობებს, რათა შეამოწმოს, იწყება თუ არა პირველი მნიშვნელობა მეორე მნიშვნელობაში არსებული მონაცემით. |
მნიშვნელობა order.shippingAddress.country-სთვის დარდება შემდეგს: გაერთიანებული.თუ შეკვეთის მიწოდების მისამართის ქვეყანა არის გაერთიანებული სამეფო, მაშინ პირობა ჭეშმარიტია, რადგან „გაერთიანებული სამეფო“ იწყება სიტყვით „გაერთიანებული“. |
| არ იწყება შემდეგით | ადარებს მნიშვნელობებს, რათა შეამოწმოს, რომ პირველი მნიშვნელობა არ იწყება მეორე მნიშვნელობაში არსებული მონაცემით. |
მნიშვნელობა order.shippingAddress.country-სთვის დარდება შემდეგს: გაერთიანებული.თუ შეკვეთის მიწოდების მისამართის ქვეყანა არის კანადა, მაშინ პირობა ჭეშმარიტია, რადგან „კანადა“ არ იწყება სიტყვით „გაერთიანებული“. |
| მთავრდება შემდეგით | ადარებს მნიშვნელობებს, რათა შეამოწმოს, მთავრდება თუ არა პირველი მნიშვნელობა მეორე მნიშვნელობაში არსებული მონაცემით. |
მნიშვნელობა order.lineitems.product.title-სთვის დარდება შემდეგს: ნამცხვარი.თუ ხაზის ელემენტის პროდუქტის სათაური არის ვაშლის ნამცხვარი, მაშინ პირობა ჭეშმარიტია, რადგან „ვაშლის ნამცხვარი“ მთავრდება სიტყვით „ნამცხვარი“. |
| არ მთავრდება შემდეგით | ადარებს მნიშვნელობებს, რათა შეამოწმოს, რომ პირველი მნიშვნელობა არ მთავრდება მეორე მნიშვნელობაში არსებული მონაცემით. |
მნიშვნელობა order.lineitems.product.title-სთვის დარდება შემდეგს: ნამცხვარი.თუ ხაზის ელემენტის პროდუქტის სათაური არის შოკოლადის ტორტი, მაშინ პირობა ჭეშმარიტია, რადგან „შოკოლადის ტორტი“ არ მთავრდება სიტყვით „ნამცხვარი“. |
ნულოვანი ან ცარიელი ოპერატორები
| ოპერატორი | აღწერა | ჭეშმარიტი/მცდარი პირობა |
|---|---|---|
| ცარიელია ან არ არსებობს | ამოწმებს, ველი ცარიელია (არ აქვს მნიშვნელობა) თუ არ არსებობს (არის null). |
აბრუნებს true-ს, როდესაც ველი ცარიელია ან null-ია, ხოლო false-ს, თუ ის არსებობს.
|
| არ არის ცარიელი და არსებობს | ამოწმებს, არსებობს თუ არა ველი და არ არის ცარიელი ან null. | აბრუნებს true-ს, როდესაც ველი არ არის ცარიელი და არსებობს, ხოლო false-ს, როდესაც ის ცარიელია. |
სიის ოპერატორები
სიის ოპერატორები ველის დონის ოპერატორებთან ერთიანდება, რათა შეძლო სიებში შემავალ მონაცემებზე პირობების შემოწმება.
„მინიმუმ ერთის“ მაგალითის მსგავსად, შეიძლება დაგჭირდეს შემოწმება, შეიცავს თუ არა შეკვეთა კონკრეტულ პროდუქტს (რომელიც order.lineItems-ში მდებარეობს) კონკრეტული თეგით (სია order.lineItems.product.tags-ში). ორივე შემთხვევაში მაგალითი იყენებს at least one of სიის ოპერატორს.
სიებთან სამუშაოდ Flow 3 ოპერატორს უზრუნველყოფს: At least one of, None of და All of.
| ოპერატორი | აღწერა | გამოყენების მაგალითი |
|---|---|---|
| ერთ-ერთი მაინც | ამოწმებს, ემთხვევა თუ არა სიაში არსებული რომელიმე ერთეული მითითებულ პირობას. აბრუნებს true-ს, თუ სიაში არსებული რომელიმე ერთეული ემთხვევა. თუ სია ცარიელია ან არცერთი ერთეული არ ემთხვევა, მაშინ აბრუნებს false-ს. | At least one of order line items.product.tags is equal to tagname-ის გამოყენებით, შეამოწმე, შეიცავს თუ არა შეკვეთა პროდუქტს კონკრეტული თეგით. |
| None of | ამოწმებს, რომ სიაში არსებული არცერთი ერთეული არ ემთხვევა მითითებულ პირობას. აბრუნებს true-ს, თუ არცერთი ერთეული არ ემთხვევა პირობას. თუ სია ცარიელია, მაშინ აბრუნებს true-ს. | შეამოწმე, არ აქვს თუ არა პროდუქტს presale თეგი None of product tags is equal to presale-ის გამოყენებით.გავრცელებული შეცდომაა ოპერატორის უარყოფის მცდელობა is not equal to-ს გამოყენებით. ასეთი ორმაგი უარყოფის, None of product tags is not equal to presale, გამოყენება პირობას ძნელად გასაგებს და არასწორს ხდის.
|
| All of | ამოწმებს, რომ სიაში არსებული ყველა ერთეული ემთხვევა მითითებულ პირობას. აბრუნებს true-ს, თუ სიაში არსებული ყველა ერთეული ემთხვევა პირობას. | შეამოწმე, აქვს თუ არა შეკვეთაში არსებულ ყველა ერთეულს პროდუქტის კონკრეტული მომწოდებელი სახელად Acme All of order line items have a product.vendor equal to Acme-ის გამოყენებით. |
პირობების თანმიმდევრობა
შეგიძლია შექმნა სამუშაო პროცესები, რომლებსაც რამდენიმე პირობა აქვთ, რომელთაგან თითოეულმა შეიძლება სხვადასხვა ქმედება გამოიწვიოს. პირობების თანმიმდევრობას მნიშვნელობა აქვს. პირობების შემოწმება სამუშაო პროცესის დასაწყისში იწყება და თითოეულ პირობაზე სისტემატურად გრძელდება. შემოწმება ჩერდება, როდესაც პირობა შესრულდება.
ეს მაგალითი იყენებს რამდენიმე პირობას იმის შესამოწმებლად, აკმაყოფილებს თუ არა მომხმარებელი ლოიალობის პროგრამის მოთხოვნებს მაღაზიაში დახარჯული მთლიანი თანხის საფუძველზე. პირობები მოწმდება იმ თანმიმდევრობით, რომლითაც ისინი ნაჩვენებია:
- თუ ჯამური ფასი 1000$-ზე მეტია და მომხმარებელი თანახმაა მარკეტინგული შეტყობინებების მიღებაზე, მაშინ მიანიჭე მას
Goldთეგი. - თუ ჯამური ფასი 1000$-ზე ნაკლებია, მაგრამ 500$-ზე მეტია და მომხმარებელი თანახმაა მარკეტინგული შეტყობინებების მიღებაზე, მაშინ მიანიჭე მას
Silverთეგი. - თუ ჯამური ფასი 500$-ზე ნაკლებია, მაგრამ 200$-ზე მეტია და მომხმარებელი თანახმაა მარკეტინგული შეტყობინებების მიღებაზე, მაშინ მიანიჭე მას
Bronzeთეგი.

რამდენიმე კრიტერიუმის ერთ პირობაში გაერთიანება
პირობის შექმნისას შეგიძლია რამდენიმე კრიტერიუმი მიუთითო. შეგიძლია აირჩიო, თუ როგორ უნდა გაერთიანდეს ეს ცალკეული კრიტერიუმები იმის დასადგენად, ზოგადი პირობა true-ა თუ false.
თუ ყველა კრიტერიუმი დაკმაყოფილებულია
AND-ის არჩევისას პასუხი არის true მხოლოდ იმ შემთხვევაში, თუ შენ მიერ მითითებული ყველა კრიტერიუმი არის true.
მაგალითად, ქმნი სამუშაო პროცესს იმ მომხმარებლებისთვის თეგის მისანიჭებლად, რომლებიც კანადაში იმყოფებიან და ერთ შეკვეთაში 500$-ზე მეტს ხარჯავენ.

სამუშაო პროცესი მომხმარებელს თეგს ანიჭებს მხოლოდ იმ შემთხვევაში, თუ მომხმარებელი კანადაში იმყოფება და ის 500$-ზე მეტს ხარჯავს შეკვეთაში. თუ რომელიმე ეს პირობა false-ა, მაშინ მომხმარებელს თეგი არ მიენიჭება.
თუ რომელიმე კრიტერიუმი დაკმაყოფილებულია
OR-ის არჩევისას პასუხი არის true, თუ შენ მიერ მითითებული რომელიმე ერთი კრიტერიუმი არის true.
მაგალითად, ქმნი სამუშაო პროცესს თეგების მისანიჭებლად შეკვეთებისთვის, რომლებსაც გაუქმების ან გამოძიების რისკის რეკომენდაცია აქვთ. სანამ ერთ-ერთი ეს პირობა არის true, შეკვეთას თეგი ენიჭება.

სტატიკური და დინამიკური მონაცემები პირობებში
როგორც წესი, პირობაში მეორე მნიშვნელობა არის სტატიკური, ხელით შეყვანილი მნიშვნელობა (მაგალითად, product.title == "შენი სათაური"). ეს მნიშვნელობა სამუშაო პროცესის ყოველი გაშვებისას იგივე რჩება.
ასევე შეგიძლია გამოიყენო დინამიკური მნიშვნელობები, თუ მეორე მნიშვნელობის ველში ნაჩვენებია ხატულა . სამუშაო პროცესის ყოველი გაშვებისას დინამიკური მნიშვნელობები შენი მაღაზიის მონაცემებიდან მიიღება. დინამიკური მნიშვნელობის გამოსაყენებლად, დააწკაპუნე ხატულას
და აირჩიე მნიშვნელობა, რომლის შემოწმებაც გსურს. დინამიკური მნიშვნელობები ყველა ველისთვის ხელმისაწვდომი არ არის.
მაგალითად, ქმნი სამუშაო პროცესს, რომელიც ანიჭებს თეგს შეკვეთას, თუ შეკვეთის ბილინგის მისამართში მითითებული ქვეყანა ემთხვევა მის მიწოდების მისამართში მითითებულ ქვეყანას.

ამ მაგალითში, პირველი და მეორე მნიშვნელობები შენი მაღაზიის მონაცემებიდან მიიღება, იმის ნაცვლად, რომ მეორე მნიშვნელობის შესამოწმებლად ხელით მიუთითო სტატიკური სტრიქონი. თუ მომხმარებლის მიერ მოწოდებულ ბილინგის მისამართში არსებული ქვეყანა იგივეა, რაც მომხმარებლის მიერ მიწოდების მისამართში მითითებული ქვეყანა, მაშინ პირობა არის true და შეკვეთას თეგი ენიჭება.
ზოგჯერ შეიძლება დაგჭირდეს არასწორი ტიპის მქონე დინამიკური მონაცემების გამოყენება. მაგალითად, შეიძლება დაგჭირდეს სტრიქონად შენახული რიცხვის შედარება სხვა რიცხვთან. ამ შემთხვევაში, მონაცემების სწორ ტიპად კონვერტირებისთვის შეგიძლია გამოიყენო ოფცია კოდის გაშვება.
შაბლონები
შაბლონების ბიბლიოთეკაში არსებული შაბლონების უმეტესობა შეიცავს პირობას.
პირობების მაგალითები
შემოწმება, აკმაყოფილებს თუ არა სიაში არსებული მინიმუმ ერთი ერთეული პირობას
ეს მაგალითი აჩვენებს ტიპურ პირობას, რომელიც ამოწმებს, ემთხვევა თუ არა სიაში არსებული მინიმუმ ერთი ერთეული კონკრეტულ მნიშვნელობას.
ამ შემთხვევაში, პირობა ამოწმებს, აქვს თუ არა შეკვეთაში არსებულ ერთ-ერთ პროდუქტს თეგი presale. ამ პირობის შესაქმნელად, უნდა აირჩიო order / lineItems / product / tags. ნაგულისხმევად, Flow ირჩევს მინიმუმ ერთ-ერთს (at least one of) ლოგიკურ ოპერატორად:

მინიმუმ ერთ-ერთი ნაწილი არის სიის ოპერატორი და გამოიყენება სიის რამდენიმე ერთეულში დამთხვევების დასამუშავებლად. ნაწილი უდრის არის ველის დონის ოპერატორი, რომელიც განსაზღვრავს, ემთხვევა თუ არა სიის ერთი კონკრეტული ერთეული.
შემოწმება, აკმაყოფილებს თუ არა სიაში არსებული არცერთი ერთეული პირობას
ეს მაგალითი აჩვენებს ტიპურ პირობას, რომელიც ამოწმებს, ხომ არ არის ისე, რომ სიაში არსებული არცერთი ერთეული არ ემთხვევა კონკრეტულ მნიშვნელობას. ერთი გავრცელებული პრობლემა, რომელიც უნდა გაითვალისწინო, ისაა, რომ სიები შესაძლოა ცარიელი იყოს. როდესაც სია ცარიელია, პირობა დამუშავდება სიის ოპერატორით (ამ შემთხვევაში არცერთი).
ამ შემთხვევაში, პირობა ამოწმებს, არის თუ არა ისე, რომ პროდუქტის არცერთი თეგი არ უდრის foo-ს:

პირობა დააბრუნებს true მნიშვნელობას (ჭეშმარიტია), თუ (1) არ არის პროდუქტის თეგები ან (2) არცერთი თეგი არ არის foo. წინააღმდეგ შემთხვევაში, ის დააბრუნებს false მნიშვნელობას (მცდარია).
შემოწმება, აკმაყოფილებს თუ არა სიაში არსებული ერთეული რამდენიმე კრიტერიუმს
ეს მაგალითი აჩვენებს ტიპურ პირობას, რომელიც ამოწმებს, აკმაყოფილებს თუ არა სიაში არსებული მინიმუმ ერთი ერთეული ორ დამოუკიდებელ კრიტერიუმს.
ამ შემთხვევაში, პირობა ამოწმებს, აქვს თუ არა შეკვეთაში არსებულ ერთ-ერთ პროდუქტს თეგი presale და არის თუ არა მისი productType (პროდუქტის ტიპი) clothing.

ამ პირობის შესაქმნელად, უნდა:
- პირველი კრიტერიუმისთვის აირჩიო order / lineItems / product / tags.
- lineItems-ის სიაში აირჩიო იგივე ერთეულისთვის კრიტერიუმის დამატება (Add criteria for same item). შენიშვნა: აქ სიის არასწორი ერთეულის არჩევა გავრცელებული შეცდომაა.
- მეორე კრიტერიუმისთვის ზედა დონის ობიექტად აირჩიო lineItems_item, ხოლო შემდეგ product / productType`. შენიშვნა: აქ არასწორი ობიექტის არჩევაც გავრცელებული შეცდომაა.
- ამ ორი კრიტერიუმის გასაერთიანებლად აირჩიო AND.
- ამ ორი კრიტერიუმისთვის შეიყვანო მნიშვნელობები
presaleდაclothing.