కోడ్‌ను రన్ చేయండి

కోడ్‌ను రన్ చేయండి చర్య JavaScriptను అమలు చేస్తుంది. మీరు వర్క్‌ఫ్లోలోని మునుపటి దశల నుండి డేటాను కోడ్‌ను రన్ చేయండి చర్యకు ఇన్‌పుట్‌గా పంపవచ్చు మరియు తదుపరి దశల్లో ఉపయోగించాల్సిన విలువల రిటర్న్‌ను పొందవచ్చు.

ఫీల్డ్‌లు

కోడ్‌ను రన్ చేయండి చర్యలో కింది ఫీల్డ్‌లు ఉంటాయి.

కోడ్‌ను రన్ చేయండి చర్యలో ఉపయోగించిన ఫీల్డ్‌లు.
ఫీల్డ్వివరణ
ఇన్‌పుట్అవసరం. కోడ్‌ను రన్ చేయండి చర్యకు ఇన్‌పుట్‌గా మునుపటి దశల నుండి డేటాను ఉపయోగించడానికి ఒక GraphQL క్వెరీ.
అవుట్‌పుట్అవసరం. GraphQL స్కీమా డెఫినిషన్ లాంగ్వేజ్ (SDL)లో నిర్వచించబడిన, చర్య ద్వారా తిరిగి ఇవ్వబడే డేటా యొక్క ప్రాతినిధ్యం.
కోడ్అవసరం. కోడ్‌ను రన్ చేయండి చర్య అమలు చేసే JavaScript.

ఇన్‌పుట్ డేటా

ఇన్‌పుట్ డేటాను కోడ్‌ను రన్ చేయండి చర్యకు ముందు జరిగే దశల నుండి పంపవచ్చు. ఈ డేటాను చేర్చడానికి, మీరు ఇన్‌పుట్ ఫీల్డ్‌లో ఒక GraphQL క్వెరీని రాయవచ్చు. క్వెరీ నుండి తిరిగి వచ్చిన డేటా అనేది సంప్రదాయం ప్రకారం main అని పిలువబడే, export defaultతో గుర్తు పెట్టబడిన ఫంక్షన్‌కు input ఆర్గుమెంట్‌గా అందుబాటులో ఉంటుంది.

ఇన్‌పుట్ క్వెరీ అనేది Flow ఎన్విరాన్‌మెంట్ డేటా కోసం చేసే క్వెరీ, ఇది Shopify Admin API కోసం చేసే క్వెరీ కాదు. కాబట్టి, ఇన్‌పుట్ డేటాలో మీరు Shopify క్వెరీని చొప్పించలేరు. అదనంగా, క్వెరీలో edges, nodesను Flow నిర్వహిస్తుంది, కాబట్టి మీ క్వెరీలో మీరు వాటిని లేదా ఇతర పేజింగ్ సింటాక్స్‌ను జోడించాల్సిన అవసరం లేదు.

ఆర్డర్ గమనికను అలాగే లైన్ ఐటెమ్ టైటిల్‌ను పొందే ఇన్‌పుట్ ఉదాహరణ:

{
  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
}

మెటాఫీల్డ్‌లు

కోడ్‌ను రన్ చేయండి చర్యలో సింగిల్ మెటాఫీల్డ్ విలువల యాక్సెస్ కోసం, మీరు ముందుగా Flow ఎన్విరాన్‌మెంట్ డేటాకు ఆ మెటాఫీల్డ్‌ను జోడించాలి. కోడ్‌ను రన్ చేయండి చర్యలో కాకుండా ఇది మరే ఇతర చర్య లేదా కండిషన్‌లో అయినా చేయబడవచ్చు. ఉదాహరణకు, మీరు లాగ్ అవుట్‌పుట్ చర్యను జోడించవచ్చు, ఆ తర్వాత మెటాఫీల్డ్‌ను జోడించడానికి సూచనలను ఫాలో అవ్వవచ్చు.

వర్క్‌ఫ్లో పర్యావరణానికి మెటాఫీల్డ్ జోడించబడిన తర్వాత, మీరు దాన్ని కోడ్‌ను రన్ చేయండిలో యాక్సెస్ చేయవచ్చు. ఉదాహరణకు, మీరు giftMessage అనే అలియాస్ పేరుతో ఒక ఆర్డర్ మెటాఫీల్డ్‌ను జోడించారని అనుకుందాం. తర్వాత మీరు దీన్ని మీ ఇన్‌పుట్ క్వెరీలో యాక్సెస్ చేయవచ్చు:

