ส่งคำขอ Admin API

การส่งคำขอ Admin API จะส่งการเปลี่ยนแปลงไปยัง Shopify GraphQL Admin API ด้วยการทำเช่นนั้น ทำให้คุณสามารถดำเนินการได้แทบทุกอย่างที่ API รับรองโดยใช้ Flow

ช่อง

การดำเนินการส่งคำขอ Admin API จะมีช่องข้อมูลดังต่อไปนี้

ช่องที่ใช้ในการดำเนินการส่งคำขอ Admin API
ช่อง คำอธิบาย
การเปลี่ยนแปลง ต้องระบุ การเปลี่ยน Shopify GraphQL Admin ที่คุณต้องการเรียกใช้ การเปลี่ยนคือ API ที่ดำเนินการหรืออัปเดตข้อมูล
อินพุตการเปลี่ยน ต้องระบุ ข้อมูล (ใน JSON) ที่คุณต้องส่งเป็นส่วนหนึ่งของคำขอการเปลี่ยนของคุณ การเปลี่ยนแต่ละครั้งต้องมีชุดข้อมูลที่แตกต่างกันซึ่งบันทึกไว้ในลิงก์สำหรับแต่ละการเปลี่ยน หากต้องการสร้าง JSON ที่จําเป็น คุณสามารถใช้ Liquid หรือดำเนินการรันโค้ดได้

ทริกเกอร์

การส่งคำขอ Admin API สามารถใช้ได้ในทุกขั้นตอนการใช้งาน รวมถึงทุกทริกเกอร์ใด ตราบใดที่ขั้นตอนการใช้งานยังให้ข้อมูลที่จําเป็นในการสร้างอินพุตการเปลี่ยน

ตัวอย่าง

ตัวอย่างที่ 1: อัปเดตเทมเพลตที่ใช้กับสินค้า

ในตัวอย่างนี้ เราจะใช้การดำเนินการส่งคำขอ Admin API เพื่อเรียกใช้การเปลี่ยน productUpdate เพื่ออัปเดตเทมเพลตที่ใช้กับสินค้า

ต้องกรอกข้อมูลในช่อง id และต้องมี GID ของสินค้าที่ถูกต้อง ในที่นี้ เราจะกำหนดโดยใช้ตัวแปร Liquid {{product.id}} ตัวอย่างนี้คือกรณีที่ขั้นตอนการทำงานของคุณมีทริกเกอร์ที่จะระบุออบเจ็กต์สินค้า

ชื่อ templateSuffix คือชื่อของเทมเพลตที่คุณต้องการใช้กับสินค้า ตัวอย่างเช่น หากคุณต้องการใช้เทมเพลต pre-order คุณต้องตั้งค่า templateSuffix เป็น pre-order

{
  "input": {
    "templateSuffix": "pre-order",
    "id": "{{product.id}}"
  }
}

ตัวอย่างที่ 2: อัปเดตสถานะการยกเว้นภาษีของลูกค้า

ในตัวอย่างนี้ เราจะใช้การดำเนินการส่งคำขอ Admin API เพื่อเรียกใช้การเปลี่ยน customerUpdate เพื่ออัปเดตสถานะการยกเว้นภาษีของลูกค้า

ต้องกรอกข้อมูลในช่อง id และต้องมี GID ของลูกค้าที่ถูกต้อง ในที่นี้ เราจะกำหนดโดยใช้ตัวแปร Liquid {{order.customer.id}} ตัวอย่างนี้คือกรณีที่ขั้นตอนการทำงานของคุณมีทริกเกอร์ที่จะระบุออบเจ็กต์คำสั่งซื้อ

ช่อง taxExempt คือบูลีนที่จะระบุว่าลูกค้าได้รับการยกเว้นภาษีหรือไม่ ในตัวอย่างนี้ เราจะกำหนดเป็น true

{
  "input": {
    "id": "{{order.customer.id}}",
    "taxExempt": true
  }
}

ตัวอย่างที่ 3: อัปเดตตำแหน่งที่ตั้งของลูกค้า

ในตัวอย่างนี้ เราจะใช้การดำเนินการส่งคำขอ Admin API เพื่อเรียกใช้การเปลี่ยน customerUpdate เพื่ออัปเดตตำแหน่งที่ตั้งของลูกค้า

ต้องกรอกข้อมูลในช่อง id และต้องมี GID ของลูกค้าที่ถูกต้อง ในที่นี้ เราจะกำหนดโดยใช้ตัวแปร Liquid {{customer.id}} ตัวอย่างนี้คือกรณีที่ขั้นตอนการทำงานของคุณมีทริกเกอร์ที่จะระบุออบเจ็กต์ลูกค้า

