Admin API 요청 보내기

Admin API 요청 보내기 작업은 Shopify GraphQL Admin API에 뮤테이션을 전송합니다. 이렇게 하면 Flow를 사용하여 API가 허용하는 거의 모든 작업을 수행 할 수 있습니다.

이 페이지의 정보

필드

Admin API 요청 보내기 작업에는 다음 필드가 포함됩니다.

Admin API 요청 보내기 작업에서 사용되는 필드입니다.
필드 설명
뮤테이션 필수입니다. 호출하려는 Shopify GraphQL Admin 뮤테이션입니다. 뮤테이션 은 작업을 수행하거나 데이터를 업데이트하는 API입니다.
뮤테이션 입력 필수입니다. 뮤테이션 요청의 일환으로 전송해야 하는 데이터(JSON 형식)입니다. 각 뮤테이션에는 각 변경에 대해 제공된 링크에 문서화되는 다른 데이터 세트가 필요합니다. 필요한 JSON을 생성하기 위해 Liquid 또는 Run 코드 작업을 사용할 수 있습니다.

트리거

워크플로에서 뮤테이션 입력을 생성하는 데 필요한 데이터를 제공하는 한 모든 워크플로에서 Admin API 요청 보내기 작업을 사용할 수 있습니다.

예 1: 제품에 사용된 템플릿 업데이트

이 예에서 제품에 사용된 템플릿을 업데이트하기 위해 Admin API 요청 보내기 작업을 사용하여 productUpdate 뮤테이션을 호출할 것입니다.

id 필드가 필요하며 유효한 제품 GID여야 합니다. 여기에서 이 필드를 {{product.id}} Liquid 변수와 함께 설정합니다. 워크플로에 제품 개체를 제공하는 트리거가 있다고 가정해 보겠습니다.

templateSuffix는 제품에 적용할 템플릿의 이름입니다. 예를 들어, pre-order 템플릿을 적용하려면 templateSuffix를 pre-order로 설정합니다.

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

예 2: 고객의 면세 상태 업데이트

이 예에서 고객의 면세 상태를 업데이트하기 위해 Admin API 요청 보내기 작업을 사용하여 customerUpdate 뮤테이션을 호출할 것입니다.

id 필드가 필요하며 유효한 고객 GID여야 합니다. 여기에서 이 필드를 {{order.customer.id}} Liquid 변수와 함께 설정합니다. 워크플로에 주문 개체를 제공하는 트리거가 있다고 가정해 보겠습니다.

taxExempt 필드는 고객의 면세 여부를 나타내는 부울입니다. 이 예에서는 이를 true로 설정합니다.

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

예 3: 고객의 로케일 업데이트

이 예제에서 고객의 로케일을 업데이트하기 위해 Admin API 요청 보내기 작업을 사용하여 customerUpdate 뮤테이션을 호출할 것입니다.

id 필드가 필요하며 유효한 고객 GID여야 합니다. 여기에서 이 필드를 {{customer.id}} Liquid 변수와 함께 설정합니다. 워크플로에 고객 개체를 제공하는 트리거가 있다고 가정해 보겠습니다.

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 배열로 변환합니다. 다음 예는 liquid 배열과 함께 제공되는 경우 JSON 배열을 출력합니다.

{% 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 루프 예제

다음 예는 루프를 사용하여 쉼표로 구분된 배열 요소를 출력합니다.

{% 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 필터는 개체 배열에서 특정 속성의 배열을 가져올 때 사용할 수 있습니다. 다음 예에서는 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 유형을 반환하는 뮤테이션을 지원하지 않습니다.
  • 해당 작업은 가입 및 할인 뮤테이션 포함하여 특정 앱에 한정되는 뮤테이션을 지원하지 않습니다.
  • 이 작업은 현재 2024-01인 단일 Shopify API 버전에서 Mutation inputsMutations 목록을 표시합니다.
  • API 버전이 업그레이드되고 브레이킹 체인지가 포함되어 있을 때 해당 필드를 사용하는 경우 이 작업이 실패할 수 있습니다.

Shopify와 함께 사업을 시작할 준비가 되셨습니까?

무료 체험