Shopify Flow의 조건 이해하기

조건은 일련의 기준 충족 여부에 따라 진행 방법을 결정하는 워크플로의 한 단계입니다. 각 조건 단계에는 기준이 충족된 경우의 과 기준이 충족되지 않은 경우의 거짓, 두 가지 가능성이 있습니다. 다른 조건이나 작업을 선택하여 두 가지 가능성 중 하나에 대한 다음 단계를 정의하지 않으면 워크플로 실행이 중지됩니다.

예를 들어 주문이 생성될 때 워크플로가 트리거되는 경우, 특정 AFFILIATE10 할인 코드가 주문에 사용되었는지 여부를 조건으로 확인할 수 있습니다. 사용된 경우 옵션은 제휴 파트너에게 코드가 사용되었음을 알리는 이메일을 보내는 작업으로 이어질 수 있습니다. 사용되지 않은 경우 거짓 옵션은 비워둘 수 있으며, 이는 더 이상 아무 작업도 수행되지 않고 워크플로 실행이 종료됨을 나타냅니다.

워크플로는 복잡성에 따라 얼마든지 많은 조건을 포함할 수 있습니다. 조건은 워크플로로 수행하려는 작업에 따라 다른 조건이나 작업에 연결될 수도 있습니다. 조건은 순차적으로 연결되도록 설정할 수 있으며(예: 조건 A가 참이면 조건 B를 확인하고 A가 거짓이면 C를 확인), 동일한 단계의 일부로 동시에 발생하도록 설정할 수도 있습니다(예: A, B 또는 C 중 하나가 참인지 확인).

워크플로의 조건 만들기

Shopify Flow에서 사용 가능한 옵션의 사전 설정 목록에서 선택할 수 있는 트리거나 작업과 달리, 조건은 변수, 논리 연산자, 값을 선택하여 조건문을 처음부터 만듭니다.

  • 변수는 조건에서 사용하는 데이터를 정의하는 플레이스 홀더입니다. 예를 들어, 조건에서 주문의 특정 할인 코드를 확인하려는 경우 변수는 order.discountCode가 됩니다. 변수는 GraphQL Admin API 점 표기법을 사용합니다.
  • 논리 연산자 는 워크플로가 조건 충족 여부를 결정하는 방법을 나타냅니다. 논리 연산자는 변수 수준 또는 여러 변수가 전체 조건 기준의 일부로 포함되는 경우에 적용될 수 있습니다.
    • 변수 수준 옵션에는 초과 또는 다음으로 시작과 같은 필드 수준 연산자 또는 하나 이상 또는 모두와 같은 목록 연산자가 포함됩니다.
    • 조건 수준 옵션에는 전체 조건이 참으로 간주되려면 모든 변수가 참이어야 함을 의미하는 AND 또는 전체 조건이 참으로 간주되려면 변수가 하나 이상 참이어야 함을 의미하는 OR이 포함됩니다.
  • 은 변수가 찾고 있는 실제 정보입니다. 예를 들어 워크플로에서 확인하려는 특정 order.discountCodeAFFILIATE10인 경우, 이것이 조건의 일부로 포함할 값이 됩니다.

변수와 연산자를 선택하면 Shopify Flow 캔버스의 조건 단계가 업데이트되어 조건문을 일반 언어로 표시하므로, 생성 중인 조건의 형식이 올바른지 다시 확인할 수 있습니다. 설명 추가를 클릭하여 기본 조건문을 직접 작성한 설명으로 덮어쓸 수 있습니다.

Shopify Flow의 조건 요소에 대한 자세한 정보를 알아보세요.

조건의 변수 이해하기

워크플로에서 조건 단계를 만들 때 가장 먼저 수행하라는 메시지가 표시되는 단계는 변수 추가입니다. 그렇다면 변수란 무엇일까요?

Shopify Flow에서 변수는 워크플로의 조건에서 사용되는 데이터를 나타내는 플레이스 홀더입니다. 조건이 “A가 10보다 큰 경우...”라고 되어 있다면 A 부분이 변수입니다. 조건에 대한 변수를 선택하는 것은 기본적으로 조건에 평가할 데이터를 구체적으로 알려주는 것입니다.

변수는 GraphQL Admin API 점 표기법을 사용하여 서식이 지정됩니다. Flow 앱으로 워크플로를 생성하기 위해 API에 능숙할 필요는 없지만, 변수 이름과 정의에 대한 기본적인 이해는 원하는 특정 워크플로 논리를 구축하는 데 도움이 될 수 있습니다.

변수가 나타내는 데이터를 이해하려면 변수에 대한 다음 정보를 고려하십시오.

팁: Dev Docs Assistant에서 변수 관련 도움 받기

