등급별 상품 가격 상이 시 장바구니 문제
https://sir.kr/cmall/1493176008
위 플러그인을 구매하여 운영중인데요
[code]
function get_price($it)
{
global $member;
if ($it['it_tel_inq']) return '전화문의';
//comcose_edit_2018.04.23 금액조정 시작
//제외아이템
$sql_except_it = "select *, group_concat(cose_except_add_it_id) as 'except_it' from comcose_sellprice_item_except";
$result_except_it = sql_query($sql_except_it);
$add_except_it= sql_fetch_array($result_except_it);
$add_except_it_array = explode(',', $add_except_it['except_it']);
//제외카테고리
$sql_except_cat_cnt="select * from comcose_sellprice_category_except";
$result_except_cat_cnt = sql_query($sql_except_cat_cnt);
$sql_except_cat = "select *, group_concat(cose_except_add_cat_id) as 'except_cat' from comcose_sellprice_category_except";
$result_except_cat = sql_query($sql_except_cat);
$add_except_cat= sql_fetch_array($result_except_cat);
if (sql_num_rows($result_except_cat_cnt) > 0) {$add_except_cat_array = explode(',', $add_except_cat['except_cat']);}else if (sql_num_rows($result_except_cat_cnt) == 0){$add_except_cat_array = array(comcose);}
//아이템별
$sql_add_item="select * from comcose_sellprice_item_add";
$result_add_item = sql_query($sql_add_item);
//카테고리별
$sql_add_cat="select * from comcose_sellprice_category_add where cose_cat_add_use = 1";
$result_add_cat = sql_query($sql_add_cat);
//회원권한별
$sql_add_user ="select * from comcose_sellprice_level";
$result_add_user = sql_query($sql_add_user);
$add_user = sql_fetch_array($result_add_user);
$level1 = round($it['it_price'] * ($add_user['cose_add_level_1'] / 100));
$level2 = round($it['it_price'] * ($add_user['cose_add_level_2'] / 100));
$level3 = round($it['it_price'] * ($add_user['cose_add_level_3'] / 100));
$level4 = round($it['it_price'] * ($add_user['cose_add_level_4'] / 100));
$level5 = round($it['it_price'] * ($add_user['cose_add_level_5'] / 100));
$level6 = round($it['it_price'] * ($add_user['cose_add_level_6'] / 100));
$level7 = round($it['it_price'] * ($add_user['cose_add_level_7'] / 100));
$level8 = round($it['it_price'] * ($add_user['cose_add_level_8'] / 100));
$level9 = round($it['it_price'] * ($add_user['cose_add_level_9'] / 100));
//아이템별 적용시
if (sql_num_rows($result_add_item) > 0) {
//1등급
if ($member['mb_level'] == 1){
for($i=0; $row_add_item = sql_fetch_array($result_add_item); $i++){
if($it['it_id'] == $row_add_item['cose_item_add_it_id']){
if($row_add_item['cose_item_add_time'] == '1' && $row_add_item['cose_item_add_time_start'] <= G5_TIME_YMD && $row_add_item['cose_item_add_time_end'] >= G5_TIME_YMD) {
if($row_add_item['cose_item_add_set_price_type11'] == '+' ){$price = $it['it_price'] + $row_add_item['cose_item_add_set_price11'];}
else if($row_add_item['cose_item_add_set_price_type11'] == '-' ){$price = $it['it_price'] - $row_add_item['cose_item_add_set_price11'];}
} else {
if($row_add_item['cose_item_add_set_price_type1'] == '+' ){$price = $it['it_price'] + $row_add_item['cose_item_add_set_price1'];}
else if($row_add_item['cose_item_add_set_price_type1'] == '-' ){$price = $it['it_price'] - $row_add_item['cose_item_add_set_price1'];}
}
break 1;
}
//제외아이템
else if (in_array($it['it_id'], $add_except_it_array)){$price = $it['it_price'];}
//제외카테고리
else if (in_array($it['ca_id'], $add_except_cat_array) or in_array($it['ca_id2'], $add_except_cat_array) or in_array($it['ca_id3'], $add_except_cat_array)){$price = $it['it_price'];}
//카테고리별 적용시
else if (sql_num_rows($result_add_cat) > 0) {
for($i=0; $row_add_cat = sql_fetch_array($result_add_cat); $i++){
if($it['ca_id'] == $row_add_cat['cose_cat_add_cat_id'] or $it['ca_id2'] == $row_add_cat['cose_cat_add_cat_id'] or $it['ca_id3'] == $row_add_cat['cose_cat_add_cat_id']){
if($row_add_cat['cose_cat_add_set_price_type'] == '+' ){$price = $it['it_price'] + $it['it_price'] * ($row_add_cat['cose_cat_add_set_price'] / 100);}
else if($row_add_cat['cose_cat_add_set_price_type'] == '-' ){$price = $it['it_price'] - $it['it_price'] * ($row_add_cat['cose_cat_add_set_price'] / 100);}
break 2;
} else {
//회원권한별
if ($add_user['cose_add_level_use'] == 1 ){
if($add_user['cose_add_level_1_type'] == '+' or $add_user['cose_add_level_1_type'] == ''){$price = $it['it_price'] + $level1;}else if($add_user['cose_add_level_1_type'] == '-' ){$price = $it['it_price'] - $level1;}
} else if ($add_user['cose_add_level_use'] == 0 ){$price = $it['it_price'];}
}
}
}
//카테고리별 미적용시
else if (sql_num_rows($result_add_cat) == 0) {
//회원권한별
if ($add_user['cose_add_level_use'] == 1 ){
if($add_user['cose_add_level_1_type'] == '+' or $add_user['cose_add_level_1_type'] == ''){$price = $it['it_price'] + $level1;}else if($add_user['cose_add_level_1_type'] == '-' ){$price = $it['it_price'] - $level1;}
} else if ($add_user['cose_add_level_use'] == 0 ){$price = $it['it_price'];}
}
}
}
.
.
중략
[/code]
위 코드(shop.lib.php)처럼 등급별로 가격이 다르게 나옵니다
문제는 장바구니 이용시 상품DB의 가격과 다르기 때문에 오류메세지가 표출되고
비회원 장바구니 담기 -> 로그인 시에도 가격 변동없이 비회원 가격으로 계속 있는 문제가 생깁니다.
이것 모두 shop.lib.php의 before_check_cart_price 부분에서 해결해야 하는 문제입니다.
비교가격이 상품 item DB의 가격이기 때문에 발생하는 것이고
이것을 플러그인에 적용한 가격과 비교를 하게 만들어주면 되는 것입니다.
플러그인 가격 DB는 따로 저장이 되어 있습니다.
해당 부분 해결 비용과 기간 부탁드립니다 ㅠㅠ
혹시 궁금하신게 더 있으시면 문의 주세요
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 2개
문의전화 070-7613-7669
오픈톡 https://open.kakao.com/me/flyweb
연락오는대로 바로 연락드릴게요