티스토리 뷰

반응형

{% if customer.tags %}

쇼피파이(Shopify) Liquid 템플릿을 다루다 보면 흔히 마주치는 조건 중 하나가 바로 고객 태그(customer.tags) 처리입니다. 이 글은 실무에서 실제 발생한 이슈를 중심으로, "고객 태그가 없을 때", 또는 "특정 태그만 있을 때" 메뉴를 숨기고 싶은 경우 어떻게 조건을 구성해야 하는지를 설명합니다.


📌 실제 상황

  • 쇼핑몰에서 레퍼럴(referral) 정보를 고객 태그에 저장하고 있습니다.
  • 태그가 없거나 비어 있을 경우 특정 메뉴를 숨기고 싶었습니다.

그런데 예상과 다르게, 태그가 비어 있는데도 customer.tags가 존재한다고 판단되어 조건이 정상적으로 작동하지 않았습니다.

Liquid에서 customer.tags는 존재하지만 내부 값이 ""(공백 문자열)일 수 있습니다. 즉:

{% if customer.tags %}

는 단순히 존재 여부만 확인하며, " "처럼 공백도 '존재함'으로 간주합니다. 그래서 조건이 기대대로 작동하지 않을 수 있습니다.

✅ 해결 방법

  1. 빈 값, null, false 등 다양한 경우를 모두 포괄하려면 다음과 같이 처리해야 합니다:
    {% if customer and customer.tags != blank %}
      {% assign tags = customer.tags | split: ',' %}
      {% if tags contains 'A' or tags contains 'B' or tags contains 'C' or tags contains 'D' %}
        /* 조건에 맞는 태그 보유 → 메뉴 표시 */
      {% else %}
        #HeaderMenu-MenuList-2 {
          display: none !important;
        }
      {% endif %}
    {% else %}
      #HeaderMenu-MenuList-2 {
        display: none !important;
      }
    {% endif %}


  2. 태그가 비어있을 경우에도 split을 통해 배열로 분리하여 조건 체크가 가능합니다.

💡 실무 팁

  • customer.tags는 공란일 수도 있고, 'false', 'null', 또는 blank일 수 있습니다. 단순한 존재 여부로 조건을 걸면 오작동 가능성이 있습니다.
  • 항상 다양한 형태로 "없음(null/blank/false)" 을 고려하여 조건을 작성해야 합니다.
  • 실제 테스트 시에는 여러 유형의 계정 (비회원, 태그 없음 회원, 특정 태그 회원)으로 케이스별 확인 필수입니다.

✨ 결론

실무에서는 "작동될 때보다, 왜 작동하지 않는지를 파악하는 경험" 이 더 중요합니다. AI가 조건을 제시할 순 있지만, 케이스를 설계하고 테스트하는 건 결국 개발자의 몫입니다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함