회원 등급별 다른 가격으로 표시 및 구매 채택완료
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 에 추가금 비율을 더해주는 방식으로 진행한거였거든요.
혹시 관련 작업을 해보신분들 중에서 어떤 부분을 수정해야하는지 알고계신분이 계신지요?
이 작업이 마무리되면 저도 팁게를 한번 작성해볼까합니다. 이 기능 원하시는분이 많은것같은데 상품 표시 쪽 코드이거나 (주문쪽으로는 수정이 안된) 너무 옛날 코드라 적용이 안되는 경우도 있는것같더라구요.
답변 1개
허무하게 해결 완료했습니다. cartupdate.php가 핵심이네요. 나중에 정리해서 팁게 올려보도록 하겠습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인