{
  order {
    giftMessage {
      value
    }
  }
}

అవుట్‌పుట్ డేటా

కోడ్‌ను రన్ చేయండి యాక్షన్ కస్టమ్ డేటాను రిటర్న్ చేయగలదు. కోడ్ రిటర్న్ చేసే డేటా రకాన్ని నిర్వచించడానికి, Output ఫీల్డ్ మరియు 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,
  };
}

మీరు మరింత సంక్లిష్టమైన డేటాను రిటర్న్ చేయడానికి కస్టమ్ రకాన్ని కూడా నిర్వచించవచ్చు. ఉదాహరణకు, message అనే స్ట్రింగ్ మరియు amount అనే నంబర్‌ను కలిగి ఉండే Gift అనే రకాన్ని రిటర్న్ చేయడానికి:

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 అనే వేరియబుల్‌ను ఉపయోగించండి, ఇది కోడ్‌ను రన్ చేయండి యాక్షన్ కాన్ఫిగరేషన్‌లో మీరు నిర్వచించే 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,
  };
}

మీరు కోడ్‌ను రన్ చేయండి యాక్షన్‌లో console.info, console.error లేదా ఇతర ఫంక్షన్‌లను ఉపయోగించలేరు.

ఉదాహరణ

కోడ్ యాక్షన్ కోసం ఉదాహరణలను Flow ఉదాహరణల రిపోజిటరీలో కనుగొనవచ్చు.

పరిమితులు

కోడ్‌ను రన్ చేయండి యాక్షన్‌కు కింది పరిమితులు ఉన్నాయి:

  • కోడ్‌ను రన్ చేయండి యాక్షన్ ECMA2020 JavaScriptకు మద్దతు ఇస్తుంది. ఇది NodeJS లేదా CommonJS APIలకు లేదా మాడ్యూల్స్ ఇంపోర్టింగ్ చేయడం కోసం మద్దతు ఇవ్వదు.
  • మీ కోడ్ HTTP కాల్స్ (fetch) చేయలేదు.
  • ర్యాండమ్ మరియు క్లాక్ ఆధారిత ఫంక్షన్‌లను ఉపయోగించలేరు. scheduledAt లేదా createdAt వంటి తేదీ డేటాను ఇన్‌పుట్‌గా పాస్ చేయవచ్చు.
  • Console.log బ్రౌజర్ కన్సోల్‌లో లాగ్ చేయదు.
  • పేలోడ్ పరిమాణాన్ని ఆదా చేయడానికి, అవుట్‌పుట్ డేటా పేలోడ్ అనేది తదుపరి దశలలో ఉపయోగించే వేరియబుల్స్‌ను మాత్రమే రిటర్న్ చేస్తుంది.
  • మీరు కోడ్‌ను రన్ చేయండి యాక్షన్‌లో నేరుగా మెటాఫీల్డ్ అలియాస్ను జోడించలేరు. దీన్ని సాధించడానికి, ఈ పేజీలోని మెటాఫీల్డ్‌ల విభాగాన్ని రివ్యూ చేయండి.

అదనంగా, కింది పరిమితులు అమలులో ఉన్నాయి:

  • ఇన్‌పుట్ డేటా క్వెరీ 5000 అక్షరాలకు పరిమితం చేయబడింది.
  • అవుట్‌పుట్ డేటా స్కీమా 5000 అక్షరాలకు పరిమితం చేయబడింది.
  • అవుట్‌పుట్ డేటా పేలోడ్ మరియు Console.log అవుట్‌పుట్ కలిపి 50KBకు పరిమితం చేయబడ్డాయి.
  • కోడ్ 50000 అక్షరాల కంటే ఎక్కువ ఉండకూడదు.
  • మొత్తం ఎగ్జిక్యూషన్ వ్యవధి 5 సెకన్లకు పరిమితం చేయబడింది.
  • మెమరీ వినియోగం 10MBకి పరిమితం చేయబడింది.

టెంప్లేట్‌లు

కొత్త ఆర్డర్‌లకు ఉచిత (100% తగ్గింపుతో) ఐటెమ్‌ను జోడించండి

