Shopify Flow में स्थितियों को समझना
एक स्थिति, वर्कफ़्लो का एक स्टेप है, जहां इस आधार पर आगे बढ़ने के बारे में फ़ैसला किया जाता है कि मानदंड का एक सेट पूरा हुआ है या नहीं। हर स्थिति वाले स्टेप में 2 संभावनाएं होती हैं: सही, जब मानदंड पूरे हो गए हों और गलत, जब मानदंड पूरे न हुए हों। अगर आप दूसरी स्थिति या एक्शन चुनकर किसी भी संभावना के लिए अगला स्टेप तय नहीं करते हैं, तो वर्कफ़्लो रन रुक जाता है।
उदाहरण के लिए, अगर आपका वर्कफ़्लो किसी ऑर्डर के बनने पर ट्रिगर होता है, तो एक स्थिति यह जांच सकती है कि क्या ऑर्डर पर एक खास AFFILIATE10 डिस्काउंट कोड का इस्तेमाल किया गया था। अगर ऐसा था, तो सही विकल्प एक ऐसे एक्शन की ओर ले जा सकता है जो एफ़िलिएट को यह बताने के लिए एक ईमेल भेजता है कि उनके कोड का इस्तेमाल किया गया था। अगर ऐसा नहीं था, तो गलत विकल्प खाली हो सकता है, जो यह बताता है कि आगे कुछ नहीं होता है और वर्कफ़्लो रन खत्म हो जाता है।
आपके वर्कफ़्लो की जटिलता के आधार पर, एक वर्कफ़्लो में कितनी भी स्थितियां हो सकती हैं। स्थितियां, दूसरी स्थितियों या एक्शन से भी जुड़ सकती हैं, यह इस बात पर निर्भर करता है कि आप वर्कफ़्लो से क्या करवाना चाहते हैं। स्थितियों को क्रम में जोड़ने के लिए सेट किया जा सकता है (उदाहरण के लिए, अगर स्थिति A सही है, तो स्थिति B की जांच करें; अगर A गलत है, तो C की जांच करें) या आप उन्हें एक ही स्टेप के हिस्से के रूप में एक साथ होने के लिए सेट कर सकते हैं (उदाहरण के लिए, जांचें कि क्या A या B या C सही है)।
इस पेज पर
अपने वर्कफ़्लो के लिए स्थितियां बनाना
एक ट्रिगर या एक एक्शन के उलट, जिसे आप Shopify Flow में उपलब्ध विकल्पों की एक प्रीसेट सूची से चुन सकते हैं, स्थितियां शुरू से ही वेरिएबल, लॉजिकल ऑपरेटर और वैल्यू को चुनकर बनाई जाती हैं ताकि कंडीशनल स्टेटमेंट बनाया जा सके:
- एक वेरिएबल, एक प्लेसहोल्डर है जो उस डेटा को परिभाषित करता है जिसका इस्तेमाल स्थिति कर रही है। उदाहरण के लिए, अगर कोई स्थिति किसी ऑर्डर पर एक खास डिस्काउंट कोड की जांच करना चाहती है, तो वेरिएबल
order.discountCodeहोगा। वेरिएबल, GraphQL Admin API डॉट नोटेशन का इस्तेमाल करते हैं। - एक लॉजिकल ऑपरेटर यह बताता है कि वर्कफ़्लो को यह कैसे तय करना चाहिए कि स्थिति पूरी हुई है या नहीं। लॉजिकल ऑपरेटर, वेरिएबल के लेवल पर लागू हो सकते हैं या जब कई वेरिएबल को पूरी स्थिति के मानदंड के हिस्से के रूप में शामिल किया जाता है:
- वेरिएबल-लेवल के विकल्पों में फ़ील्ड-लेवल ऑपरेटर शामिल हैं जैसे कि इससे बड़ा या इससे शुरू होता है या सूची ऑपरेटर जैसे कि कम से कम एक या सभी।
- स्थिति-स्तर के विकल्पों में AND शामिल है, जिसका मतलब है कि स्थिति को कुल मिलाकर सही मानने के लिए सभी वेरिएबल का सही होना ज़रूरी है या OR, जिसका मतलब है कि स्थिति को कुल मिलाकर सही मानने के लिए कम से कम 1 वेरिएबल का सही होना ज़रूरी है।
- एक वैल्यू, वह असल जानकारी है जिसे वेरिएबल खोज रहा है। उदाहरण के लिए, अगर खास
order.discountCodeजिसे आप वर्कफ़्लो से जांच करवाना चाहते हैं, वह AFFILIATE10 है, तो वह स्थिति के हिस्से के रूप में शामिल करने वाली वैल्यू होगी।
जैसे ही आप अपने वेरिएबल और ऑपरेटर चुनते हैं, Shopify Flow कैनवास में स्थिति का स्टेप आपके कंडीशनल स्टेटमेंट को आसान भाषा में दिखाने के लिए अपडेट हो जाता है, ताकि आप दोबारा जांच सकें कि आपके द्वारा बनाई जा रही स्थिति सही तरीके से फ़ॉर्मैट की गई है या नहीं। आप डिफ़ॉल्ट कंडीशनल स्टेटमेंट को अपने लिखे हुए विवरण के साथ बदलने के लिए विवरण जोड़ें पर क्लिक कर सकते हैं।
Shopify Flow में स्थितियों के एलिमेंट के बारे में ज़्यादा विस्तृत जानकारी जानें।
स्थितियों में वेरिएबल को समझना
वर्कफ़्लो में एक स्थिति स्टेप बनाते समय, आपसे जो पहला स्टेप लेने के लिए कहा जाता है, वह है एक वेरिएबल जोड़ें। लेकिन, एक वेरिएबल क्या है?
Shopify Flow में, एक वेरिएबल एक प्लेसहोल्डर होता है जो वर्कफ़्लो में स्थिति द्वारा इस्तेमाल किए जा रहे डेटा को बताता है। जब कोई स्थिति "अगर A 10 से बड़ा है..." पढ़ती है, तो A वाला हिस्सा वेरिएबल होता है। किसी स्थिति के लिए एक वेरिएबल चुनना असल में स्थिति को यह बताना है कि उसे किस डेटा का मूल्यांकन करना है।
वेरिएबल को GraphQL Admin API डॉट नोटेशन का इस्तेमाल करके फ़ॉर्मैट किया जाता है। आपको Flow ऐप के साथ वर्कफ़्लो बनाने के लिए API में माहिर होने की ज़रूरत नहीं है, लेकिन वेरिएबल नामों और उनकी परिभाषाओं की बुनियादी समझ आपको वह खास वर्कफ़्लो लॉजिक बनाने में मदद कर सकती है जो आप चाहते हैं।
यह समझने के लिए कि एक वेरिएबल किस डेटा को दर्शाता है, वेरिएबल के बारे में निम्नलिखित जानकारी पर विचार करें:
- वेरिएबल डॉट नोटेशन कैसे पढ़ें।
- वेरिएबल के लिए डेटा की ज़रूरतों को समझना।
- खोज के दौरान सही वेरिएबल का पता लगाना।
सुझाव: Dev Docs असिस्टेंट से वेरिएबल में मदद पाएं
अगर आप पक्का नहीं हैं कि अपनी स्थिति बनाते समय कौन सा वेरिएबल चुनना है, तो सलाह के लिए Shopify Dev Docs असिस्टेंट से पूछने पर विचार करें। Dev Docs असिस्टेंट के पास GraphQL Admin API से जुड़े सभी दस्तावेज़ों तक पहुंच है और वह Shopify Flow में स्थिति को कैसे फ़ॉर्मैट किया जाए, इसके लिए सुझाव दे सकता है:
- Shopify Dev Docs पर जाएं।
- चैट पैनल खोलने के लिए सहायक से पूछें पर क्लिक करें.
- मैसेज फ़ील्ड में, अपना अनुरोध डालें, जैसे कि "अगर मेरा ट्रिगर "ऑर्डर बनाया गया" से शुरू होता है, तो ग्राहक टैग डेटा एक्सेस करने के लिए मुझे Shopify Flow में किस वेरिएबल का इस्तेमाल करना चाहिए?".
- Enter दबाएं या
पर क्लिक करें.
वेरिएबल डॉट नोटेशन पढ़ना
वेरिएबल चुनते समय, आप देखेंगे कि उन्हें पीरियड से अलग किए गए कीवर्ड के रूप में फ़ॉर्मेट किया गया है, जैसे order.customer.tag। यह फ़ॉर्मेट उन स्टेप को दिखाता है जो API आपके द्वारा उपयोग किए जाने वाले डेटा तक पहुंचने के लिए लेता है। वेरिएबल का हर 'स्टेप' पीरियड से अलग होता है, और डेटा का पाथ बाएं से दाएं पढ़ा जाता है। API में डेटा कहां स्टोर है और वहां तक पहुंचने के लिए वर्कफ़्लो कौन सा पाथ लेता है, इसके आधार पर वेरिएबल की लंबाई अलग हो सकती है।
उदाहरण के लिए:
order.email: ऑर्डर के लिए ग्राहक से जुड़े ईमेल पते की जांच करता है। यह वैसा ही है जैसे आप किसी ऑर्डर पर क्लिक कर सकते हैं और फिर ऑर्डर विवरण पर ईमेल पते की जांच कर सकते हैं।refunds_item.staffMember.name: आइटम रिफ़ंड के लिए ऑर्डर की जांच करता है, उस रिफ़ंड से जुड़ी स्टाफ़ सदस्य की जानकारी पर जाता है, और उस स्टाफ़ सदस्य के पूरे नाम की जांच करता है।
वेरिएबल चुनते समय, इस बात पर विचार करें कि आप अपनी मनचाही जानकारी खोजने के लिए Shopify एडमिन को कैसे नेविगेट कर सकते हैं। संभावना है कि API को भी ऐसा ही पाथ अपनाना पड़ सकता है, जिससे आपको यह तय करने में मदद मिल सकती है कि आपका वेरिएबल कैसे फ़ॉर्मेट किया जाएगा।
उदाहरण के लिए, अगर आप एक नए ऑर्डर की समीक्षा कर रहे हैं और यह जानना चाहते हैं कि ऑर्डर से जुड़ा ग्राहक किस RFM ग्रुप में है, तो आप Shopify एडमिन में ग्राहक के विवरण पेज पर रीडायरेक्ट होने के लिए ऑर्डर पर ग्राहक के नाम पर क्लिक करने के बारे में सोच सकते हैं, और फिर आप यह पढ़ने के लिए ग्राहक की एनालिटिक्स समरी देख सकते हैं कि RFM ग्रुप स्तंभ में कौन सा मान दिखाया गया है।
Shopify Flow में वही डेटा वापस पाने के लिए आप जिस वेरिएबल का उपयोग करेंगे, वह एक समान पाथ का उपयोग करेगा: order.customer.statistics.rfmGroup।
वेरिएबल के लिए डेटा संबंधी ज़रूरतें
वेरिएबल को डेटा की ज़रूरत होती है। अगर वेरिएबल के लिए सही डेटा उपलब्ध नहीं है, तो कंडीशन काम नहीं करेगी और वर्कफ़्लो फ़ेल हो जाएगा। आपने अपने वर्कफ़्लो की शुरुआत के रूप में जो ट्रिगर चुना है, उसके आधार पर, आपकी कंडीशन में जोड़ने के लिए वेरिएबल के विकल्प, उपलब्ध डेटा के आधार पर संभावित विकल्पों को दर्शाने के लिए बदल जाते हैं।
उदाहरण के लिए, अगर आपका वर्कफ़्लो प्रोडक्ट बनाया गया ट्रिगर से शुरू होता है, तो उस ट्रिगर से आपके द्वारा बनाई गई कंडीशन प्रोडक्ट डेटा सेट से उपलब्ध वेरिएबल तक सीमित होती हैं। इसलिए, product.category.name, product.vendor और variants_item.displayName जैसे वेरिएबल, सभी कंडीशन के हिस्से के रूप में उपयोग करने के लिए उपलब्ध हैं। इसके विपरीत, customer.verifiedEmail या subscriptionContracts_item.status जैसे वेरिएबल विकल्पों के रूप में प्रदर्शित नहीं होंगे, क्योंकि वे प्रोडक्ट डेटा सेट से संबद्ध नहीं हैं।
हालांकि, इसका यह मतलब ज़रूरी नहीं है कि दूसरे डेटा सेट में मौजूद डेटा पूरी तरह से एक्सेस नहीं किया जा सकता है। कुछ डेटा को API में कई पाथ से एक्सेस किया जा सकता है, ठीक उसी तरह जैसे आप Shopify एडमिन में एक ही पेज पर पहुंचने के लिए अलग-अलग लिंक पर क्लिक कर सकते हैं। व्यवहार में, इसका मतलब है कि एक ही जानकारी वापस पाने के लिए अलग-अलग ट्रिगर को अलग-अलग वेरिएबल नोटेशन की ज़रूरत होती है।
उदाहरण के लिए, आप चाहते हैं कि आपका वर्कफ़्लो ग्राहक की प्रोफ़ाइल पर टैग की जांच करे। अगर आपका वर्कफ़्लो ऑर्डर बनाया गया ट्रिगर से शुरू होता है, तो वेरिएबल order.customer.tags होगा, क्योंकि वर्कफ़्लो ऑर्डर डेटा से शुरू होता है, फिर ऑर्डर में ग्राहक की जानकारी की जांच करता है, फिर उस ग्राहक पर टैग की जांच करता है। अगर आपका वर्कफ़्लो ग्राहक बनाया गया ट्रिगर से शुरू होता है, तो वेरिएबल सिर्फ़ customer.tags होगा, क्योंकि वर्कफ़्लो ग्राहक डेटा से शुरू होता है, इसलिए यह सीधे ग्राहक प्रोफ़ाइल पर टैग की जांच करने जा सकता है।
कीवर्ड के आधार पर खोज करते समय वेरिएबल के पाथ की जांच करना
Shopify Flow में डॉट नोटेशन स्टाइल के कारण, कीवर्ड के आधार पर कंडीशन में उपयोग करने के लिए वेरिएबल खोजने पर कई परिणाम मिल सकते हैं। अपनी कंडीशन बनाते समय यह तय करने के लिए कि कौन सा वेरिएबल चुनना है, यह समझना महत्वपूर्ण है कि वेरिएबल का पाथ क्या बता रहा है।
उदाहरण के लिए, आपका वर्कफ़्लो ऑर्डर बनाया गया ट्रिगर का उपयोग करता है और आप टैग कीवर्ड का उपयोग करके एक वेरिएबल खोजते हैं। आपकी खोज निम्नलिखित परिणाम दे सकती है, जो ऑर्डर में अलग-अलग जानकारी की जांच करते हैं:
order.tags: खुद ऑर्डर पर लागू किए गए टैग। उदाहरण के लिए, #rush order या #gift।order.customer.tags: ऑर्डर देने वाले ग्राहक पर लागू किए गए टैग। उदाहरण के लिए, #VIP या #affiliate।order.lineItems.product.tags: ऑर्डर में खरीदे गए प्रोडक्ट पर लागू किए गए टैग। उदाहरण के लिए, #fragile या #requiresID।
आप वर्कफ़्लो से किस प्रकार के टैग की जांच करवाना चाहते हैं, इसके आधार पर, आपको सही वेरिएबल चुनना होगा ताकि आपकी कंडीशन उम्मीद के मुताबिक काम करे।
कंडीशन में लॉजिकल ऑपरेटर को समझना
लॉजिकल ऑपरेटर यह परिभाषित करते हैं कि आपकी कंडीशन कैसे लागू होती है और इसके परिणामस्वरूप एक स्टेटमेंट या तो सही होता है या गलत। जब कोई कंडीशन "अगर A, 10 से बड़ा है..." जैसी होती है, तो is greater than वाला हिस्सा लॉजिकल ऑपरेटर होता है। किसी कंडीशन के लिए लॉजिकल ऑपरेटर चुनना असल में कंडीशन को यह बताना है कि वेरिएबल का मूल्यांकन कैसे किया जाए।
Shopify Flow वर्कफ़्लो में, 3 तरह के लॉजिकल ऑपरेटर होते हैं:
- फ़ील्ड-लेवल के ऑपरेटर, जैसे कि इससे बड़ा या इससे शुरू होता है।
- लिस्ट ऑपरेटर, जैसे कि इनमें से कम से कम एक या ये सभी।
- कंडीशन-लेवल के ऑपरेटर, जैसे कि AND या OR।
फ़ील्ड-लेवल ऑपरेटर और लिस्ट ऑपरेटर, वेरिएबल लेवल पर लागू होते हैं, और कंडीशन-लेवल ऑपरेटर पूरी कंडीशन पर लागू होते हैं और इनका उपयोग कई वेरिएबल को एक ही कंडीशन में संयोजित करने के लिए किया जा सकता है।
फ़ील्ड-लेवल ऑपरेटर सबसे आम प्रकार के ऑपरेटर हैं, जिनका उपयोग हर प्रकार के वेरिएबल स्टेटमेंट में किया जाता है। फ़ील्ड-लेवल ऑपरेटर के साथ, आप "अगर A, 10 से बड़ा है, तो X करें" या "अगर B में 'VIP' है, तो X करें" जैसे कंडीशनल स्टेटमेंट बना सकते हैं, ताकि इस पर ज़्यादा नियंत्रण हो सके कि किसी वेरिएबल के कौन से मान सही परिणाम देते हैं। इसके बराबर डिफ़ॉल्ट लॉजिकल ऑपरेटर है।
लिस्ट ऑपरेटर केवल उन वेरिएबल पर लागू हो सकते हैं जो परिणामों की एक लिस्ट लौटा सकते हैं। उदाहरण के लिए, lineItems_item.variant.price वेरिएबल ऑर्डर में उत्पाद प्रकार की कीमत लौटाता है, जो ग्राहक द्वारा एक ही ऑर्डर में कई प्रोडक्ट खरीदने पर परिणामों की एक लिस्ट लौटा सकता है। इसका मतलब है कि आप इनमें से कम से कम एक जैसा लिस्ट ऑपरेटर लागू कर सकते हैं जब आप चाहते हैं कि "lineItems_item.variant.price $10 से ज़्यादा है" जैसा कोई कंडीशनल स्टेटमेंट तब सही हो, जब ऑर्डर में कम से कम 1 उत्पाद प्रकार $10 से ज़्यादा का हो। इसके विपरीत, लिस्ट ऑपरेटर उन वेरिएबल के लिए प्रदर्शित नहीं होते हैं जो एक बार में केवल 1 परिणाम लौटा सकते हैं। उदाहरण के लिए, order.createdAt जैसे वेरिएबल के लिए केवल 1 संभावित मान होता है क्योंकि एक ऑर्डर केवल एक बार बनाया जा सकता है, इसलिए लिस्ट ऑपरेटर उस वेरिएबल वाले स्टेटमेंट को संशोधित करने के विकल्पों के रूप में प्रदर्शित नहीं होते हैं।
AND और OR जैसे कंडीशन-लेवल ऑपरेटर, आपको एक ही कंडीशन में कई वैरिएबल शामिल करने की सुविधा देते हैं। उदाहरण के लिए, "अगर A, 5 के बराबर है, तो X करें" जैसे साधारण कंडीशनल स्टेटमेंट के बजाय, आप "अगर A, 5 के बराबर है और B, 10 से बड़ा है, तो X करें" जैसी ज़्यादा जटिल कंडीशन बना सकते हैं, जिसके लिए A और B, दोनों वैरिएबल का सही होना ज़रूरी है, या "अगर A, 5 के बराबर है या B, 10 से बड़ा है या C, 1 से कम है, तो X करें" जैसी कंडीशन बना सकते हैं, जिसके लिए A, B, या C में से सिर्फ़ 1 का सही होना ज़रूरी है। AND का इस्तेमाल तब करें, जब किसी वर्कफ़्लो में सब कुछ सही होना चाहिए; OR का इस्तेमाल तब करें, जब कंडीशन के सही होने के लिए किसी 1 मानदंड का पूरा होना ही काफ़ी हो।
यह क्यों ज़रूरी है: यह समझना कि लॉजिकल ऑपरेटर, कंडीशन में कैसे काम करते हैं, आपको ऐसे वर्कफ़्लो बनाने की सुविधा देता है जो ठीक उन मानदंडों की जांच करते हैं जो आप चाहते हैं। 3 तरह के लॉजिकल ऑपरेटर की मदद से, आप बहुत खास कंडीशन की जांच करने वाले वर्कफ़्लो बनाने के लिए विस्तृत और जटिल कंडीशनल स्टेटमेंट तैयार कर सकते हैं।