모바일 장바구니에 담아둔 품절상품 결제 채택완료
coDribble
2년 전
조회 1,969
영카트 5.2.9.8.4 버전을 사용중인데
장바구니에 담아둔 상품이 품절처리가 되었는데 결제가 되는 이슈가 발생해서 찾아보니
위 글에서 5.3.1.7 버전 업데이트시에 적용되었다고해서
/shop/ajax.orderstock.php 파일에
</p>
<p>for($i=0; $row=sql_fetch_array($result); $i++) {
$ct_qty = $row['ct_qty'];</p>
<p> </p>
<p>/* 추가한 소스 */</p>
<p> </p>
<p>// 해당 상품이 품절 또는 판매중지 상태인지 체크합니다.
$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);</p>
<p> $category_str = '';</p>
<p> // 분류에서 판매가능한지 체크합니다.
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);</p>
<p> while($ca=sql_fetch_array($result2)){
if ( ! $ca['ca_use']) {
$item['it_use'] = false;
$category_str = '분류에서 ';
}
}
}</p>
<p> // 해당 상품이 품절 상태 또는 판매중지이면
if( $item['it_soldout'] || !$item['it_use'] ){</p>
<p> $soldout_txt = $item['it_soldout'] ? '품절' : $category_str.'판매중지';
$item_option = $row['it_name'];
if($row['io_id'])
$item_option .= '('.$row['ct_option'].')';</p>
<p> die( $item_option." 상품이 ".$soldout_txt." 되었습니다.\n\n장바구니에서 해당 상품을 삭제후 다시 주문해 주세요." );
}</p>
<p> </p>
<p>/* 추가한 소스 */</p>
<p> </p>
<p> if(!$row['io_id'])</p>
<p>~~~~</p>
<p>}</p>
<p>
이렇게 추가를 했습니다
pc 버전에서는 적용이 잘 되어 결제넘어갈때 막힙니다.
그런데 모바일에서는 여전히 장바구니에 담아놓은 상품이 품절되었을때 결제까지 넘어가면
결제가 진행됩니다... pc는 품절, 판매중지 잘 막히는데 모바일은 왜 안막히는지 영문을 모르겠습니다.
모바일 orderform.sub 파일에 pay_approval 함수안에 재고체크하는 order_stock_check 함수를 불러오는데도 결제가 되다보니 어디를 손봐야할지 모르겠습니다...
모바일에서도 pc와 동일하게 결제넘어갈때 품절, 판매중지인건 결제가 안되게 어떻게 막아야 하나요...??
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인