채택완료

영카드 상품 장바구니 ss_cart_id 문의

2026-04-09 (목) 12:04:08 352
상품을 장바구니에 담을시 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 에 실제 상품을 등록하는 로직이 안보이는데 해당 부분은 어디에서 찾을 수 있는지 궁금합니다.

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',
                ... ";

답변에 대한 댓글 2개

2026-04-09 (목) 14:53:19
before_check_cart_price($tmp_cart_id) 이것도 함께 수정해야 하네요. 도움되었습니다 .감사합니다.
잘 해결 되셨다니 다행 입니다.
cartupdate.php

답변을 작성하려면 로그인이 필요합니다.