자식분류값만 물려있는 제품과 부모분류값으로 발급된 카테고리할인쿠폰... 사용가능하게 하려면
본문
10 전체 - 1010 1차카테고리(총 8개) - 101010 2차 카테고리(...) - 10101010 3차 카테고리(...)
10에 속한 카테고리만 150개가 넘습니다.....
분류가 이렇게 세팅되어있는 상태에서
2차 카테고리 또는 3차 카테고리가 최하위분류로 설정이 되어있습니다.
그리고 각 상품들은 기본분류(ca_id)에 자신이 속한 최하위분류로 지정해놓은 상태인데요.
쿠폰을 카테고리 할인으로 1010 으로 발급을 했는데 사용하질 못하고 있습니다...;;
카테고리 할인을 1010으로 발급하고 1010에 속한 모든 카테고리의 상품들중에서 쿠폰이 사용 가능할 줄 알았는데.. 이게 보니까 꼭 쿠폰발급할때 적용한 카테고리id값을 상품이 물고 있어야하는거 같은데요...;;
상품도 2천개가량 되고... 2차분류(ca_id2)를 카테고리할인 적용시키기 위해서만 사용하려고...
카테고리할인할때 적용 id값(cp_target)이 달라질때마다 쿠폰적용시킬 상품들을 찾아서 2차분류(ca_id2) 설정을 카테고리할인에 적용된 분류id값(cp_target)으로 설정해줘야한다는건데... 너무 번거로울거 같아서
1010 으로 카테고리할인쿠폰이 발급되면 1010이 속한 하위카테고리들까지 적용되게하려면
어떻게 해야하나요...??
orderform.sub.php 파일 안에서 쿠폰 출력해오는 부분
// 쿠폰 불러오는 부분 $sql문의 일부
( cp_method = '1' and ( cp_target IN ( '{$row['ca_id']}', '{$row['ca_id2']}', '{$row['ca_id3']}' ) ) )
cp_target 이 상품이 물고있는 ca_id ~ 3 이 중에 target과 같은 값이 있으면 쿠폰이 출력되게 하는거 같은데...
1. cp_target의 strlen을 구하고
2. 앞에서 구한 cp_target의 길이만큼 앞에서부터 ca_id 값을 잘라내서
3. 똑같으면 쿠폰 출력...
이런 로직이면 카테고리할인 쿠폰 발급시 자식카테고리의 상품들도 쿠폰이 사용가능하지 않을까싶은데...
머리로는 로직을 생각하겠는데 구현은 어렵네요ㅠㅠㅠ
개발자는 아니지만... 영카트로만 커스텀하고 있어서 어느정도 php에서 if문으로 조건걸어서 거르고 for문으로 루프돌리고 이런정도는 하겠는데... sql문 짜는건 아직 버겁네요ㅠㅠㅠ
ps. 일단 현 상황에서 해결방안에 대해서 생각해봤습니다.
전제는 1010에 속한 모든 상품을 할인하고 싶은 경우...
1. 카테고리할인쿠폰은 1010으로 발급하고, 상품관리에서 2차분류(ca_id2)에 1010을 물린다. (노가다성)
2. 카테고리할인쿠폰을 1010이 포함된 최하위분류 값으로 1010을 포함하는 최하위분류 개수만큼 만든다. (노가다성)
3. 카테고리할인쿠폰은 1010으로 발급하고, 주문서작성시 해당 제품의 ca_id 값이 앞 4자리가 1010을 포함하는 경우 출력시킨다. (개발 필요)
개발없이 가려면... 운영하는 사람이 힘든 방법밖에 없네요;;
!-->답변 3
생각을 잘못했던 것 같습니다.
정정하여 다시 올립니다.
1) 쿠폰 출력해오는 sql 문은 원래대로 돌리고..
( cp_method = '1' and ( cp_target IN ( '{$row['ca_id']}', '{$row['ca_id2']}', '{$row['ca_id3']}' ) ) )
2) 해당 sql 문 바로 전에 다음의 구문을 넣어주면 될 것 같습니다.
$row['ca_id'] = substr($row['ca_id'], 0, 4);
$row['ca_id2'] = substr($row['ca_id2'], 0, 4);
$row['ca_id3'] = substr($row['ca_id3'], 0, 4);
( cp_method = '1' and ( cp_target like '{$row['ca_id']}%' ) )
또는
( cp_method = '1' and ( cp_target like '{$row['ca_id']}%' or cp_target like '{$row['ca_id2']}%' or cp_target like '{$row['ca_id3']}%') )
최근에 유사한 작업을 진행하게 되었는데요..
검색하다보니, 제가 작성한 지금의 글을 보게 되었고..
당시의 저의 답이 맞지 않음을 알게 되었습니다.
새로 방법을 찾았고,
팁글로 올렸습니다. https://sir.kr/yc5_tip/1837