Run code

Run code कृती JavaScript कार्यान्वित करते. तुम्ही वर्कफ्लोमधील मागील पायऱ्यांवरील डेटा Run code कृतीसाठी इनपुट म्हणून पास करू शकता आणि पुढील पायऱ्यांमध्ये वापरल्या जाणाऱ्या व्हॅल्यू परत करू शकता.

फील्ड्स

Run code कृतीमध्ये खालील फील्ड्सचा समावेश आहे.

Run code कृतीमध्ये वापरलेले फील्ड्स.
फील्डवर्णन
इनपुटआवश्यक. मागील पायऱ्यांवरील डेटा Run code कृतीसाठी इनपुट म्हणून वापरण्यासाठी GraphQL क्वेरी.
आउटपुटआवश्यक. कृतीद्वारे परत केल्या जाणाऱ्या डेटाचे सादरीकरण, जे GraphQL च्या स्कीमा डेफिनेशन लँग्वेजमध्ये (SDL) परिभाषित केलेले असते.
कोडआवश्यक. Run code कृती कार्यान्वित करेल ते JavaScript.

इनपुट डेटा

Run code कृतीच्या आधी घडणाऱ्या पायऱ्यांवरून इनपुट डेटा पास केला जाऊ शकतो. हा डेटा समाविष्ट करण्यासाठी, तुम्ही इनपुट फील्डमध्ये GraphQL क्वेरी लिहू शकता. क्वेरीमधून परत आलेला डेटा export default सह चिन्हांकित केलेल्या फंक्शनमध्ये input आर्ग्युमेंट म्हणून उपलब्ध असेल, ज्याला सामान्यतः main म्हटले जाते.

इनपुट क्वेरी ही Flow एन्व्हायर्नमेंट डेटासाठी असलेली क्वेरी आहे, ती Shopify Admin API ची क्वेरी नाही. त्यामुळे तुम्ही इनपुट डेटावर Shopify क्वेरी समाविष्ट करू शकत नाही. याव्यतिरिक्त, Flow क्वेरीमधील edges आणि nodes हाताळते, त्यामुळे तुम्हाला तुमच्या क्वेरीमध्ये ते किंवा इतर पेजिंग सिंटॅक्स जोडण्याची गरज नाही.

ऑर्डरची नोंद आणि लाइन आयटमचे शीर्षक मिळवणारे एक उदाहरण इनपुट:

{
  order {
    note
    lineItems {
      title
    }
  }
}

हा डेटा input व्हेरिएबलमध्ये रूपांतरित केला जातो, जो कोडमध्ये वापरला जाऊ शकतो:

export default function main(input) {
  // input.order.note
  // input.order.lineItems[0].title
}

इनपुट्स फंक्शन सिग्नेचरमध्ये डिस्ट्रक्चरदेखील केले जाऊ शकतात:

export default function main({order}) {
  // order.note
  // order.lineItems[0].title
}

मेटाफील्ड्स

Run code मध्ये एका मेटाफील्ड व्हॅल्यू ॲक्सेस करण्यासाठी, तुम्ही आधी मेटाफील्डला Flow च्या एन्व्हायर्नमेंट डेटावर जोडणे आवश्यक आहे. हे Run code व्यतिरिक्त इतर कोणत्याही कृती किंवा स्थितीमध्ये केले जाऊ शकते. उदाहरणार्थ, तुम्ही Log output कृती जोडू शकता आणि नंतर मेटाफील्ड जोडण्यासाठी सूचनांचे पालन करू शकता.

वर्कफ्लो वातावरणामध्ये मेटाफील्ड जोडल्यानंतर, तुम्ही Run code मध्ये त्यात अ‍ॅक्सेस करू शकता. उदाहरणार्थ, समजा तुम्ही giftMessage च्या टोपणनावासह ऑर्डर मेटाफील्ड जोडले आहे. त्यानंतर तुम्ही तुमच्या इनपुट क्वेरीमध्ये त्यात अ‍ॅक्सेस करू शकता:

{
  order {
    giftMessage {
      value
    }
  }
}

आउटपुट डेटा