조건을 생성할 때 어떤 변수를 선택해야 할지 확실하지 않은 경우 Shopify Dev Docs Assistant에 조언을 구하는 것을 고려해 보십시오. Dev Docs Assistant는 GraphQL Admin API에 관한 모든 설명서에 액세스할 수 있으며 Shopify Flow에서 조건을 서식 지정하는 방법에 대한 제안을 제공할 수 있습니다.

  1. Shopify Dev Docs로 이동합니다.
  2. 어시스턴트에게 질문을 클릭하여 채팅 패널을 엽니다.
  3. 메시지 필드에 “트리거가 '주문 생성됨'으로 시작할 때 고객 태그 데이터에 액세스하려면 Shopify Flow에서 어떤 변수를 사용해야 합니까?”와 같은 요청을 입력합니다.
  4. Enter 키를 누르거나 보내기을 클릭합니다.

변수 점 표기법 읽기

변수를 선택할 때 order.customer.tag와 같이 마침표로 구분된 키워드로 형식이 지정된 것을 알 수 있습니다. 이 형식은 API가 사용하려는 데이터에 도달하기 위해 수행하는 단계를 나타냅니다. 변수의 각 '단계'는 마침표로 구분되며 데이터 경로는 왼쪽에서 오른쪽으로 읽습니다. 변수는 API에 데이터가 저장된 위치와 워크플로가 해당 위치에 도달하기 위해 사용하는 경로에 따라 길이가 다를 수 있습니다.

예:

  • order.email: 주문의 고객과 연결된 이메일 주소를 확인합니다. 주문을 클릭한 다음 주문 세부 정보에서 이메일 주소를 확인하는 것과 비슷합니다.
  • refunds_item.staffMember.name: 주문에서 품목 환불을 확인하고, 해당 환불과 연결된 직원/담당자 정보로 이동한 다음, 해당 직원/담당자의 전체 이름을 확인합니다.

변수를 선택할 때 원하는 정보를 찾기 위해 Shopify 관리자를 탐색하는 방법을 고려해 보세요. API도 비슷한 경로를 사용해야 할 가능성이 높으며, 이는 변수의 형식을 결정하는 데 도움이 될 수 있습니다.

예를 들어 새 주문을 검토하고 주문과 연결된 고객이 속한 RFM 그룹을 알고 싶다면, 주문의 고객 이름을 클릭하여 Shopify 관리자의 고객 세부 정보 페이지로 리디렉션된 다음 고객의 분석 요약에서 RFM 그룹 열에 표시된 값을 확인할 수 있습니다.

Shopify Flow에서 동일한 데이터를 반환하는 데 사용하는 변수는 order.customer.statistics.rfmGroup과 비슷한 경로를 사용합니다.

변수의 데이터 요구 사항

변수에는 데이터가 필요합니다. 변수에서 올바른 데이터를 사용할 수 없는 경우 상태가 작동하지 않고 워크플로가 실패합니다. 워크플로의 시작으로 선택한 트리거에 따라 상태에 추가할 변수 옵션이 사용 가능한 데이터를 기반으로 한 가능한 옵션을 반영하도록 변경됩니다.

예를 들어 워크플로가 제품 생성됨 트리거로 시작하는 경우 해당 트리거에서 생성하는 상태는 제품 데이터세트에서 사용할 수 있는 변수로 제한됩니다. 따라서 product.category.name, product.vendor, variants_item.displayName과 같은 변수는 모두 상태의 일부로 사용할 수 있습니다. 반면 customer.verifiedEmail 또는 subscriptionContracts_item.status와 같은 변수는 제품 데이터세트와 관련이 없으므로 옵션으로 표시되지 않습니다.

하지만 이것이 다른 데이터세트에 포함된 데이터에 완전히 액세스할 수 없다는 의미는 아닙니다. Shopify 관리자에서 여러 링크를 클릭하여 동일한 페이지에 도달하는 것과 마찬가지로 API의 여러 경로에서 일부 데이터에 액세스할 수 있습니다. 실제로 이는 트리거마다 동일한 정보를 반환하기 위해 다른 변수 표기법이 필요하다는 것을 의미합니다.

예를 들어, 워크플로가 고객 프로필의 태그를 확인하도록 하려는 경우를 가정해 보겠습니다. 워크플로가 주문 생성됨 트리거로 시작하는 경우, 워크플로가 주문 데이터로 시작한 다음 주문의 고객 정보를 확인하고 해당 고객의 태그를 확인하므로 변수는 order.customer.tags가 됩니다. 워크플로가 고객 생성됨 트리거로 시작하는 경우, 워크플로가 고객 데이터로 시작하므로 고객 프로필의 태그를 바로 확인할 수 있어 변수는 단순히 customer.tags가 됩니다.

