상품을 장바구니에 담을시 g5_shop_cart에 상품이 담기는 것으로 알고 있습니다.
커스터마이징을 톻애 상품가가 1000원이고, 회원레벨별 할인에 의해 10%할인된 900원이 담겨야 하는데, 1000원이 담겨버립니다.
바로구매시 900원이 담기는데, 장바구니에 담길 시 1000원이 담기는것으로 보아 cart관련하여 문제가 있는것 같습니다.
어느 부분이 실제 상품을 장바구니에 담기게 하는지 궁금합니다.
해당 부분을 수정해서 할인가를 적용해야 하는데 해당 부분을 못찾겠습니다.
cart.php 에 보면 $s_cart_id = get_session('ss_cart_id'); 을 통해 ss_cart_id를 가져오는데, shop.lib.php 에서 set_cart_id($direct)를 보면 아래와 같이 설정되어 있습니다. ss_cart_id 에 실제 상품을 등록하는 로직이 안보이는데 해당 부분은 어디에서 찾을 수 있는지 궁금합니다.
커스터마이징을 톻애 상품가가 1000원이고, 회원레벨별 할인에 의해 10%할인된 900원이 담겨야 하는데, 1000원이 담겨버립니다.
바로구매시 900원이 담기는데, 장바구니에 담길 시 1000원이 담기는것으로 보아 cart관련하여 문제가 있는것 같습니다.
어느 부분이 실제 상품을 장바구니에 담기게 하는지 궁금합니다.
해당 부분을 수정해서 할인가를 적용해야 하는데 해당 부분을 못찾겠습니다.
cart.php 에 보면 $s_cart_id = get_session('ss_cart_id'); 을 통해 ss_cart_id를 가져오는데, shop.lib.php 에서 set_cart_id($direct)를 보면 아래와 같이 설정되어 있습니다. ss_cart_id 에 실제 상품을 등록하는 로직이 안보이는데 해당 부분은 어디에서 찾을 수 있는지 궁금합니다.
Copy
// cart id 설정
function set_cart_id($direct)
{
global $g5, $default, $member;
if ($direct) {
$tmp_cart_id = get_session('ss_cart_direct');
if(!$tmp_cart_id) {
$tmp_cart_id = get_uniqid();
set_session('ss_cart_direct', $tmp_cart_id);
}
} else {
// 비회원장바구니 cart id 쿠키설정
if($default['de_guest_cart_use']) {
$tmp_cart_id = preg_replace('/[^a-z0-9_\-]/i', '', get_cookie('ck_guest_cart_id'));
if($tmp_cart_id) {
set_session('ss_cart_id', $tmp_cart_id);
//set_cookie('ck_guest_cart_id', $tmp_cart_id, ($default['de_cart_keep_term'] * 86400));
} else {
$tmp_cart_id = get_uniqid();
set_session('ss_cart_id', $tmp_cart_id);
set_cookie('ck_guest_cart_id', $tmp_cart_id, ($default['de_cart_keep_term'] * 86400));
}
} else {
$tmp_cart_id = get_session('ss_cart_id');
if(!$tmp_cart_id) {
$tmp_cart_id = get_uniqid();
set_session('ss_cart_id', $tmp_cart_id);
}
}
// 보관된 회원장바구니 자료 cart id 변경
if($member['mb_id'] && $tmp_cart_id) {
$sql = " update {$g5['g5_shop_cart_table']}
set od_id = '$tmp_cart_id'
where mb_id = '{$member['mb_id']}'
and ct_direct = '0'
and ct_status = '쇼핑' ";
sql_query($sql);
}
}
}
답변 2개 / 댓글 2개
채택된 답변
+20 포인트
참고삼아 보세요.
shop/cartupdate.php 에 ....
=========================
$it = get_shop_item($it_id);
$it_price = (int)$it['it_price']; // 기본 상품가
if ($is_member) {
// 예: 회원 레벨2 이상이면 10% 할인 (설정해 놓으신거에 맞게 수정)
$discount_rate = 0.1;
$it_price = (int)($it_price * (1 - $discount_rate));
}
// 3. 수정 ....
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
SET ct_id = '$ct_id',
od_id = '$s_cart_id',
mb_id = '{$member['mb_id']}',
it_id = '$it_id',
it_price = '$it_price', // 계산된 할인액(900)
ct_price = '$it_price', // 계산된 할인액(900)
ct_qty = '$ct_qty',
... ";
shop/cartupdate.php 에 ....
=========================
$it = get_shop_item($it_id);
$it_price = (int)$it['it_price']; // 기본 상품가
if ($is_member) {
// 예: 회원 레벨2 이상이면 10% 할인 (설정해 놓으신거에 맞게 수정)
$discount_rate = 0.1;
$it_price = (int)($it_price * (1 - $discount_rate));
}
// 3. 수정 ....
$sql = " INSERT INTO {$g5['g5_shop_cart_table']}
SET ct_id = '$ct_id',
od_id = '$s_cart_id',
mb_id = '{$member['mb_id']}',
it_id = '$it_id',
it_price = '$it_price', // 계산된 할인액(900)
ct_price = '$it_price', // 계산된 할인액(900)
ct_qty = '$ct_qty',
... ";
답변에 대한 댓글 2개
위젯마스터
2026-04-09 (목) 14:53:19
before_check_cart_price($tmp_cart_id) 이것도 함께 수정해야 하네요. 도움되었습니다 .감사합니다.
2026-04-09 (목) 13:31:16
cartupdate.php
답변을 작성하려면 로그인이 필요합니다.