Run code कृती कस्टम डेटा रिटर्न करू शकते. कोड रिटर्न करेल तो डेटा प्रकार निर्धारित करण्यासाठी, आउटपुट फील्ड आणि GraphQL ची स्कीमा डेफिनेशन लँग्वेज (SDL) वापरा. सपोर्ट केलेले आउटपुट प्रकार String, Int, Float, Boolean आणि ID आहेत, जे आवश्यक फील्ड्स, सूची आणि कस्टम डेटा कसा नमूद करायचा याबद्दल SDL तपशीलांचे पालन करतात.

उदाहरणार्थ, giftMessage नावाची स्ट्रिंग आणि totalGifts नावाचा नंबर रिटर्न करण्यासाठी:

type Output {
  "The message to include in the gift"
  giftMessage: String!
  "The total number of gifts"
  totalGifts: Int!
}

टिप्पण्या ऐच्छिक आहेत, परंतु Flow UI मधील डेटाचे वर्णन करण्यासाठी वापरल्या जातील. हा डेटा JavaScript कोडमध्ये आउटपुट करण्यासाठी, प्रकाराशी जुळणारे ऑब्जेक्ट रिटर्न करा:

export default function main(input) {
  // your code
  return {
    giftMessage: 'Hello',
    totalGifts: 1,
  };
}

अधिक गुंतागुंतीचा डेटा रिटर्न करण्यासाठी तुम्ही कस्टम प्रकारदेखील निर्धारित करू शकता. उदाहरणार्थ, Gift नावाचा प्रकार रिटर्न करण्यासाठी ज्यामध्ये message नावाची स्ट्रिंग आणि amount नावाचा नंबर समाविष्ट असतो:

type Output {
  "The gift to send"
  gifts: [Gift!]!
}

type Gift {
  "The message to include in the gift"
  message: String!
  "The total number of gifts"
  amount: Int!
}

या कृतीचे अनुसरण करणार्‍या टप्प्यांमध्ये या डेटाचा अ‍ॅक्सेस मिळवण्यासाठी, Run code नावाचे व्हेरिएबल वापरा, जे तुम्ही Run code कृती कॉन्फिगरेशनमध्ये निर्धारित केलेल्या Output स्कीमानुसार टाईप केले जाईल. तुम्ही हे व्हेरिएबल अटी आणि कृती दोन्हीमध्ये वापरू शकता.

Console.log

तुम्ही ट्रबलशूटिंगच्या उद्देशांसाठी Flow च्या वर्कफ्लो रन लॉगमध्‍ये डेटा आउटपुट करण्यासाठी console.log वापरू शकता. आउटपुट वर्कफ्लोसाठी रन लॉगमध्‍ये दृश्यमान होईल. उदाहरणार्थ खालील वैध आहेत:

export default function main(input) {
  console.log('Hello, world!');
  //Hello, world!
  console.log(input);
  // { order: { note: 'Hello', lineItems: [ { title: 'World' } ] } }
  console.log(input.order, 'is the order');
  // { note: 'Hello', lineItems: [ { title: 'World' } ] }
  // is the order

  return {
    giftMessage: 'Hello',
    totalGifts: 1,
  };
}

तुम्ही Run code कृतीमध्ये console.info, console.error किंवा इतर कार्ये वापरू शकत नाही.

उदाहरण

कोड कृतीची उदाहरणे Flow उदाहरणे रिपॉझिटरी मध्ये शोधली जाऊ शकतात.

मर्यादा

Run code कृतीच्या खालील मर्यादा आहेत:

  • Run code कृती ECMA2020 JavaScript ला सपोर्ट करते. ती NodeJS किंवा CommonJS APIs ला सपोर्ट करत नाही किंवा मॉड्यूल्स इंपोर्ट करत नाही.
  • तुमचा कोड HTTP कॉल्स (fetch) करू शकत नाही.
  • रँडम आणि क्लॉक-आधारित कार्ये वापरली जाऊ शकत नाहीत. scheduledAt किंवा createdAt सारखा तारखेचा डेटा, इनपुट म्हणून पाठवला जाऊ शकतो.
  • Console.log ब्राउझर कन्सोलवर लॉग करत नाही.
  • पेलोड आकाराची बचत करण्यासाठी, आउटपुट डेटा पेलोड केवळ डाउनस्ट्रीम टप्प्यांमध्ये वापरलेले व्हेरिएबल्स रिटर्न करतो.
  • तुम्ही Run code कृतीमध्ये थेट मेटाफील्ड टोपणनाव जोडू शकत नाही. हे पूर्ण करण्यासाठी, या पेजवरील मेटाफील्ड्स विभाग तपासा.

