Liquid 변수는 워크플로가 실행될 때 GraphQL Admin API의 값으로 대체되는 Liquid에 정의된 플레이스 홀더입니다. 변수는 주문 번호, 주문 가격 또는 고객 이름과 같이 워크플로와 관련된 고객, 주문 및 제품의 특성을 설명할 수 있습니다. 변수는 조건에서 워크플로의 논리를 제어하거나 작업에서 데이터를 출력하는 데 사용할 수 있습니다.
변수 추가 링크가 포함된 모든 텍스트 필드에 Liquid를 사용하여 변수를 추가할 수 있습니다. 관련 필드 아래의 변수 추가 링크를 클릭한 다음 목록에서 변수를 선택하십시오.
변수 추가 목록의 변수는 필터링되므로 트리거와 같이 현재 단계 이전 단계에서 반환되는 변수만 사용할 수 있습니다. 예를 들어 주문 생성됨 트리거는 변수로 삽입할 수 있는 Admin API의 주문 및 상점 리소스를 제공합니다. 목록에서 변수를 선택하면 올바른 형식의 Liquid로 텍스트 상자에 추가됩니다.
텍스트 필드에 Liquid를 직접 작성할 수도 있습니다. 예를 들어 {{ order.name }} 변수를 사용하여 order-123과 같은 Shopify 관리자의 주문 문자열을 표시할 수 있습니다.
Flow는 Admin API를 사용하여 Liquid에 사용되는 데이터를 검색하므로 변수 구문은 카멜 케이스를 사용합니다. 카멜 케이스 변수는 첫 단어가 소문자로 시작하고 다음 단어는 firstName 또는 canMarkAsPaid와 같이 대문자로 시작합니다. 예를 들어 제품이 생성된 날짜에 액세스하려면 {{ product.createdAt }}을(를) 입력합니다. 카멜 케이스를 사용하지 않는 Shopify 테마에서 Liquid 구문을 사용하는 경우 {{ product.created_at }}을(를) 입력합니다.
# Output the base Admin URL for your store
https://admin.shopify.com/store/{{ shop.myShopifyDomain | replace: ".myshopify.com", "" }}
# Assign the base Admin url to a variable named base_url:
{%- capture base_url -%}https://admin.shopify.com/store/{{ shop.myShopifyDomain | replace: ".myshopify.com", "" }}{%- endcapture -%}
# Customer from a Customer trigger:
{{ base_url }}/customers/{{ customer.legacyResourceId }}
# Customer without the base_url:
https://admin.shopify.com/store/{{ shop.myShopifyDomain | replace: ".myshopify.com", "" }}/customers/{{ customer.legacyResourceId }}
# Customer from an Order trigger:
{{ base_url }}/customers/{{ order.customer.legacyResourceId }}
# Order:
{{ base_url }}/orders/{{ order.legacyResourceId }}
# Product:
{{ base_url }}/products/{{ product.legacyResourceId }}
# Product Variant:
{{ base_url }}/products/{{ product.legacyResourceId }}/variants/{{ productVariant.legacyResourceId }}
# Example showing a clickable link in HTML, making use of the URL:
<a href="{{ base_url }}/products/{{ product.legacyResourceId }}">{{ product.title }}</a>
태그 목록을 메타 필드로 전환
태그 세트를 단일 행 텍스트 필드 목록인 메타 필드로 전환하려고 합니다. **스토어에 제품 추가됨** 트리거를 사용하여 워크플로를 생성하고 **제품 메타 필드 업데이트** 작업을 사용합니다. **제품 메타 필드 업데이트** 작업의 **값** 섹션에 다음 Liquid 코드를 추가합니다. 이 예에서는 제품이 생성될 때 값을 한 번만 설정하면 되며, 제품에 color:red 및 color:orange라는 두 개의 관련 태그가 있다고 가정합니다.
고객이 주문에 $500 이상을 지출하면 직원에게 이메일을 보내는 워크플로를 생성하려고 합니다. **주문 생성됨** 트리거를 사용하여 워크플로를 생성하고, 주문 총액이 $500를 초과하는 경우에 true가 되는 조건을 설정하고, **내부 이메일 보내기** 작업을 사용합니다. **내부 이메일 보내기** 작업의 **메시지** 섹션에서 다음 변수를 사용합니다.
고객 세부 정보를 제공하기 위한 변수 사용 예.
입력
출력
Please send a personal thank you note to {{ order.customer.firstName }} {{ order.customer.lastName }}({{ order.customer.email }}) for placing an order for $ {{ order.totalPriceSet.shopMoney.amount }}.
$763.42 주문에 대해 Jeanne Dupont(jeanne@example.com)에게 개인적인 감사 메모를 보내주세요.
재고가 부족한 제품에 대한 동적 이메일 메시지 작성
제품 재고가 부족해지고 재고를 추가로 주문해야 할 때 직원에게 알려야 합니다. **재고 수량 변경됨** 트리거로 시작하는 워크플로를 생성하고, 이전 재고 수량이 10 이하인 경우에 true가 되는 조건을 설정합니다. **내부 이메일 보내기** 작업의 **메시지** 섹션에서 다음 변수를 사용합니다.
품목 세부 정보를 제공하기 위한 변수 사용 예.
입력
출력
Please reorder {{ product.title }}. Email owner@store.com to verify that they've received the purchase order.
위험 수준이 높은 주문을 취소하려고 하지만 직원이 수동으로 주문을 취소하는 것을 선호합니다. **주문 생성됨** 트리거로 시작하는 워크플로를 생성하고, 주문의 위험 수준이 높음과 같으면 true가 되는 조건을 설정합니다. **내부 이메일 보내기** 작업의 **메시지** 섹션에서 다음 변수를 사용합니다.
사기 주문에 대한 정보를 제공하기 위한 변수 사용 예.
입력
출력
Our Shopify store has received an order with a high risk of fraud. We would like to cancel this order right away, before it is sent to production:
{{ order.name }}
{{ order.billingAddress.lastName }}, {{ order.billingAddress.firstName }}
{{ order.email }}
Please confirm the new order status. Thanks!
Shopify 스토어에 사기 위험이 높은 주문이 접수되었습니다. 생산 단계로 넘어가기 전에 이 주문을 즉시 취소하고자 합니다.
#1001
Dupont, Jeanne
jeanne@example.com
새 주문 상태를 확인해 주십시오. 감사합니다.
for 루프를 사용하여 주문 품목 출력
주문이 접수되면 주문된 제품이 포함된 메시지를 보내는 것이 유용할 수 있습니다. 코드 블록을 반복적으로 실행하는 for 루프를 사용하여 이 작업을 수행할 수 있습니다. 변수를 지원하는 텍스트 필드는 for 루프와 forloop 개체도 지원합니다.
예를 들어, 주문의 모든 SKU와 수량 목록을 반환하는 워크플로를 생성하려는 경우 내부 이메일 보내기 작업의 메시지 섹션에서 다음 변수를 사용합니다.
for 루프를 사용하여 주문 정보를 제공하는 예시입니다.
입력
출력
Order summary:
{% for a in order.lineItems %}
{{a.sku}} ( {{a.quantity}} )
{% endfor %}
이메일에 제품 이름, SKU, 품목당 가격, 고객 배송 정보 등 더 많은 정보를 추가하려면 내부 이메일 보내기 작업의 메시지 섹션에서 다음 변수를 사용하세요.
for 루프를 사용하여 더 광범위한 주문 정보를 제공하는 예시입니다.
입력
출력
Order summary:
{% for a in order.lineItems %}
Product: {{a.title}}
SKU: {{a.sku}}
Price (per unit): ${{a.originalUnitPriceSet.shopMoney.amount}}
Quantity: {{a.quantity}}
{% endfor %}
주문 요약:
제품: High Waist Leggings - Black
SKU: 8987097979
가격(단위당): $8.49
수량: 5
제품: Athletic Socks - Blue
SKU: 888998898B
가격(단위당): $5.61
수량: 2
for 루프와 if 문을 결합하여 일부 품목 출력
특정 공급업체에서 공급한 판매 품목을 추적해야 하는 경우 내부 이메일 보내기 작업의 메시지 섹션에서 다음 변수를 사용하고 for loop에 if 문을 포함합니다.
for 루프 및 if 문을 사용하여 특정 공급업체에 대한 주문 정보를 제공하는 예시입니다.
입력
출력
Acme product sold:
{% for x in order.lineItems %}
{% if x.vendor == 'acme-vendor' %}
Product name: {{x.title}}
SKU: {{x.sku}}
{% endif %}
{% endfor %}
Acme 제품 판매됨:
제품 이름: High Waist Leggings - Black
SKU: 8987097979
Shopify Flow의 복잡한 데이터 객체
Flow를 사용하면 GraphQL Admin API에 있는 거의 모든 데이터에 액세스할 수 있습니다. 여기에는 목록 및 객체와 같은 복잡한 데이터 객체가 포함됩니다. 그러나 이러한 객체로 수행할 수 있는 작업에는 몇 가지 제한이 있습니다. 이 섹션에서는 이러한 제한 사항을 간략하게 설명하고 이를 사용하는 방법에 대한 예시를 제공합니다.
목록 및 객체를 직접 호출하는 대신, 목록을 순환하며 원하는 필드만 포함해야 합니다.
예를 들어 {{ order.lineItems }}를 직접 호출하는 대신 다음 형식을 사용하여 특정 필드를 호출하세요. 이 예시에는 목록이나 객체를 직접 호출하면 포함되는 모든 필드가 포함됩니다. 필요한 필드를 복사하여 붙여넣으세요.
텍스트
{% for li in order.lineItems %}
{% comment %}li.contract - omitted{% endcomment %}