Shopify Flow의 점 표기법 스타일 때문에 키워드를 기반으로 상태에 사용할 변수를 검색하면 여러 결과가 반환될 수 있습니다. 상태를 빌드할 때 어떤 변수를 선택할지 결정하려면 변수 경로가 무엇을 나타내는지 이해하는 것이 중요합니다.

예를 들어 워크플로에서 주문 생성됨 트리거를 사용하고 키워드 tags를 사용하여 변수를 검색한다고 가정해 보겠습니다. 검색 결과는 다음과 같을 수 있으며, 주문에서 다른 정보를 확인합니다.

  • order.tags: 주문 자체에 적용된 태그입니다. 예: #긴급 주문 또는 #선물.
  • order.customer.tags: 주문한 고객에게 적용된 태그입니다. 예: #VIP 또는 #제휴.
  • order.lineItems.product.tags: 주문에서 구매한 제품에 적용된 태그입니다. 예: #취급주의 또는 #신분증필요.

워크플로에서 확인하려는 태그 유형에 따라 상태가 예상대로 작동하도록 올바른 변수를 선택해야 합니다.

상태의 논리 연산자 이해

논리 연산자는 상태가 적용되는 방식을 정의하며, 결과적으로 명령문이 참 또는 거짓이 됩니다. 상태가 “A가 10보다 큰 경우…”로 표시되면 ~보다 큼 부분이 논리 연산자입니다. 상태에 대한 논리 연산자를 선택하는 것은 기본적으로 상태에 변수를 평가하는 방법을 알려주는 것입니다.

Shopify Flow 워크플로에는 3가지 유형의 논리 연산자가 있습니다.

  • ~보다 큼 또는 ~로 시작과 같은 필드 수준 연산자.
  • 다음 중 하나 이상 또는 다음 모두와 같은 목록 연산자.
  • AND 또는 OR과 같은 상태 수준 연산자.

필드 수준 연산자와 목록 연산자는 변수 수준에서 적용되며, 상태 수준 연산자는 전체 상태에 적용되고 여러 변수를 단일 상태로 결합하는 데 사용할 수 있습니다.

필드 수준 연산자는 모든 유형의 변수 명령문에 사용되는 가장 일반적인 유형의 연산자입니다. 필드 수준 연산자를 사용하면 “A가 10보다 큰 경우 X 수행” 또는 “B에 'VIP'가 포함된 경우 X 수행”과 같은 조건부 명령문을 생성하여 변수의 어떤 값이 참 결과를 반환하는지 더 효과적으로 제어할 수 있습니다. 같음이 기본 논리 연산자입니다.

목록 연산자는 결과 목록을 반환할 수 있는 변수에만 적용할 수 있습니다. 예를 들어, lineItems_item.variant.price 변수는 주문의 제품 이형에 대한 가격을 반환하며, 고객이 동일한 주문에서 여러 제품을 구매한 경우 결과 목록을 반환할 수 있습니다. 즉, 주문에 $10가 넘는 제품 이형이 하나 이상 있는 경우 “lineItems_item.variant.price가 $10보다 큼”과 같은 조건부 명령문이 참이 되도록 하려면 다음 중 하나 이상과 같은 목록 연산자를 적용할 수 있습니다. 반면, 한 번에 결과 1개만 반환할 수 있는 변수에는 목록 연산자가 표시되지 않습니다. 예를 들어 주문은 한 번만 생성될 수 있으므로 order.createdAt과 같은 변수에는 가능한 값이 1개뿐이므로 해당 변수가 포함된 명령문을 수정하는 옵션으로 목록 연산자가 표시되지 않습니다.

ANDOR과 같은 조건 수준 연산자를 사용하면 동일한 조건에 여러 변수를 포함할 수 있습니다. 예를 들어, “A가 5와 같으면 X 수행”과 같은 간단한 조건문 대신 “A가 5와 같고 B가 10보다 크면 X 수행”(A와 B 변수가 모두 참이어야 함) 또는 “A가 5와 같거나 B가 10보다 크거나 C가 1보다 작으면 X 수행”(A, B 또는 C 중 하나만 참이면 됨)과 같이 더 복잡한 조건을 구성할 수 있습니다. 워크플로의 모든 항목이 참이어야 하는 경우에는 AND를 사용하고, 기준 중 하나만 충족되어도 조건이 참이 되는 경우에는 OR을 사용합니다.

중요한 이유: 조건에서 논리 연산자가 작동하는 방식을 이해하면 원하는 기준을 정확하게 확인하는 워크플로를 구축할 수 있습니다. 세 가지 유형의 논리 연산자를 사용하여 상세하고 복잡한 조건문을 만들어 매우 구체적인 조건을 확인하는 워크플로를 생성할 수 있습니다.

조건의 논리 연산자에 대해 자세히 알아보십시오.