เรียกใช้โค ้ด
การดำเนินการรันโค้ดจะประมวลผล JavaScript คุณสามารถส่งข้อมูลจากขั้นตอนก่อนหน้านี้ในขั้นตอนการทำงานเป็นอินพุตไปยังการดำเนินการรันโค้ด และส่งคืนค่าที่จะใช้ในขั้นตอนถัดไปได้
ในหน้านี้
ช่อง
การดำเนินการเรียกใช้โค้ดจะมีฟิลด์ดังต่อไปนี้
ช่อง | คำอธิบาย |
---|---|
อินพุต | ต้องระบุ คิวรี GraphQL เพื่อใช้ข้อมูลจากขั้นตอนก่อนหน้าเป็นอินพุตไปยังการดำเนินการรันโค้ด |
เอาท์พุต | ต้องระบุ การแสดงข้อมูลที่จะส่งคืนตามการดำเนินการ ซึ่งกําหนดไว้ในภาษากำหนดสคีมา (SDL) ของ GraphQL |
รหัส | ต้องระบุ JavaScript ที่การดำเนินการรันโค้ดจะประมวลผล |
ข้อมูลอินพุต
คุณสามารถส่งข้อมูลอินพุตได้จากขั้นตอนที่เกิดขึ้นก่อนการดำเนินการรันโค้ด หากต้องการรวมข้อมูลนี้ คุณสามารถเขียนคิวรี GraphQL ในช่องอินพุตได้ ข้อมูลที่ส่งคืนจากคิวรีจะพร้อมใช้งานเป็นอาร์กิวเมนต์ input
กับฟังก์ชันที่ทำเครื่องหมาย export default
ซึ่ง จะถูกเรียกว่า main
ตามแบบแผน
คำค้นหาอินพุตเป็นคำค้นหาสำหรับข้อมูลสภาพแวดล้อม Flow ไม่ใช่คำค้นหาของ Shopify Admin API ดังนั้น คุณจะไม่สามารถแทรกคำค้นหา Shopify ไว้ในข้อมูลอินพุตได้ นอกจากนี้ Flow จะจัดการกับ edges
และ nodes
ในคิวรี ดังนั้นคุณจึงไม่จำเป็นต้องเพิ่มสิ่งเหล่านั้นหรือไวยากรณ์การแบ่งหน้าอื่นๆ ไปยังคิวรีของคุณ
ตัวอย่างการอินพุตที่ได้รับหมายเหตุคำสั่งซื้อและชื่อของสินค้าเฉพาะรายการ มีลักษณะดังนี้
ข้อมูลนี้จะถูกแปลงเป็นตัวแปร input
ที่สามารถใช้ในโค้ดได้ ดังนี้
อินพุตสามารถลดโครงสร้างใน Function Signature ได้ ดังนี้
เมตาฟิลด์
หากต้องการเข้าถึงค่าเมตาฟิลด์เดียวในการเรียกใช้โค้ด คุณต้องเพิ่มเมตาฟิลด์ไปยังข้อมูลสภาพแวดล้อมของ Flow ก่อน การดำเนินการนี้จะเสร็จสิ้นในการดำเนินการหรือเงื่อนไขอื่นๆ นอกเหนือจากการเรียกใช้โค้ด ตัวอย่างเช่น คุณสามารถเพิ่มการการดำเนินการเอาท์พุตบันทึก จากนั้นปฏิบัติตามคําแนะนําเพื่อเพิ ่มเมตาฟิลด์
หลังจากที่เพิ่มเมตาฟิลด์ไปยังสภาพแวดล้อมของขั้นตอนการทำงานแล้ว คุณสามารถเข้าถึงเมตาฟิลด์นั้นในการเรียกใช้โค้ดได้ ตัวอย่างเช่น สมมุติว่าคุณได้เพิ่มเมตาฟิลด์ของคำสั่งซื้อด้วยนามแฝงของ giftMessage
จากนั้นคุณสามารถเข้าถึงข้อมูลนั้นในข้อความค้นหาข้อมูลได้:
ข้อมูลเอาต์พุต
การดำเนินการเรียกใช้โค้ดสามารถส่งคืนผลลัพธ์เป็นข้อมูลที่ปรับแต่งเองได้ หากต้องการกําหนดประเภทของข้อมูลที่โค้ดจะส่งคืนผลลัพธ์ ให้ใช้ช่องเอาท์พุตและ SDL (Schema Definition Language) ของ GraphQL โดยประเภทเอาต์พุตที่รองรับได้แก่ String
, Int
, Float
, Boolean
และ ID
ซึ่งวิธีระบุรายการ ข้อมูลแบบกำหนดเอง และช่องข้อมูลที่ต้องระบุจะเป็นไปตามข้อกำหนดของ SDL
ตัวอย่างเช่น หากต้องการส่งคืนสตริงที่ชื่อ giftMessage
และตัวเลขที่ชื่อ totalGifts
ให้ดำเนินการดังนี้
ความคิดเห็นเป็นส่วนที่ไม่บังคับ แต่จะถูกนำไปใช้เพื่ออธิบายข้อมูลใน UI Flow หากต้องการเอาท์พุตข้อมูลนี้ในโค้ด JavaScript ให้ส่งคืนออบเจ็กต์ที่ตรงกับประเภท ให้ดำเนินการดังนี้
นอกจากนี้คุณยังสามารถกําหนดประเภทแบบกําหนดเองเพื่อส่งคืนข้อมูลที่ซับซ้อนมากขึ้นได้ ตัวอย่างเช่น หากต้องการส่งคืนประเภทที่ชื่อ Gift
ซึ่งมีสตริงที่ชื่อ message
และหมายเลขที่ชื่อ amount
ให้ดำเนินการดังนี้
หากต้องการเข้าถึงข้อมูลนี้ตามขั้นตอนการดำเนินการข้างต้น ให้ใช้ตัวแปรที่มีชื่อว่า Run code ซึ่งจะจัดประเภทตามสคีมา Output
ที่คุณกําหนดในการกำหนดค่าการดำเนินการรันโค้ด โดยคุณสามารถใช้ตัวแปรนี้ได้ทั้งในเงื่อนไขและการดำเนินการ
Console.log
คุณสามารถใช้ console.log
เพื่อแสดงผลข้อมูลเอาต์พุตไปยังบันทึกการเริ่มใช้งานขั้นตอนของ Flow เพื่อวัตถุประสงค์ในการแก้ไขปัญหา เอาต์พุตจะปรากฏในบันทึกการเรียกใช้ของขั้นตอนงาน ตัวอย่างข้อมูลถูกต้อง ดังนี้:
คุณไม่สามารถใช้ console.info
, console.error
หรือฟังก์ชันอื่นๆ ในการเรียกใช้การโค้ด
ตัวอย่างเช่น
สามารถดูตัวอย่างการดำเนินการเรียกใช้งานโค้ดได้ที่พื้นที่จัดเก็บตัวอย่าง Flow
ข้อจํากัด
การดำเนินการรันโค้ดมีข้อจํากัดดังต่อไปนี้
- การดำเนินการเรียกใช้โค้ดรองรับ ECMA2020 JavaScript แต่จะไม่รองรั บ NodeJS หรือ CommonJS API ตลอดจนโมดูลที่นำเข้า
- โค้ดของคุณไม่สามารถดำเนินการเรียก http (
fetch
) ได้ - ไม่สามารถใช้ฟังก์ชันแบบสุ่มและฟังก์ชันตามเวลาได้ ส่วนข้อมูลวันที่ เช่น
scheduledAt
หรือcreatedAt
สามารถส่งผ่านในรูปแบบอินพุตได้ - Console.log ไม่ได้เข้าสู่คอนโซลของเบราว์เซอร์
- คุณไม่สามารถเพิ่มนามแฝงของเมตาฟิลด์ได้โดยตรงในการเรียกใช้โค้ด ดูส่วนเมตาฟิลด์สำหรับวิธีการบรรลุเป้าหมายนี้
นอกจากนี้ยังมีการบังคับใช้ขีดจํากัดต่อไปนี้ด้วย
- จํากัดคำค้นหาข้อมูลอินพุตไม่เกิน 5,000 อักขระ
- จํากัดสคีมาข้อมูลเอาท์พุตไม่เกิน 5,000 อักขระ
- เอาต์พุตของ Payload และ Console.log เอาต์พุตจะถูกจํากัดที่ 500000000000000000000000000000000000000000000000
- โค้ดต้องมีความยาวไม่เกิน 50,000 อักขระ
- จำกัดระยะเวลาการเรียกใช้งานทั้งหมดไม่เกิน 5 วินาที
- จำกัดการใช้หน่วยความจําไม่เกิน 10MB
แผนงาน
ทีม Flow วางแผนที่จะทยอยเพิ่มคุณสมบัติการดำเนินการรันโค้ด โดยตารางต่อไปนี้สรุปการปรับปรุงที่วางแผนไว้และวันที่คาดว่าจะดำเนินการเสร็จสิ้น
การปรับปรุง | คำอธิบาย | ระยะเวลาจัดส่งโดยประมาณ |
---|---|---|
การบันทึกข้อมูล | ใช้ `console.log` เพื่อเอาท์พุตข้อมูลไปยังบันทึก Run เพื่อวัตถุประสงค์ในการแก้ไขปัญหา | เสร็จแล้ว |
การเรียก API ภายนอก | ใช้การดึงข้อมูลของ JavaScript เพื่อเรียก API | ไตรมาสที่ 1 ปี 2025 |
เทมเพลต
เพิ่มรายการสินค้าฟรี (ลดราคา 100%) ไปยังคำสั่งซื้อใหม่
เทมเพลตนี้จะเพิ่มรายการสินค้าฟรีและที่มีส่ว นลดไปยังคำสั่งซื้อใหม่หากมีสินค้านั้นในสต็อก โดยระบบจะตรวจสอบสินค้าคงคลัง ใช้ส่วนลด 100% และอัปเดตคำสั่งซื้อแบบไม่แจ้งให้ลูกค้าทราบ การดำเนินการอัตโนมัตินี้จะเป็นประโยชน์ในการ (1) เพิ่มความพึงพอใจให้กับลูกค้าด้วยการเพิ่มรายการสินค้าฟรีสุดเซอร์ไพรส์ลงในคำสั่งซื้อ (2) โปรโมตสินค้าใหม่หรือสินค้าที่ไม่ค่อยเป็นที่รู้จักด้วยการเพิ่มเป็นสินค้าตัวอย่างฟรีในคำสั่งซื้อ หรือ (3) เพิ่มประสิทธิภาพให้กับโปรโมชันด้วยการเพิ่มและลดราคาสินค้าฟรีโดยอัตโนมัติ ดูเทมเพลต
ยกเลิกการคืนสินค้าที่ไม่ได้ใช้งาน
ยกเลิกการคืนสินค้าอัตโนมัติหากไม่ได้รับการคืนเงินหรือคืนสินค้ากลับสต็อกภายในระยะเวลาที่กำหนด ดูเทมเพลต
คอนเวิร์ทแท็กที่มีคำนําหน้าเมตาฟิลด์สินค้า โดยใช้การดำเนินการ "เรียกใช้งานโค้ด"
ขั้นตอนการทำงานนี้จะใช้แท็กที่เริ่มต้นด้วยคำนำหน้า เช่น 'สี:' และเพิ่มแท็กเหล่านี้ลงในรายการเมตาฟิลด์ของสินค้า ซึ่งจะใช้การดำเนินการรันโค้ดเพื่อวิเคราะห์แท็กและรายการที่มีอยู่ในรายการเมตาฟิลด์ ขั้นตอนการทำงานจะทำงานเมื่อมีการสร้างสินค้า แต่สามารถเรียกใช้ด้วยตนเองบนสินค้าที่มีอยู่ได้ ดูเทมเพลต
ส่งการแจ้งเตือนเมื่อลูกค้าสั่งซื้อตัวเลือกสินค้าหลายรายการในสินค้าชิ้นเดียวกัน
รับการแจ้งเตือนทางอีเมลเมื่อลูกค้าสั่งซื้อตัวเลือกสินค้าหลายรายการในสินค้าชิ้นเดียวกัน ดูเทมเพลต
ส่งการแจ้งเตือนเมื่อคำสั่งซื้อมีชุดสินค้า
ขั้นตอนการทำงานนี้จะเริ่มต้นเมื่อมีการสร้างคำสั่งซื้อและตรวจสอบว่ามีสินค้าใดที่ซื้อโดยเป็นส่วนหนึ่งของชุดสินค้าหรือไม่ หากพบ ระบบจะส่งอีเมลภายในพร้อมรายละเอียดชุดสินค้า นอกจากนี้ คุณยังสามารถใช้ขั้นตอนการทำงานนี้เป็นจุดเริ่มต้นของกรณีการใช้งานใดๆ ที่ต้องตรวจหาชุดสินค้าภายในคำสั่งซื้อได้อีกด้วย ดูเทมเพลต
แท็กคำสั่งซื้อด้วยแคมเปญ UTM ที่เกี่ยวข้อง
เพิ่มแท็กไปยังสินค้าที่มีชื่อของแคมเปญ UTM ที่เกี่ยวข้อง ดูเทมเพลต