ส่งคำขอ Admin API

การดำเนินการ ส่งคำขอ Admin API สามารถใช้คำสั่งเปลี่ยนแปลงข้อมูลส่วนใหญ่ใน GraphQL Admin 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 รองรับตัวกรอง json ของ Liquid ซึ่งมีประโยชน์ในการสร้างข้อมูลอินพุต ตัวอย่างต่อไปนี้ทั้งหมดจะใช้คำสั่งเปลี่ยนแปลงข้อมูล 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

ตัวอย่างต่อไปนี้ใช้ 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 มีข้อจำกัดดังต่อไปนี้

  • การดำเนินการจะแสดงรายการ Mutations และ Mutation inputs จาก Admin API เวอร์ชันที่ Flow ใช้งาน
  • เมื่อมีการเผยแพร่ API เวอร์ชันใหม่ การดำเนินการนี้อาจล้มเหลวหากใช้คำสั่งเปลี่ยนแปลงข้อมูลหรือช่องข้อมูลที่มีการเปลี่ยนแปลงหรือเลิกใช้งานแล้ว
  • การดำเนินการไม่รองรับการสืบค้นข้อมูล GraphQL แต่รองรับเฉพาะคำสั่งเปลี่ยนแปลงข้อมูลเท่านั้น
  • การดำเนินการไม่รองรับคำสั่งเปลี่ยนแปลงข้อมูลที่เลิกใช้งานไปแล้ว
  • การดำเนินการไม่รองรับคำสั่งเปลี่ยนแปลงข้อมูลบางคำสั่งที่ใช้เฉพาะกับบางแอป ซึ่งรวมถึงคำสั่งเปลี่ยนแปลงข้อมูลบางส่วนที่เกี่ยวกับการสมัครใช้งาน กิจกรรมการตลาด และส่วนลด
  • การดำเนินการไม่รองรับคำสั่งเปลี่ยนแปลงข้อมูลแบบอะซิงโครนัสหรือคำสั่งเปลี่ยนแปลงข้อมูลที่ส่งคืนประเภท Job
  • การดำเนินการไม่รองรับคำสั่งเปลี่ยนแปลงข้อมูลที่ไม่ได้ใช้อินเทอร์เฟซ Node

เทมเพลต

เพิ่มรายการฟรี (ส่วนลด 100%) ไปยังคำสั่งซื้อใหม่

เทมเพลตนี้จะเพิ่มรายการลดราคาให้ฟรีไปยังคำสั่งซื้อใหม่หากมีสินค้าในสต็อก โดยจะตรวจสอบสินค้าคงคลัง ใช้ส่วนลด 100% และอัปเดตคำสั่งซื้อโดยไม่แจ้งเตือนลูกค้า การทำงานอัตโนมัตินี้จะเป็นประโยชน์ในกรณีต่อไปนี้ (1) เพื่อเพิ่มความพึงพอใจให้ลูกค้าโดยการเพิ่มรายการฟรีที่ไม่ได้แจ้งล่วงหน้าในคำสั่งซื้อของพวกเขา (2) เพื่อโปรโมตสินค้าใหม่หรือสินค้าที่ไม่เป็นที่รู้จักโดยการเพิ่มเป็นสินค้าตัวอย่างฟรีในคำสั่งซื้อ หรือ (3) เพื่อปรับปรุงโปรโมชันโดยการรวมและลดราคาสินค้าฟรีโดยอัตโนมัติ ดูเทมเพลต

อนุญาตการสั่งซื้อสำหรับบริษัทที่สร้างขึ้นโดยคำขอสร้างบัญชีบริษัท

มอบสิทธิ์อนุญาตในการสั่งซื้อเมื่อมีการสร้างบริษัทจากคำขอสร้างบัญชีบริษัท ดูเทมเพลต

เปลี่ยนเทมเพลตสินค้าเมื่อตัวเลือกสินค้าหมดสต็อกหรือกลับมามีในสต็อก

อัปเดตเทมเพลตสินค้าตามสินค้าคงคลังของตัวเลือกสินค้า เวิร์กโฟลว์นี้จะให้คุณสลับเทมเพลตระหว่างสถานะมีสินค้าในสต็อก (เทมเพลตเริ่มต้นของร้านค้า) สินค้าหมดสต็อก และเมื่อตัวเลือกสินค้าตั้งแต่หนึ่งรายการขึ้นไปหมดสต็อก ดูเทมเพลต

จัดการรายการสินค้าดิจิทัลในคำสั่งซื้อ

จัดการรายการสินค้าที่ไม่จำเป็นต้องมีการจัดส่งจริง เช่น สินค้าดิจิทัล หรือรายการสินค้าที่ตรงกับรายการ SKU เวิร์กโฟลว์นี้จะรันหนึ่งครั้งสำหรับตำแหน่งที่ตั้งที่จัดการคำสั่งซื้อแต่ละแห่ง (คำสั่งซื้อที่ต้องจัดการ) สำหรับคำสั่งซื้อใหม่ ดูเทมเพลต