티스토리 뷰
반응형
{% if customer.tags %}
쇼피파이(Shopify) Liquid 템플릿을 다루다 보면 흔히 마주치는 조건 중 하나가 바로 고객 태그(customer.tags) 처리입니다. 이 글은 실무에서 실제 발생한 이슈를 중심으로, "고객 태그가 없을 때", 또는 "특정 태그만 있을 때" 메뉴를 숨기고 싶은 경우 어떻게 조건을 구성해야 하는지를 설명합니다.
📌 실제 상황
- 쇼핑몰에서 레퍼럴(referral) 정보를 고객 태그에 저장하고 있습니다.
- 태그가 없거나 비어 있을 경우 특정 메뉴를 숨기고 싶었습니다.
그런데 예상과 다르게, 태그가 비어 있는데도 customer.tags가 존재한다고 판단되어 조건이 정상적으로 작동하지 않았습니다.
Liquid에서 customer.tags는 존재하지만 내부 값이 ""(공백 문자열)일 수 있습니다. 즉:
{% if customer.tags %}
는 단순히 존재 여부만 확인하며, " "처럼 공백도 '존재함'으로 간주합니다. 그래서 조건이 기대대로 작동하지 않을 수 있습니다.
✅ 해결 방법
- 빈 값, 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 %}
- 태그가 비어있을 경우에도 split을 통해 배열로 분리하여 조건 체크가 가능합니다.
💡 실무 팁
- customer.tags는 공란일 수도 있고, 'false', 'null', 또는 blank일 수 있습니다. 단순한 존재 여부로 조건을 걸면 오작동 가능성이 있습니다.
- 항상 다양한 형태로 "없음(null/blank/false)" 을 고려하여 조건을 작성해야 합니다.
- 실제 테스트 시에는 여러 유형의 계정 (비회원, 태그 없음 회원, 특정 태그 회원)으로 케이스별 확인 필수입니다.
✨ 결론
실무에서는 "작동될 때보다, 왜 작동하지 않는지를 파악하는 경험" 이 더 중요합니다. AI가 조건을 제시할 순 있지만, 케이스를 설계하고 테스트하는 건 결국 개발자의 몫입니다.
반응형
'웹' 카테고리의 다른 글
당근 멀티 프로그램 쓰시는 분들...-_- 종소세 관련해서 (0) | 2024.05.15 |
---|---|
트위터 청소기 캡쳐/삭제 댕댕이 프로그램 동영상도 다운 (1) | 2024.05.14 |
fullcalendar에서 +more로 모바일 화면이 불편할때 (0) | 2024.05.07 |
moviepy 에서 에러생길때 Errno 32 FFMPEG (0) | 2023.11.05 |
애니데스크 한글 입력 오류 스페이스를 쳐야 보임 (0) | 2023.10.02 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 아파치
- 그누보드5
- 유튜브
- 윈도우
- 아미나
- Apache
- 제로보드
- xe
- Magisk
- 텔레그램
- 에러
- SSL
- php8
- 당근
- 파이선
- .htaccess
- Cloudflare
- 셀레니움
- 클라우드플레어
- php
- 멀티계정
- python
- 파이썬
- 회원가입
- 그누보드
- 텔레그램봇
- lsposed
- 오토셋
- 루팅
- Fullcalendar
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함