회원 등급별 다른 가격으로 표시 및 구매
본문
sir에 있는 몇몇 팁들을 보면서 작업을 해보고 있습니다.
관리자 페이지에 테이블 하나를 생성해서 아래와 같은 데이터를 입력해둔 상태입니다.
저기서 가져오는 회원등급은 $member['mb_level'] 값이구요.
그리고 각각의 % 값은 SQL로 가져오도록 되어있습니다.
이상황에서 수정해야할 부분들을 파보고 있는데 일단은
shop.lib.php 에 있는 get_price() 함수를 고쳐서 상품페이지에 있는 가격이 수정되도록 하였습니다.
function get_price($it)
{
global $member;
global $pickup_fee;
global $check_fee;
$sql = " select * from g5_level_ratio where grade='".$member['mb_level']."' ";
$row = sql_fetch($sql);
if ($it['it_tel_inq']) return '전화문의';
$pickup_fee = $row['pickup_fee_percent'] * $it['it_price'];
$check_fee = $row['check_fee_percent'] * $it['it_price'];
// 일반 회원일 경우 픽업비, 검품비 최소금액을 1000원으로 설정, 이외 등급은 200원으로 설정
if($member['mb_level'] == 2) {
if($pickup_fee < 1000) {
$pickup_fee = 1000;
}
if($pickup_fee < 1000){
$pickup_fee = 1000;
}
} else {
if($pickup_fee < 200) {
$pickup_fee = 200;
}
if($pickup_fee < 200){
$pickup_fee = 200;
}
}
if ($it['ca_id'] == 30) { // 예치금 항목인 30 분류 카테고리일때에는 픽업비 검품비 사용하지 않음
$price = $it['it_price'];
} else {
$price = $it['it_price'] + $pickup_fee + $check_fee; // 그외 분류에서 계산된 픽업비 검품비 최종 금액
}
return (int)$price;
}
이렇게 하니 상품페이지에서 제대로 등급별 가격이 노출이 되더라구요. 그런데 여기서 문제가 생깁니다.
제가 확인해본 바로는 저 shop.lib.php 파일에서 get_price() 함수를 수정을 해도 이것은 표시만 되는 것이지 실제로 카트나 주문에 반영되는것이 안되기때문에 수정을 좀 해야하더군요.
제가 알아본 바로는 일단
cartupdate.php ( 구매 버튼 클릭시 주문한 상품이 g5_shop_cart 테이블에 저장되는 쿼리 )
orderform.sub.php ( 구매 버튼 클릭하고 주문서 페이지에서의 가격 반영 )
그리고 아직 이후 단계는 아니지만 최종적으로 주문하기 버튼을 눌렀을때, 작업되는 쿼리와 검증되는 쿼리도 있는것같더라구요.
이게 어짜피 SQL로 회원등급을 가져오고 해당되는 %들을 최종 금액에 추가만 해주는 작업이라 어려운게 아닌것같은데 은근 수정해야할 곳들이 많다보니, 그 부분들을 찾아내고 검증하는게 어려운것같습니다.
다행이라면 포인트 결제만 지원을 해서 (결제 금액은 미리 충전해놓는 개념) PG사 쪽 관련 코드들은 하나도 수정안하고 (무통장 + 포인트) 결제 방식으로만 되는 부분들을 수정하면 되는데 이방법이 맞게 진행하는것인지 잘 모르겠습니다.
영카트 팁게 보니 아예 처음부터 it_price1, it_price2 이런식으로 가격을 지정해주고 등급별로 가격을 치환하시는 방법도 있던데 가격이 변동될 여지 때문에 it_price 에 추가금 비율을 더해주는 방식으로 진행한거였거든요.
혹시 관련 작업을 해보신분들 중에서 어떤 부분을 수정해야하는지 알고계신분이 계신지요?
이 작업이 마무리되면 저도 팁게를 한번 작성해볼까합니다. 이 기능 원하시는분이 많은것같은데 상품 표시 쪽 코드이거나 (주문쪽으로는 수정이 안된) 너무 옛날 코드라 적용이 안되는 경우도 있는것같더라구요.
!-->