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.
- String: String मूल्ये मजकूर असतात. स्ट्रिंग (String) मूल्यांचा वापर करून केलेली तुलना ही केस-सेन्सिटिव्ह नसते.
- 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 पेक्षा कमी किंवा त्याच्या समान आहे. |
| यांपैकी किमान एक | प्रदान केलेल्या लिस्टमधील कोणत्याही मूल्याशी फील्ड समान आहे का हे तपासते. मूल्ये वैयक्तिकरित्या प्रविष्ट केली जाणे आवश्यक आहे आणि त्यानंतर एंटर की दाबली पाहिजे (टॅग प्रमाणे). रिकाम्या ॲरेवर वापरल्यास त्याचे मूल्यमापन खोटे (false) येते. |
order.lineitem.product.title च्या मूल्याची यांच्याशी तुलना केली जाते: pineapple, guava, kiwi.जर लाइन आयटम उत्पादन शीर्षक guava असेल, तर अट खरी असते, कारण तुम्ही प्रदान केलेल्या लिस्टमध्ये “guava” चा समावेश आहे. |
| यांपैकी कोणतेही नाही | प्रदान केलेल्या लिस्टमधील कोणत्याही मूल्याशी फील्ड समान नाही हे तपासते. |
order.lineitem.product.title च्या मूल्याची यांच्याशी तुलना केली जाते: pineapple, guava, kiwi.जर लाइन आयटम उत्पादन शीर्षक raspberry असेल, तर अट खरी असते, कारण तुम्ही प्रदान केलेल्या लिस्टमध्ये “raspberry” चा समावेश नाही. |
| समाविष्ट आहे | पहिल्या मूल्य इनपुटपैकी कोणत्याही इनपुटमध्ये दुसऱ्या मूल्य इनपुटमधील डेटा समाविष्ट आहे की नाही हे तपासण्यासाठी मूल्यांची तुलना करते. |
order.lineitem.product.title च्या मूल्याची यांच्याशी तुलना केली जाते: berry.जर लाइन आयटम उत्पादन शीर्षक strawberry असेल, तर अट खरी असते, कारण “strawberry” मध्ये “berry” समाविष्ट आहे. |
| समाविष्ट नाही | पहिल्या मूल्य इनपुटपैकी कोणत्याही इनपुटमध्ये दुसऱ्या मूल्य इनपुटमधील डेटा समाविष्ट नाही हे तपासण्यासाठी मूल्यांची तुलना करते. |
order.lineitem.product.title च्या मूल्याची यांच्याशी तुलना केली जाते: berry.जर लाइन आयटम उत्पादन शीर्षक apple असेल, तर अट खरी असते, कारण “apple” मध्ये “berry” समाविष्ट नाही. |
| याने सुरुवात होते | पहिले मूल्य दुसऱ्या मूल्यातील डेटाने सुरू होते की नाही हे तपासण्यासाठी मूल्यांची तुलना करते. |
order.shippingAddress.country च्या मूल्याची यांच्याशी तुलना केली जाते: United.जर ऑर्डरच्या शिपिंग पत्त्याचा देश United Kingdom असेल, तर अट खरी असते, कारण “United Kingdom” ची सुरुवात “United” ने होते. |
| याने सुरुवात होत नाही | पहिले मूल्य दुसऱ्या मूल्यातील डेटाने सुरू होत नाही हे तपासण्यासाठी मूल्यांची तुलना करते. |
order.shippingAddress.country च्या मूल्याची यांच्याशी तुलना केली जाते: United.जर ऑर्डरच्या शिपिंग पत्त्याचा देश Canada असेल, तर अट खरी असते, कारण “United Kingdom” ची सुरुवात “Canada” ने होत नाही. |
| याने शेवट होतो | पहिल्या मूल्याचा शेवट दुसऱ्या मूल्यातील डेटाने होतो की नाही हे तपासण्यासाठी मूल्यांची तुलना करते. |
order.lineitems.product.title च्या मूल्याची यांच्याशी तुलना केली जाते: pie.जर लाइन आयटम उत्पादन शीर्षक key lime pie असेल, तर अट खरी असते, कारण “key lime pie” चा शेवट “pie” ने होतो. |
| याने शेवट होत नाही | पहिल्या मूल्याचा शेवट दुसऱ्या मूल्यातील डेटाने होत नाही हे तपासण्यासाठी मूल्यांची तुलना करते. |
order.lineitems.product.title च्या मूल्याची यांच्याशी तुलना केली जाते: pie.जर लाइन आयटम उत्पादन शीर्षक chocolate cake असेल, तर अट खरी असते, कारण “chocolate cake” चा शेवट “pie” ने होत नाही. |
नल (Null) किंवा रिकामे ऑपरेटर
| ऑपरेटर | वर्णन | खरी/खोटी (True/False) अट |
|---|---|---|
| रिकामे आहे किंवा अस्तित्वात नाही | एखादे फील्ड रिकामे आहे (कोणतेही मूल्य नाही) किंवा अस्तित्वात नाही (null आहे) हे तपासते. |
जेव्हा फील्ड रिक्त किंवा null असते, तेव्हा true परत करते आणि ते मौजूद असल्यास false परत करते.
|
| रिक्त नाही आणि अस्तित्वात आहे | एखादे फील्ड मौजूद आहे आणि ते रिक्त किंवा null नाही, हे तपासते. | जेव्हा फील्ड रिक्त नसते आणि अस्तित्वात असते, तेव्हा true परत करते, जेव्हा ते रिक्त असते, तेव्हा false परत करते. |
सूची ऑपरेटर्स
सूचीमध्ये समाविष्ट असलेल्या डेटावरील अटी तपासण्यासाठी सूची ऑपरेटर्स फील्ड-स्तरीय ऑपरेटर्ससोबत एकत्रित केले जातात.
"किमान एक (at least one)" उदाहरणाप्रमाणे, तुम्हाला एखाद्या ऑर्डरमध्ये विशिष्ट टॅग (order.lineItems.product.tags अंतर्गत असलेली सूची) असलेले एखादे विशिष्ट उत्पादन (order.lineItems मध्ये असलेले) आहे की नाही हे तपासायचे असेल. दोन्ही प्रकरणांमध्ये, उदाहरण यापैकी किमान एक (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 वापरून, एखाद्या ऑर्डरमध्ये विशिष्ट टॅग असलेले उत्पादन आहे की नाही ते तपासा. |
| यापैकी एकही नाही | सूचीतील एकही आयटम नमूद केलेल्या अटीशी जुळत नाही, हे तपासते. कोणतेही आयटम अटीशी जुळत नसल्यास true परत करते. सूची रिक्त असल्यास, true परत करते. | None of product tags is equal to presale वापरून, एखाद्या उत्पादनावर presale हा टॅग नाहीये, हे तपासा.एक सामान्य चूक म्हणजे is not equal to वापरून ऑपरेटरला नकारार्थी बनवण्याचा प्रयत्न करणे. असा दुहेरी-नकार None of product tags is not equal to presale वापरल्याने अट समजण्यास कठीण आणि अवैध दोन्ही बनते.
|
| हे सर्व | सूचीतील सर्व आयटम नमूद केलेल्या अटीशी जुळतात, हे तपासते. सूचीतील प्रत्येक आयटम अटीशी जुळल्यास true परत करते. | All of order line items have a product.vendor equal to Acme वापरून एखाद्या ऑर्डरमधील सर्व आयटम्सचा विशिष्ट उत्पादन विक्रेता Acme आहे का ते तपासा. |
अटींचा क्रम लावणे
तुम्ही अनेक अटी असलेले वर्कफ्लो तयार करू शकता, ज्यापैकी प्रत्येकाचा परिणाम वेगवेगळ्या कृतींमध्ये होऊ शकतो. अटींचा क्रम महत्त्वाचा असतो. अटींची तपासणी वर्कफ्लोच्या सुरुवातीपासून सुरू होते आणि प्रत्येक अटीमधून पद्धतशीरपणे पुढे जाते. एखादी अट पूर्ण झाल्यावर तपासणी थांबते.
ग्राहकाने स्टोअरमध्ये खर्च केलेल्या एकूण रकमेच्या आधारावर तो लॉयल्टी प्रोग्रामसाठी पात्र आहे की नाही हे तपासण्यासाठी या उदाहरणात अनेक अटी वापरल्या आहेत. अटी ज्या क्रमाने दाखवल्या आहेत त्याच क्रमाने तपासल्या जातात:
- जर एकूण किंमत $1,000 पेक्षा जास्त असेल आणि ग्राहक मार्केटिंग स्वीकारण्यास तयार असेल, तर त्यांना
Goldटॅगने टॅग करा. - जर एकूण किंमत $1,000 पेक्षा कमी परंतु $500 पेक्षा जास्त असेल आणि ग्राहक मार्केटिंग स्वीकारण्यास तयार असेल, तर त्यांना
Silverटॅगने टॅग करा. - जर एकूण किंमत $500 पेक्षा कमी परंतु $200 पेक्षा जास्त असेल आणि ग्राहक मार्केटिंग स्वीकारण्यास तयार असेल, तर त्यांना
Bronzeटॅगने टॅग करा.

एका अटीमध्ये अनेक निकष एकत्र करणे
एखादी अट तयार करताना, तुम्ही अनेक निकष सेट करू शकता. संपूर्ण अट खरी (true) की खोटी (false) आहे हे ठरवण्यासाठी हे वेगवेगळे निकष कसे एकत्र केले जावेत, हे तुम्ही निवडू शकता.
सर्व निकष पूर्ण झाल्यास
AND निवडल्यास, तुम्ही सेट केलेला प्रत्येक निकष खरा असल्यासच true प्रतिसाद मिळतो.
उदाहरणार्थ, कॅनडामध्ये असलेल्या आणि एकाच ऑर्डरवर $500 पेक्षा जास्त खर्च करणाऱ्या ग्राहकांना टॅग करण्यासाठी तुम्ही वर्कफ्लो तयार करता.

ग्राहक कॅनडामध्ये असल्यास आणि त्यांनी ऑर्डरमध्ये $500 पेक्षा जास्त खर्च केल्यासच वर्कफ्लो ग्राहकाला टॅग करतो. यापैकी कोणतीही एक अट चुकीची असल्यास, ग्राहकाला टॅग केले जात नाही.
कोणताही निकष पूर्ण झाल्यास
OR निवडल्यास, तुम्ही सेट केलेल्या निकषांपैकी कोणताही एक निकष खरा असल्यास true प्रतिसाद मिळतो.
उदाहरणार्थ, रद्द करा (Cancel) किंवा तपासणी करा (Investigate) अशी जोखीम शिफारस असलेल्या ऑर्डर्सना टॅग करण्यासाठी तुम्ही वर्कफ्लो तयार करता. यापैकी एक जरी अट खरी असली तरी, ऑर्डर टॅग केली जाते.

अटींमधील स्टॅटिक आणि डायनॅमिक डेटा
सामान्यतः, अटीमधील दुसरे मूल्य हे स्टॅटिक, मॅन्युअली टाकलेले मूल्य (जसे की product.title == "your title") असते. प्रत्येक वेळी वर्कफ्लो रन होतो तेव्हा हे मूल्य तसेच राहते.
दुसऱ्या मूल्याच्या फील्डवर आयकन दिसत असल्यास, तुम्ही डायनॅमिक मूल्येदेखील वापरू शकता. प्रत्येक वेळी वर्कफ्लो रन होतो तेव्हा डायनॅमिक मूल्ये तुमच्या स्टोअर डेटामधून मिळवली जातात. डायनॅमिक मूल्य वापरण्यासाठी,
आयकनवर क्लिक करा आणि तुम्हाला ज्या मूल्याविरुद्ध तपासायचे आहे ते मूल्य निवडा. डायनॅमिक मूल्ये सर्व फील्ड्ससाठी उपलब्ध नसतात.
उदाहरणार्थ, ऑर्डरच्या बिलिंग पत्त्यामधील देश तिच्या शिपिंग पत्त्यामधील देशाशी जुळत असल्यास ऑर्डरला टॅग करणारा वर्कफ्लो तुम्ही तयार करता.

या उदाहरणात, दुसऱ्या मूल्याविरुद्ध तपासण्यासाठी मॅन्युअली स्टॅटिक स्ट्रिंग नमूद करण्याऐवजी, पहिली आणि दुसरी दोन्ही मूल्ये तुमच्या स्टोअरच्या डेटामधून मिळवली जातात. ग्राहकाने प्रदान केलेल्या बिलिंग पत्त्यामधील देश जर ग्राहकाने शिपिंग पत्त्यामध्ये प्रदान केलेल्या देशासारखाच असेल, तर अट true असते आणि ऑर्डर टॅग केली जाते.
तुम्हाला काही वेळा चुकीच्या प्रकारचा असलेला डायनॅमिक डेटा वापरण्याची आवश्यकता असू शकते. उदाहरणार्थ, स्ट्रिंग म्हणून स्टोअर केलेल्या नंबरची तुम्हाला दुसऱ्या नंबरशी तुलना करावी लागू शकते. या प्रकरणात, डेटाला योग्य प्रकारात रूपांतरित करण्यासाठी तुम्ही कोड रन करा (Run code) पर्याय वापरू शकता.
टेम्पलेट्स
टेम्पलेट लायब्ररी मधील बहुतांश टेम्पलेट्समध्ये अट समाविष्ट असते.
अटींची उदाहरणे
सूचीतील किमान एक आयटम अटीशी जुळतो का ते तपासा
हे उदाहरण एक विशिष्ट अट दाखवते, जी सूचीतील किमान एक आयटम ठरावीक मूल्याशी जुळतो की नाही ते तपासते.
या केसमध्ये, अट तपासते की ऑर्डरमधील एखाद्या उत्पादनावर presale चा टॅग आहे का. ही अट तयार करण्यासाठी, तुम्ही order / lineItems / product / tags निवडाल. डीफॉल्टनुसार, Flow लॉजिकल ऑपरेटर म्हणून यापैकी किमान एक (at least one of) निवडतो:

यापैकी किमान एक (at least one of) चे भाग हे लिस्ट ऑपरेटर्स आहेत आणि त्यांचा वापर एकाधिक सूची आयटम्समधील जुळणी हाताळण्यासाठी केला जातो. याच्या समान आहे (is equal to) हा भाग फील्ड-लेव्हल ऑपरेटर आहे, जो एखादा एकच सूची आयटम जुळतो की नाही हे ठरवतो.
सूचीतील कोणताही आयटम अटीशी जुळत नाही का ते तपासा
हे उदाहरण एक विशिष्ट अट दाखवते, जी सूचीतील कोणताही आयटम ठरावीक मूल्याशी जुळत नाही की काय हे तपासते. लक्षात घेण्यासारखी एक सामान्य समस्या म्हणजे सूची रिकाम्या असू शकतात. सूची रिकामी असते, तेव्हा अट लिस्ट ऑपरेटरद्वारे हाताळली जाईल (या केसमध्ये यापैकी एकही नाही (none of)).
या केसमध्ये, अट तपासते की कोणताही उत्पादन टॅग foo च्या समान नाही का:

जर (1) कोणतेही उत्पादन टॅग नसतील किंवा (2) कोणतेही टॅग foo नसतील, तर अट true रिटर्न करेल. अन्यथा, ती false रिटर्न करेल.
सूचीतील एखादा आयटम एकाधिक निकषांशी जुळतो का ते तपासा
हे उदाहरण एक विशिष्ट अट दाखवते, जी सूचीतील किमान एक आयटम दोन स्वतंत्र निकषांशी जुळतो की नाही हे तपासते.
या केसमध्ये, अट तपासते की ऑर्डरमधील एखाद्या उत्पादनावर presale चा टॅग आहे का आणि त्याचा productType हा clothing आहे का.

ही अट तयार करण्यासाठी, तुम्ही खालील गोष्टी कराव्यात:
- पहिल्या निकषासाठी order / lineItems / product / tags निवडा.
- lineItems सूचीवर समान आयटमसाठी निकष जोडा (Add criteria for same item) निवडण्याचे ठरवा. नोंद: येथे चुकीचा सूची आयटम निवडणे ही एक सामान्य चूक आहे.
- टॉप लेव्हल ऑब्जेक्ट म्हणून lineItems_item आणि त्यानंतर दुसऱ्या निकषासाठी product / productType` निवडा. नोंद: येथे चुकीचा ऑब्जेक्ट निवडणे हीदेखील एक सामान्य चूक आहे.
- दोन निकष एकत्र करण्यासाठी AND निवडा.
- दोन निकषांसाठी
presaleआणिclothingही मूल्ये एंटर करा.