Gửi yêu cầu Admin API

Hành động Gửi yêu cầu Admin API có thể sử dụng hầu hết các mutation trong GraphQL Admin API để thay đổi cửa hàng của bạn, bao gồm cả những mutation chưa có ở dạng hành động trong 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 sử dụng trong thao tác Gửi yêu cầu Admin API.
TrườngMô tả
MutationBắt buộc. Mutation GraphQL Admin của Shopify mà bạn muốn gọi. Mutation 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 của mutationBắt buộc. Dữ liệu (định dạng JSON) mà bạn cần gửi như một phần của yêu cầu mutation. Mỗi mutation yêu cầu một tập hợp dữ liệu khác nhau, được ghi chú trong liên kết cung cấp cho từng mutation. Để tạo 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

Có thể sử dụng thao tác Gửi yêu cầu Admin API trong bất kỳ dòng công việc nào, với bất kỳ yếu tố kích hoạt nào, miễn là dòng công việc cung cấp dữ liệu cần thiết để tạo dữ liệu đầu vào của mutation.

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 ta sẽ sử dụng thao tác Gửi yêu cầu Admin API để gọi mutation productUpdate nhằm cập nhật mẫu được dùng cho sản phẩm.

Trường id là bắt buộc và phải là GID sản phẩm hợp lệ. Ở đây, chúng ta thiết lập trường này bằng biến Liquid {{product.id}}. Điều này giả định rằng dòng công việc có yếu tố kích hoạt cung cấp đố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 thiết lập 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 ta sẽ sử dụng thao tác Gửi yêu cầu Admin API để gọi mutation customerUpdate nhằm cập nhật trạng thái miễn thuế của khách hàng.

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

Trường taxExempt là một giá trị boolean cho biết khách hàng có được miễn thuế hay không. Trong ví dụ này, chúng ta thiết lập thành true.

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

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

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

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

Trường locale là một chuỗi đại diện cho ngôn ngữ và vùng của khách hàng. Trong ví dụ này, chúng ta thiết lập thành en.

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

Mẹo dùng Liquid

Flow hỗ trợ bộ lọc liquid json có thể hữu ích trong việc tạo dữ liệu đầu vào. Các ví dụ sau đều dùng mutation customerUpdate và giả định dòng công 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 đây 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 mã JSON chuẩn. Kết quả là JSON sau đây sau khi chạy dòng công việc:

{
  "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 biế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ả là JSON sau đây sau khi chạy dòng công việc:

{
  "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ột 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ả là JSON sau đây khi chạy dòng công việc:

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

Ví dụ về hàm Map

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

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

Kết quả là JSON sau đây sau khi chạy dòng công việc:

{
  "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 sẽ hiển thị danh sách các MutationsMutation inputs từ phiên bản Admin API mà Flow sử dụng.
  • Khi phát hành phiên bản API mới, thao tác này có thể không thực hiện được nếu sử dụng mutation hoặc trường đã bị thay đổi hoặc không dùng nữa.
  • Thao tác này không hỗ trợ truy vấn GraphQL, mà chỉ hỗ trợ mutation.
  • Thao tác này không hỗ trợ các mutation không còn dùng nữa.
  • Thao tác này không hỗ trợ một số mutation dành riêng cho những ứng dụng nhất định, bao gồm một số mutation về đăng ký, hoạt động tiếp thị và giảm giá.
  • Thao tác này không hỗ trợ mutation không đồng bộ hoặc mutation trả về loại Job.
  • Thao tác này không hỗ trợ các mutation không triển khai giao diện Node.

Mẫu

Thêm mặt hàng miễn phí (giảm giá 100%) vào đơn hàng mới

Mẫu này thêm một mặt hàng miễn phí, đã giảm giá vào đơn hàng mới nếu mặt hàng đó còn hàng tồn kho. Mẫu kiểm tra hàng tồn kho, áp dụng giảm giá 100% và cập nhật đơn hàng mà không thông báo cho khách hàng. Tính năng tự động hóa này sẽ hữu ích để (1) nâng cao sự hài lòng của khách hàng bằng cách đưa một mặt hàng miễn phí bất ngờ vào đơn hàng của họ, (2) quảng bá sản phẩm mới hoặc ít được biết đến bằng cách thêm sản phẩm dưới dạng hàng mẫu miễn phí vào đơn hàng, hoặc (3) hợp lý hóa chương trình khuyến mãi bằng cách tự động hóa việc đưa vào và giảm giá các mặt hàng miễn phí. Xem mẫu

Cho phép đặt hàng đối với các công ty được tạo theo yêu cầu tạo tài khoản công ty

Gán quyền đặt hàng khi một công ty được tạo theo yêu cầu tạo tài khoản công ty. Xem mẫu

Thay đổi mẫu sản phẩm khi mẫu mã hết hàng hoặc có hàng trở lại

Cập nhật mẫu sản phẩm dựa trên hàng tồn kho đối với các mẫu mã của sản phẩm. Dòng công việc này cho phép bạn chuyển đổi giữa các mẫu dành cho còn hàng tồn kho (mẫu mặc định của cửa hàng), hết hàng và khi một hoặc nhiều mẫu mã hết hàng. Xem mẫu

Thực hiện mọi mặt hàng kỹ thuật số trong một đơn hàng

Thực hiện mọi mặt hàng không yêu cầu vận chuyển thực tế, chẳng hạn như mặt hàng kỹ thuật số hoặc mặt hàng khớp với một danh sách mã SKU. Chạy một lần đối với mỗi địa điểm hoàn tất đơn hàng ('yêu cầu hoàn tất đơn hàng') của một đơn hàng mới. Xem mẫu