याव्यतिरिक्त, खालील मर्यादा लागू केल्या आहेत:

  • इनपुट डेटा क्वेरी 5000 वर्णांपर्यंत मर्यादित आहे.
  • आउटपुट डेटा स्कीमा 5000 वर्णांपर्यंत मर्यादित आहे.
  • आउटपुट डेटा पेलोड आणि Console.log आउटपुट एकत्रितपणे 50KB पर्यंत मर्यादित आहेत.
  • कोड 50000 वर्णांपेक्षा जास्त लांब असू शकत नाही.
  • एकूण एक्झिक्यूशन कालावधी 5 सेकंदांपर्यंत मर्यादित आहे.
  • मेमरीचा वापर 10MB पर्यंत मर्यादित आहे.

टेम्पलेट्स

नवीन ऑर्डर्समध्ये मोफत (100% सवलत असलेला) आयटम जोडा

आयटम स्टॉकमध्ये असताना हे टेम्पलेट नवीन ऑर्डर्समध्ये मोफत, सवलत असलेला आयटम जोडते. ते इन्व्हेंटरी तपासते, 100% सवलत लागू करते आणि ग्राहकाला सूचित न करता ऑर्डर अपडेट करते. हा वर्कफ्लो खालील परिस्थितींमध्ये ऑटोमेशन जोडण्यात मदत करू शकतो:

  • ग्राहकांच्या ऑर्डरमध्ये सरप्राईझ मोफत आयटम समाविष्ट करून त्यांचे समाधान वाढवा.
  • नवीन किंवा कमी-परिचित उत्पादने ऑर्डर्समध्ये मोफत सॅम्पल म्हणून जोडून त्यांची जाहिरात करा.
  • मोफत आयटम्सचे समावेश आणि सवलती स्वयंचलित करून जाहिराती सुव्यवस्थित करा.

टेम्पलेट पहा

निष्क्रिय रिटर्न्स रद्द करा

ठराविक कालावधीत रिफंड किंवा रिस्टॉक न केलेला रिटर्न आपोआप रद्द करा. टेम्पलेट पहा

Run code कृती वापरून उपसर्ग असलेल्या टॅगना उत्पादन मेटाफील्डमध्ये रूपांतरित करा

हा वर्कफ्लो “color:” सारख्या उपसर्गाने सुरू होणारे टॅग घेईल आणि त्यांना उत्पादन मेटाफील्ड सूचीमध्ये जोडेल. तो मेटाफील्ड सूचीमधील टॅग आणि विद्यमान आयटम्सचे विश्लेषण करण्यासाठी Run code कृती वापरतो. उत्पादन तयार केले जाते तेव्हा वर्कफ्लो चालतो, परंतु तो विद्यमान उत्पादनांवर मॅन्युअली चालवला जाऊ शकतो. टेम्पलेट पहा

ग्राहक जेव्हा उत्पादनाचे अनेक व्हेरिएंट ऑर्डर करतो तेव्हा सूचना पाठवा

ग्राहक जेव्हा एकाच उत्पादनाचे अनेक व्हेरिएंट ऑर्डर करतो तेव्हा ईमेल सूचना प्राप्त करा. टेम्पलेट पहा

ऑर्डरमध्ये बंडलचा समावेश असल्यास सूचना पाठवा

जेव्हा ऑर्डर तयार केली जाते तेव्हा हा वर्कफ्लो सुरू होतो आणि ऑर्डरमधील कोणतीही उत्पादने बंडलचा भाग म्हणून खरेदी केली गेली होती का हे तपासतो. आढळल्यास बंडलच्या तपशीलांसह अंतर्गत ईमेल पाठवला जातो. याव्यतिरिक्त तुम्ही हा वर्कफ्लो अशा कोणत्याही युझ केससाठी प्रारंभिक बिंदू म्हणून वापरू शकता ज्यामध्ये ऑर्डरमधील बंडलची उपस्थिती शोधण्याची आवश्यकता असते. टेम्पलेट पहा

संबंधित UTM मोहिमेसह ऑर्डर्स टॅग करा

कोणत्याही संबंधित UTM मोहिमांची नावे समाविष्ट असलेल्या ऑर्डर्सना टॅग जोडते. टेम्पलेट पहा