2026, 새로운 도약을 시작합니다.

모바일 장바구니에 담아둔 품절상품 결제 채택완료

영카트 5.2.9.8.4 버전을 사용중인데

장바구니에 담아둔 상품이 품절처리가 되었는데 결제가 되는 이슈가 발생해서 찾아보니

https://sir.kr/qa/335622

위 글에서 5.3.1.7 버전 업데이트시에 적용되었다고해서

/shop/ajax.orderstock.php 파일에 

Copy


for($i=0; $row=sql_fetch_array($result); $i++) {

    $ct_qty = $row['ct_qty'];

 

/* 추가한 소스 */

 

// 해당 상품이 품절 또는 판매중지 상태인지 체크합니다.

    $sql = " select it_soldout, it_use, ca_id, ca_id2, ca_id3 from {$g5['g5_shop_item_table']} where it_id = '".$row['it_id']."' ";

    $item = sql_fetch($sql);

    $category_str = '';

    // 분류에서 판매가능한지 체크합니다.

    if( $item['it_use'] && ($item['ca_id'] || $item['ca_id2'] || $item['ca_id3']) ){

        $sql = " select ca_use from {$g5['g5_shop_category_table']} where (ca_id = '".$item['ca_id']."' or ca_id = '".$item['ca_id2']."' or ca_id = '".$item['ca_id3']."') ";

        $result2 = sql_query($sql);

        while($ca=sql_fetch_array($result2)){

            if ( ! $ca['ca_use']) {

                $item['it_use'] = false;

                $category_str = '분류에서 ';

            }

        }

    }

    // 해당 상품이 품절 상태 또는 판매중지이면

    if( $item['it_soldout'] || !$item['it_use'] ){

        $soldout_txt = $item['it_soldout'] ? '품절' : $category_str.'판매중지';

        $item_option = $row['it_name'];

        if($row['io_id'])

            $item_option .= '('.$row['ct_option'].')';

        die( $item_option." 상품이 ".$soldout_txt." 되었습니다.\n\n장바구니에서 해당 상품을 삭제후 다시 주문해 주세요." );

    }

 

/* 추가한 소스 */

 

    if(!$row['io_id'])

~~~~

}

이렇게 추가를 했습니다

pc 버전에서는 적용이 잘 되어 결제넘어갈때 막힙니다.

그런데 모바일에서는 여전히 장바구니에 담아놓은 상품이 품절되었을때 결제까지 넘어가면

결제가 진행됩니다... pc는 품절, 판매중지 잘 막히는데 모바일은 왜 안막히는지 영문을 모르겠습니다.

모바일 orderform.sub 파일에 pay_approval 함수안에 재고체크하는 order_stock_check 함수를 불러오는데도 결제가 되다보니 어디를 손봐야할지 모르겠습니다...

모바일에서도 pc와 동일하게 결제넘어갈때 품절, 판매중지인건 결제가 안되게 어떻게 막아야 하나요...??

답변 1개

버그면 여기로 문의 해보세요

https://sir.kr/cm_bug

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

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

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

로그인
🐛 버그신고