장바구니에 유료로 예약포인트 차감후 체크해서 들어가게 했는데...
본문
for($i=0; $i<$count; $i++) {
for($k=0; $k<$opt_count; $k++) {
if (isset($post_ct_qtys[$it_id][$k]) && $post_ct_qtys[$it_id][$k] < 1)
alert('수량은 1 이상 입력해 주십시오.');
}
if( $sw_direct == 0 )
{
if( $act == "" )
{
$reservesql = " select mb_id,mb_point from g5_member where mb_id = '{$member['mb_id']}' ";
$reserverow = sql_fetch($reservesql);
if( $reserverow['mb_point'] < 1000 )
{
alert( '포인트'.'\n\n'.'지금 보유한 포인트는' .''.$reserverow['mb_point'].'point');
break;
}
else
{
$po_point = -1000;
$po_content = "Booking deduction";
$po_expire_term = $config['cf_point_term'];
insert_point($reserverow['mb_id'], $po_point, $po_content, '@passive', $reserverow['mb_id'], $member['mb_id'].'-'.uniqid(''), $expire);
$isreserved = 1;
$idreserved = $reserverow['mb_id'];
// it_id 의 경우 isset 으로 받아오기전에는 it_id[0] 에 값이 들어간다.
$isreservedsql = "update g5_shop_item set it_is_reserve='$isreserved', it_id_reserve='$idreserved' where it_id='$it_id' ";
sql_query($isreservedsql);
}
}
}
장바구니에 넣는 부분 cartupdate.php 입니다.
소스에서도 보이듯, 포인트가 1000이 안되는 경우 분명 break를 겁니다.
포인트가 없는 사람이 장바구니 추가를 눌러서 보면 "지금 포인트가 모자라" 라는 메시지를 보내고
다시 원페이지로 돌아옵니다.
재고를 1로 해놔서 포인트를 사용하지 않으면 장바구니에 담을 수가 없게 해놨는데..
포인트 없는 아이디로 장바구니 테스트를 했습니다.
포인트 없다는 메시지 잘 나오고요.
물론 내 장바구니에도 상품이 담기지 않았습니다.
근데 그 이후로 재고가 없다는 메시지가 보이는겁니다.
이게 말이 되나 싶어서 ,
혹시나 해서 DB g5_shop_cart를 체크했더니 거긴 들어가 있습니다.
문제는 그렇게 cart 디비에 들어갈거면 내 장바구니에도 보여야되는데 거기서는 안보이고요..
소스 다른 부분을 더 수정을 해야하는지요..
고수님들의 답변 기다리겠습니다 ㅠ.ㅠ
---------> 바로구매를 눌렀을 경우도 cart 테이블에 들어가긴하네요...
그럼 이부분을 어떻게 체크해야할지요... 미쵸버리겠네욤 ㅠ.ㅠ
!-->
답변 2
break 하면서 장바구니 부분 세션을 삭제하면 어떨까요
나와지면서 세션을 DB로 저장하는거 같은데 lib에 찾으면 있을거 같아요
포인트가 안되면 카트담기와 구매하기 버튼 자체를 안보이게 해버리는게 간단하지 않나요? 그자리에 포인트 얼마 부족하고 보여주는 것이
답변을 작성하시기 전에 로그인 해주세요.