테스트 사이트 - 개발 중인 베타 버전입니다

영카트 옵션상품 장바구니 개별 등록

dropppp 2년 전 조회 1,974

옵션 상품일 때 동일한 상품을 장바구니에 담고, 다른 옵션으로 동일한 상품을 또 담았을 때,

각각 담길 수 있는 방법이 없을까요? 

 

상품1 - 양면 인쇄, 검정

상품1 - 단면 인쇄, 투명

 

현재는 이전에 담아둔 상품이 사라지고 새로 담은 상품만 장바구니에 들어갑니다..

그렇다고 수량이 추가되지도 않아요

 

shop/cartupdate.php

shop/ajax.action.php

내에서 아래 코드를 삭제해봐도 똑같습니다 

 

// 동일옵션의 상품이 있으면 수량 더함

            $sql2 = " select ct_id, io_type, ct_qty

                        from {$g5['g5_shop_cart_table']}

                        where od_id = '$tmp_cart_id'

                          and it_id = '$it_id'

                          and io_id = '$io_id'

                          and ct_status = '쇼핑' ";

            $row2 = sql_fetch($sql2);

            if(isset($row2['ct_id']) && $row2['ct_id']) {

                // 재고체크

                $tmp_ct_qty = $row2['ct_qty'];

                if(!$io_id)

                    $tmp_it_stock_qty = get_it_stock_qty($it_id);

                else

                    $tmp_it_stock_qty = get_option_stock_qty($it_id, $io_id, $row2['io_type']);

 

                if ($tmp_ct_qty + $ct_qty > $tmp_it_stock_qty)

                {

                    alert($io_value." 의 재고수량이 부족합니다.\\n\\n현재 재고수량 : " . number_format($tmp_it_stock_qty) . " 개");

                }

 

                $sql3 = " update {$g5['g5_shop_cart_table']}

                            set ct_qty = ct_qty + '$ct_qty'

                            where ct_id = '{$row2['ct_id']}' ";

                sql_query($sql3);

                continue;

            }

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

답변 4개

코드를 좀 많이 건드려야 합니다.

세션으로 생성을 해서 카트 아이디를 지정하는방식이라

또다른 유니크값을 생성해 db로 구분해서
장바구나와 오더관련 파일과 업데이트 부분들을 다 건드려줘야합니다. 
카트옵션 해당 펑션 까지 전체 작업을 다시 해야 합니다.
새로운 세션으로 컨트롤하니 이건 개별로 다 틀린 세션관리로 인해서 비효율적이더군요.

일단 작업량이 상당합니다.
의뢰를 맏기는걸 추천합니다.

로그인 후 평가할 수 있습니다

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

... 상품을 장바구니에 담고, 다른 옵션으로 동일한 상품을 또 담았을 때,

 ...이전에 담아둔 상품이 사라지고 새로 담은 상품만 장바구니에 들어갑니다..

==

이렇게 한 이유가 있지 않을까요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

d
dropppp
2년 전
저희 취급하는 상품 특성상으로는 오히려 반대라서요
엑스엠엘
2년 전
/shop/cartupdate.php: 180 부근
// 바로구매에 있던 장바구니 자료를 지운다.
if($i == 0 && $sw_direct)
sql_query(" delete from {$g5['g5_shop_cart_table']} where od_id = '$tmp_cart_id' and ct_direct = 1 ", false);

여기인데...
걱정스러운 것은
옵션이 다른 상품이 두 개가 존재하게 되는 경우 영카트가 이걸 제대로 처리 못 할 거 같군요.

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

d
2년 전

// 옵션수정일 때 기존 장바구니 자료를 먼저 삭제
        if($act == 'optionmod')
            sql_query(" delete from {$g5['g5_shop_cart_table']} where od_id = '$tmp_cart_id' and it_id = '$it_id' ");
이 부분에서 기존 장바구니가 삭제 되는것 같은데 이부분을 확인해보셔야 할것 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

d
dropppp
2년 전
해봐야겠네요 감사합니다!
d
dropppp
2년 전
이 방법도 되지는 않는 것 같아요ㅕ ㅠㅠ

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

d
2년 전

해당 부분은 재고 체크 하는 부분같은데요.^^;

로그인 후 평가할 수 있습니다

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

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

로그인