Gửi yêu cầu Admin API

Thao tác Gửi yêu cầu Admin API gửi thay đổi đến Shopify GraphQL Admin API. Bằng cách này, bạn có thể thực hiện hầu hết mọi thao tác được API cho phép bằng Flow.

Trường

Thao tác Gửi yêu cầu Admin API bao gồm các trường sau.

Các trường được dùng trong thao tác Gửi yêu cầu Admin API.
Trường Mô tả
Thay đổi Bắt buộc. Thay đổi Shopify GraphQL Admin mà bạn muốn gọi. Thay đổi là một API thực hiện thao tác hoặc cập nhật dữ liệu.
Dữ liệu đầu vào thay đổi Bắt buộc. Dữ liệu (bằng JSON) bạn cần gửi theo yêu cầu thay đổi. Mỗi thay đổi yêu cầu một bộ dữ liệu khác nhau được ghi lại trong liên kết cung cấp cho mỗi thay đổi. Để xây dựng JSON cần thiết, bạn có thể sử dụng Liquid hoặc thao tác Chạy mã.

Yếu tố kích hoạt

Bạn có thể sử dụng thao tác Gửi yêu cầu Admin API trong bất kỳ quy trình làm việc nào và với bất kỳ yếu tố kích hoạt nào, với điều kiện là quy trình làm việc cung cấp dữ liệu cần thiết để xây dựng dữ liệu đầu vào thay đổi.

Ví dụ

Ví dụ 1: Cập nhật mẫu được dùng cho sản phẩm

Trong ví dụ này, chúng tôi sẽ sử dụng thao tác Gửi yêu cầu Admin API để gọi thay đổi productUpdate nhằm cập nhật mẫu được dùng cho sản phẩm.

Trường id là trường bắt buộc và phải là GID sản phẩm hợp lệ. Tại đây, chúng tôi thiết lập trường này bằng biến Liquid {{product.id}}. Điều này giả định rằng quy trình làm việc của bạn có yếu tố kích hoạt cung cấp một đối tượng sản phẩm.

templateSuffix là tên mẫu bạn muốn áp dụng cho sản phẩm. Ví dụ: Nếu muốn áp dụng mẫu pre-order, bạn cần đặt templateSuffix thành pre-order.

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

Ví dụ 2: Cập nhật trạng thái miễn thuế của khách hàng

Trong ví dụ này, chúng tôi sẽ sử dụng thao tác Gửi yêu cầu Admin API để gọi thay đổi customerUpdate nhằm cập nhật trạng thái miễn thuế của khách hàng.

Trường id là trường bắt buộc và phải là GID khách hàng hợp lệ. Tại đây, chúng tôi thiết lập trường này bằng biến Liquid {{order.customer.id}}. Điều này giả định rằng quy trình làm việc của bạn có yếu tố kích hoạt cung cấp một đối tượng đơn hàng.

Trường taxExempt là boolean cho biết khách hàng có được miễn thuế hay không. Trong ví dụ này, chúng tôi đặt trường này thành true.

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

Ví dụ 3: Cập nhật vùng miền của khách hàng

Trong ví dụ này, chúng tôi sẽ sử dụng thao tác Gửi yêu cầu Admin API để gọi thay đổicustomerUpdate nhằm cập nhật ngôn ngữ của khách hàng.

Trường id là trường bắt buộc và phải là GID khách hàng hợp lệ. Tại đây, chúng tôi thiết lập trường này bằng biến Liquid {{customer.id}}. Điều này giả định rằng quy trình làm việc của bạn có yếu tố kích hoạt cung cấp một đối tượng khách hàng.

Trường locale là chuỗi đại diện cho vùng miền của khách hàng. Trong ví dụ này, chúng tôi đặt trường này thành en.

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

Mẹo liquid

Flow hỗ trợ bộ lọc liquid json có thể hữu ích trong việc xây dựng đầu vào. Các ví dụ sau đây đều sử dụng thay đổicustomerUpdate và giả sử quy trình làm việc có yếu tố kích hoạt cung cấp đối tượng khách hàng.

Làm việc với chuỗi

Ví dụ sau cập nhật ghi chú về khách hàng:

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

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

Bộ lọc json thoát chuỗi để đảm bảo JSON thích hợp. Kết quả sẽ là JSON sau đây sau khi quy trình làm việc chạy:

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

Làm việc với mảng

Ví dụ về mảng

Bộ lọc json chuyển đổi mảng liquid thành mảng JSON. Ví dụ sau đây xuất ra mảng JSON khi được cung cấp mảng liquid:

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

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

Kết quả sẽ là JSON sau đây sau khi quy trình làm việc chạy:

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

Ví dụ về vòng lặp For

Ví dụ sau đây sử dụng vòng lặp để xuất ra các phần tử của mảng, phân tách bằng dấu phẩy:

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

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

Kết quả sẽ là JSON sau đây khi quy trình làm việc chạy:

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

Ví dụ về ánh xạ

Có thể sử dụng bộ lọc ánh xạ để lấy một mảng thuộc tính cụ thể từ một mảng đối tượng. Trong ví dụ sau, một mảng thuộc tính city được trích xuất từ một mảng địa chỉ khách hàng:

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

Kết quả sẽ là JSON sau đây sau khi quy trình làm việc chạy:

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

Hạn chế

Thao tác Gửi yêu cầu Admin API có những hạn chế sau:

  • Thao tác này không trả về dữ liệu vào môi trường Flow do tác động của thay đổi.
  • Thao tác này không hỗ trợ truy vấn GraphQL, chỉ hỗ trợ thay đổi.
  • Thao tác này không hỗ trợ thay đổi không đồng bộ hoặc thay đổi trả về loại Job.
  • Thao tác này không hỗ trợ các thay đổi đặc thù dành cho một số ứng dụng, bao gồm thay đổi về gói đăng ký và ưu đãi giảm giá.
  • Thao tác này sẽ hiển thị danh sách MutationsMutation inputs từ một phiên bản API Shopify duy nhất, hiện tại là 2024-01.
  • Khi phiên bản API được nâng cấp và chứa thay đổi yêu cầu cập nhật, thao tác này có thể không thành công nếu bạn phụ thuộc vào trường đó.

Bạn đã sẵn sàng bán hàng với Shopify?

Dùng thử miễn phí