콘텐츠로 건너뛰기

카탈로그 항목을 커스텀 속성 배열에 매칭

각 사용자가 프로필에 저장된 제품 이름 목록을 보유하고 있을 때, 카탈로그 셀렉션과 Liquid를 사용하여 해당 목록에 포함된 카탈로그 행만 표시할 수 있습니다. 예를 들어, 위시리스트 이메일에 활용할 수 있습니다.

이 예제에 대해

Flash & Thread는 각 고객의 저장된 제품 이름을 문자열 배열 커스텀 속성(saved_product_names)에 저장합니다. 카탈로그에는 전체 제품 상세 정보(카테고리, 가격, 이미지 URL, 재고)가 포함되어 있습니다.

카탈로그 셀렉션은 카탈로그 열을 정적 값이나 Liquid 값(카탈로그 행의 배열 필드 포함)과 비교하여 필터링할 수 있습니다. 하지만 고객 프로필 배열에 저장된 값을 기준으로 카탈로그 행을 필터링하지는 않습니다. 사용자의 목록에서 개인화하려면, 셀렉션을 사용하여 광범위한 카탈로그 항목 집합을 반환한 다음, Liquid를 사용하여 프로필 배열과 일치하는 행만 유지합니다.

이 패턴은 다음과 같습니다:

  1. 사용자의 배열 커스텀 속성을 Liquid 변수에 할당합니다.
  2. 사전 필터링된 카탈로그 셀렉션에 대해 catalog_selection_items를 호출합니다(최대 50개 항목).
  3. items를 순회하며 contains를 사용하여 각 카탈로그 필드(예: name 또는 id)를 배열과 비교합니다.

고려 사항

  • 고객에게 발송하기 전에 스테이징 워크스페이스에서 Liquid 및 카탈로그 데이터를 테스트하세요.
  • 선택 결과는 최대 50개의 카탈로그 행을 반환하므로, 각 사용자의 저장된 항목이 해당 결과 집합 내에 포함되도록 필터(예: 재고 있음, 활성 카테고리, 가격대)를 추가하세요.
  • 이 예제에서는 고객 프로필의 문자열 배열을 사용합니다.
  • 객체 배열의 경우, 각 객체 내부의 속성정보(예: product_id)를 기준으로 매칭하고 contains 검사를 조정하거나 객체에 대해 for 루프를 사용하세요. 객체 배열을 참조하세요.
  • contains 동작은 속성 유형에 따라 다릅니다. 배열의 경우 == 대신 contains를 사용하세요. 조건 로직을 참조하세요.
  • 제품 이름이 변경되거나 중복될 수 있으므로 안정적인 식별자(예: 카탈로그 id)를 기준으로 매칭하세요.
  • 이 문서의 Liquid 스니펫은 예제입니다. 채널(이메일 HTML, 푸시 등)에서 렌더링을 검증하세요.

설정

이 예시에서는 다음을 전제로 합니다:

에셋 세부 사항
커스텀 속성 saved_product_names — 문자열 배열 (예: ["linen_shirt", "trail_jacket", "canvas_tote"])
카탈로그 apparel_products — id, category, name, price, inventory, image_url 열 포함
셀렉션 apparel_products의 in_stock_apparel, 결과 한도 50, 관련 없는 행을 제외하는 필터 포함 (예: inventory가 0보다 큰 경우)

1단계: 카탈로그 및 셀렉션 만들기

  1. apparel_products라는 카탈로그에 제품 행을 가져오거나 동기화합니다.
  2. 50개 항목 한도 내에서 필요한 만큼의 관련 행을 반환하는 셀렉션(예: in_stock_apparel)을 만듭니다.
  3. 메시지에 표시하지 않을 행(재고 없음, 잘못된 카테고리 등)을 제외하는 셀렉션 필터를 추가합니다.

셀렉션 설정 방법은 셀렉션을 참조하세요.

2단계: 메시지에 Liquid 추가하기

프로필 배열을 할당하고, 셀렉션을 로드한 다음, contains를 사용하여 반복합니다:

{% assign saved_product_names = custom_attribute.${saved_product_names} %}
{% catalog_selection_items apparel_products in_stock_apparel %}
{% for item in items %}
{% if saved_product_names contains item.name %}
Product: {{ item.name }}
Category: {{ item.category }}
Price: ${{ item.price }}
Image: {{ item.image_url }}
{% endif %}
{% endfor %}

배열에 표시 이름 대신 ID를 저장하는 경우 item.name을 item.id(또는 다른 열)로 교체합니다. 채널에 맞게 필드 사이에 간격이나 HTML을 추가하세요. ${{ item.price }}에서 $는 Liquid 출력 앞에 출력되는 리터럴 통화 기호이며, Braze의 ${} 개인화 구문의 일부가 아닙니다.

이 Liquid를 자동으로 생성하려면 개인화 추가 Modal(Catalog Items > Use a selection)을 여세요. 카탈로그 사용하기를 참조하세요.

3단계: 미리보기 및 테스트

다양한 saved_product_names 값을 가진 프로필로 테스트 메시지를 보냅니다. 일치하는 카탈로그 행만 표시되는지, 그리고 빈 배열일 경우 제품 라인이 표시되지 않는지 확인합니다.

New Stuff!