ช่อง locale คือสตริงที่แสดงถึงตำแหน่งที่ตั้งของลูกค้า ในตัวอย่างนี้ เราจะกำหนดเป็น en

{
  "input": {
    "id": "{{customer.id}}",
    "locale": "en"
  }
}

เคล็ดลับสำหรับ Liquid

Flow รองรับ Liquid แบบ json ที่จะเป็นประโยชน์ในการสร้างอินพุต ตัวอย่างต่อไปนี้ทั้งหมดใช้การเปลี่ยน customerUpdate และเป็นกรณีที่ขั้นตอนการทำงานของคุณมีทริกเกอร์ที่จะระบุอ็อบเจกต์ลูกค้า

การใช้งานกับสตริง

ตัวอย่างต่อไปนี้จะอัปเดตหมายเหตุเกี่ยวกับลูกค้า

{% assign revisedNote = customer.note | append: " Hello from Flow!" %}

{
  "input": {
    "id": "{{ customer.id }}",
    "note": {{ revisedNote | json }},
  }
}

ตัวกรอง json จะหลีกเลี่ยงสตริงเพื่อให้แน่ใจว่า JSON ถูกต้อง ซึ่งจะส่งผลให้เกิด JSON ต่อไปนี้หลังจากดำเนินการขั้นตอนการทำงาน

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "note": "Had a \"great experience\" with their latest order. Hello from Flow!",
  }
}

การใช้งานกับอาร์เรย์

ตัวอย่างอาร์เรย์

ตัวกรอง json เปลี่ยนอาร์เรย์ Liquid เป็นอาร์เรย์ JSON ตัวอย่างต่อไปนี้จะสร้างอาร์เรย์ JSON เมื่อมาพร้อมกับอาร์เรย์ Liquid

{% assign tags = "tag1,tag2,tag3" | split: "," %}

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": {{ tags | json }}
  }
}

ซึ่งจะส่งผลให้เกิด JSON ต่อไปนี้หลังจากดำเนินการขั้นตอนการทำงาน

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": ["tag1","tag2","tag3"]
  }
}

ตัวอย่าง For Loop

ตัวอย่างต่อไปนี้ใช้ลูปเพื่อสร้างองค์ประกอบของอาร์เรย์โดยคั่นด้วยเครื่องหมายจุลภาค

{% assign tags = "tag1,tag2,tag3" | split: "," %}

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": [
      {% for tag in tags %}
        "{{ tag }}"{% unless forloop.last %},{% endunless %}
      {% endfor %}
    ]
  }
}

เมื่อเรียกใช้ขั้นตอนการทำงาน การดำเนินการนี้จะทำให้เกิด JSON ดังต่อไปนี้

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": [
        "tag1",
        "tag2",
        "tag3"
    ]
  }
}

ตัวอย่าง Map

ตัวกรอง map สามารถใช้เพื่อรับอาร์เรย์ของคุณสมบัติเฉพาะจากอาร์เรย์ของอ็อบเจกต์ได้ ในตัวอย่างต่อไปนี้ อาร์เรย์ของคุณสมบัติ city จะแยกออกจากอาร์เรย์ของที่อยู่ลูกค้า

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": {{ customer.addresses | map: "city" | json }}
  }
}

ซึ่งจะส่งผลให้เกิด JSON ต่อไปนี้หลังจากดำเนินการขั้นตอนการทำงาน

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": ["Ottawa","Toronto"]
  }
}

ข้อจํากัด

การส่งคำขอ Admin API มีข้อจํากัดดังต่อไปนี้

  • การดำเนินการจะไม่ส่งคืนข้อมูลไปยังสภาพแวดล้อม Flow อันเป็นผลจากเปลี่ยน
  • การดำเนินการไม่รองรับการค้นหา GraphQL รองรับเพียงการเปลี่ยน
  • การดำเนินการไม่รองรับการเปลี่ยนแบบอะซิงโครนัสหรือการเปลี่ยนแบบที่ส่งคืนประเภท Job
  • การดำเนินการนี้ไม่รองรับการเปลี่ยนแปลงที่เฉพาะเจาะจงกับแอปบางรายการ ซึ่งรวมถึงการเปลี่ยนแปลงการสมัครใช้งานและส่วนลด
  • การดำเนินการจะแสดงรายการของ Mutations และ Mutation inputs จากเวอร์ชัน Shopify API เดียว ซึ่งขณะนี้คือเวอร์ชัน 2024-01
  • เมื่ออัปเกรดเวอร์ชัน API และมีการเปลี่ยนแปลงครั้งสำคัญ อาจทําให้การดำเนินการนี้ไม่สำเร็จได้หากคุณใช้ช่องนั้น

พร้อมเริ่มต้นการขายด้วย Shopify แล้วหรือยัง

ทดลองใช้งานฟรี