사례: 픽셀디자인 고객의 워드프레스 우커머스 쇼핑몰 제작시 카페24에서 저장된 회원정보와 포인트 및 적립금을 워드프레스 우커머스 회원 시스템 연동 및 적립금/포인트 일괄 등록 이슈
1. 문제 발생 시나리오 ( 회원정보 약 3만건 내외 )
배경:
CSV 또는 WP All Import, 자체 스크립트 등을 통해 WooCommerce의 회원(user) 정보를 대량으로 등록하거나 업데이트하는 과정에서, 포인트/적립금 관련 필드(meta key)가 제대로 등록되지 않음.
문제 요약: ( 적립금 및 포인트 플러그인마다 user_meta_key 이름 다름 )
-
회원 정보는 정상적으로 등록됨
-
_ywpar_user_total_points
,_ywpar_points_collected
,_customer_fund
등의 user_meta key가 생성되지 않음 -
따라서 적립금/포인트가 UI 및 기능에 반영되지 않음
2. 주요 원인 분석
구분 | 설명 |
---|---|
❌ 메타키 자동 생성 미지원 | YITH 플러그인 등 일부 플러그인은 회원가입 시점 또는 첫 로그인 시에만 해당 meta_key 를 자동 생성함 |
❌ CSV 업로드의 구조적 한계 | WP All Import와 같은 도구는 해당 메타키가 존재하지 않으면 무시하거나 생성하지 않음 |
❌ 메타키 조건 누락 | 대량 등록 시 user_id 가 먼저 등록되고, 이후 관련 메타키가 자동 생성되는 이벤트가 없음 |
❌ 데이터 정합성 누락 | _customer_fund , _ywpar_user_total_points 등은 숫자형 필드이며, 등록 시 데이터 타입이 맞지 않으면 반영되지 않음 |
3. 해결 방법
✅ 1. 회원등록 이후 초기 메타키 일괄 생성 스크립트 실행
-
새롭게 등록된 회원 중 메타키가 없는 대상에 대해 기본값으로 메타키를 수동 생성
-
적립금:
_customer_fund = 0
-
포인트:
_ywpar_user_total_points = 0
,_ywpar_points_collected = 0
✅ 2. WP All Import 사용 시 ACF Add-on 또는 사용자 메타 필드 명시적 설정
-
필드명이 정확히
_customer_fund
,_ywpar_user_total_points
인지 확인 -
ACF나 플러그인 구조에 따라
postmeta
,usermeta
,options
중 저장 위치 구분 필요
✅ 3. 데이터 삽입 전 사전 검사 로직 구성
-
삽입 전 대상
user_id
가 존재하는지 확인 -
해당
user_id
에meta_key
가 이미 존재하는 경우는 skip 또는 update -
없는 경우에는
add_user_meta()
방식으로 생성
✅ 4. 플러그인 내부 훅 활용 (권장)
-
YITH 등의 포인트/적립금 플러그인이 제공하는 회원가입 후 후킹 포인트(action hook) 를 활용하여 자동 메타 등록 처리 가능
예:user_register
,woocommerce_created_customer
훅 활용
4. 기술 운영 팁
항목 | 내용 |
---|---|
추천 방식 | 메타키 선 삽입 → WP All Import 또는 코드 업데이트 |
테스트 대상 | 신규 유저 ID에 대해 메타 유무 체크: SELECT * FROM wp_usermeta WHERE user_id = XXX |
주의 사항 | 포인트/적립금 데이터는 int 또는 float로 처리, 문자열 삽입 시 오류 발생 가능 |
반복처리 | 대량 삽입 후 log 테이블 로 성공 여부 및 실패 사유 기록 추천 |
✅ 마무리 요약
회원정보만 등록되었다고 WooCommerce 확장기능이 제대로 작동하는 것은 아니다.
포인트·적립금 기능은 해당 user_meta의 생성 유무에 따라 정상 작동이 결정되며, 대량 등록 시에는 반드시 메타키 존재 여부와 값을 수동 확인 또는 후처리하는 절차가 필요하다. wp all import만으로는 yith 적립금 및 포인트 대량 등록 및 업데이트 되지 않음