ఐటెమ్ స్టాక్‌లో ఉన్నప్పుడు ఈ టెంప్లేట్ కొత్త ఆర్డర్‌లకు తగ్గింపుతో కూడిన ఉచిత ఐటెమ్‌ను జోడిస్తుంది. ఇది ఇన్వెంటరీని తనిఖీ చేస్తుంది, 100% తగ్గింపును వర్తింపజేస్తుంది మరియు కస్టమర్‌కు తెలియజేయకుండానే ఆర్డర్‌ను అప్‌డేట్ చేస్తుంది. కింది సందర్భాలలో ఆటోమేషన్‌ను జోడించడానికి ఈ వర్క్‌ఫ్లో సహాయపడుతుంది:

  • కస్టమర్‌ల ఆర్డర్‌లో ఒక ఉచిత ఐటెమ్‌ను సర్‌ప్రైజ్‌గా చేర్చడం ద్వారా వారి సంతృప్తిని పెంచండి.
  • ఆర్డర్‌లలో కొత్త లేదా అంతగా తెలియని ఉత్పత్తులను ఉచిత శాంపిల్స్‌గా జోడించడం ద్వారా వాటిని ప్రమోట్ చేయండి.
  • ఉచిత ఐటెమ్‌లను చేర్చడం మరియు తగ్గింపులను ఆటోమేట్ చేయడం ద్వారా ప్రమోషన్‌లను క్రమబద్ధీకరించండి.

టెంప్లేట్‌ను చూడండి

నిష్క్రియ రిటర్న్‌లను రద్దు చేయండి

నిర్ణీత వ్యవధిలోపు రీఫండ్ చేయని లేదా రీస్టాక్ చేయని రిటర్న్‌ను ఆటోమేటిక్‌గా రద్దు చేయండి. టెంప్లేట్‌ను చూడండి

కోడ్‌ను రన్ చేయండి యాక్షన్‌ని ఉపయోగించి ఉపసర్గతో కూడిన ట్యాగ్‌లను ఉత్పత్తి మెటాఫీల్డ్‌గా మార్చండి

ఈ వర్క్‌ఫ్లో 'color:' వంటి ఉపసర్గతో ప్రారంభమయ్యే ట్యాగ్‌లను తీసుకుంటుంది మరియు వాటిని ఉత్పత్తి మెటాఫీల్డ్ లిస్ట్‌కు జోడిస్తుంది. ఇది మెటాఫీల్డ్ లిస్ట్‌లోని ట్యాగ్‌లు మరియు ఇప్పటికే ఉన్న ఐటెమ్‌లను పార్స్ చేయడానికి కోడ్‌ను రన్ చేయండి యాక్షన్‌ని ఉపయోగిస్తుంది. ఒక ఉత్పత్తిని సృష్టించినప్పుడు ఈ వర్క్‌ఫ్లో రన్ అవుతుంది, కానీ ముందుగా ఉన్న ఉత్పత్తులపై మాన్యువల్‌గా రన్ చేయవచ్చు. టెంప్లేట్‌ను చూడండి

కస్టమర్ ఒకే ఉత్పత్తికి చెందిన బహుళ వేరియంట్‌లను ఆర్డర్ చేసినప్పుడు నోటిఫికేషన్ పంపండి

కస్టమర్ ఒకే ఉత్పత్తికి చెందిన బహుళ వేరియంట్‌లను ఆర్డర్ చేసినప్పుడు ఇమెయిల్ నోటిఫికేషన్‌ను పొందండి. టెంప్లేట్‌ను చూడండి

ఆర్డర్‌లో బండిల్ ఉన్నప్పుడు నోటిఫికేషన్‌ను పంపండి

ఆర్డర్‌ను సృష్టించినప్పుడు ఈ వర్క్‌ఫ్లో ప్రారంభమవుతుంది మరియు ఆర్డర్‌లోని ఏవైనా ఉత్పత్తులు బండిల్‌లో భాగంగా కొనుగోలు చేయబడ్డాయో లేదో తనిఖీ చేస్తుంది. అలా ఉన్నట్లయితే, బండిల్ వివరాలతో కూడిన అంతర్గత ఇమెయిల్ పంపబడుతుంది. అదనంగా, ఆర్డర్‌లో బండిల్ ఉందో లేదో గుర్తించాల్సిన ఏదైనా యూజ్ కేసు కోసం మీరు ఈ వర్క్‌ఫ్లోను ప్రారంభ బిందువుగా ఉపయోగించవచ్చు. టెంప్లేట్‌ను చూడండి

అనుబంధిత UTM క్యాంపెయిన్‌లతో ఆర్డర్‌లను ట్యాగ్ చేయండి

ఏదైనా అనుబంధిత UTM క్యాంపెయిన్‌ల పేర్లను కలిగి ఉన్న ఆర్డర్‌లకు ట్యాగ్‌లను జోడిస్తుంది. టెంప్లేట్‌ను చూడండి