모바일 장바구니에 담아둔 품절상품 결제

모바일 장바구니에 담아둔 품절상품 결제

QA

모바일 장바구니에 담아둔 품절상품 결제

답변 1

본문

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

 

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

 

https://sir.kr/qa/335622

 

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

 

/shop/ajax.orderstock.php 파일에 


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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 16,792
© SIRSOFT
현재 페이지 제일 처음으로