그누보드5 바로구매하기 기능!

그누보드5 바로구매하기 기능!

QA

그누보드5 바로구매하기 기능!

본문

바로구매하기 기능에 대해 몇가지 여쭙고자 합니다.

 

1. 바로구매하기 기능의 로직은 어떻게 되나요?

먼저 바로구매하려는 상품을 장바구니에 추가하고 장바구니에 추가된 상품으로 주문폼을 작성하게 되는 것으로 알고있는데 이런식으로 장바구니를 한번 거치게끔 로직이 짜여진게 맞나요?

 

2. 바로구매하기 시 "장바구니가 비어 있습니다." 라는 메세지창이 뜹니다.

아래의 소스코드를 보시면 아시겠지만 orderform.php 파일에서 장바구니가 비어있는지 확인하고 $tmp_cart_id 값으로 장바구니 테이블에서 조회했을때 검색결과가 0이면 메세지를 띄운 후 장바구니 페이지로 이동되게 짜여져 있습니다.

그런데, 바로구매하기 기능인데 왜 장바구니의 건수를 체크하고 $sw_direct의 값으로 $tmp_cart_id 의 값이 정해지는지 모르겠습니다. $sw_direct의 값은 장바구니에 담을것인지 바로구매할 것인지에 따라 0또는 1의 값으로 정해지는 것이고,...또, 세션에 저장된 값을 가져오는 부분에 대해서 이해가 되지 않습니다.

 


// 장바구니가 비어있는가?
if ($sw_direct) {
    $tmp_cart_id = get_session('ss_cart_direct');
}
else {
    $tmp_cart_id = get_session('ss_cart_id');
}
if (get_cart_count($tmp_cart_id) == 0){
    alert('장바구니가 비어 있습니다.', G5_SHOP_URL.'/cart.php');
}

 

아시는분이 계시다면 구체적으로 설명 부탁드립니다..^^

이 질문에 댓글 쓰기 :

답변 3

위 질문내용은 그누보드가 아니고 영카드가 아닐까 생각됩니다.

 

우선 1번 에 대한 부분은요..바로가기도 장바구니에 한번 담고 주문으로 넘어갑니다.

 

그리고 2번은  "장바구니가 비어 있습니다"은 정상적으로 장바구니에 안담기였거나 세션값이

정상적으로 셋팅이 안되었을 경우가 많습니다.

 

 

 

 

일부 상품은 바로구매 버튼 클릭 시에 "장바구니가 비어 있습니다." 라는 메세지가 뜨면서 장바구니에 담아집니다.. 이 경우라면 세션값이 정상적으로 설정이 안되어서 그런것으로 추정이 됩니다만.. 

ss_cart_direct의 값과 ss_cart_id의 값 설정이 shop.lib.php 파일에서 이루어지는거 까지 확인을 했습니다. 뭘 어떻게 수정해야 하나요? 

저도 비슷한 경우로 오류가 나서 확인을 해봤습니다.

질문자님이랑 영카트 버전이 맞는지는 모르겠는데요 

 

저같은경우는 옵션이 있는 상품에서 옵션을 체크하고 바로구매를 하면 같은 오류가 났었는데요.

 

 

./cartupdate.php파일로 먼저 가게되는데요.

바로구매를 하게되면 일단 장바구니에 인설트를 하는 작업이 있습니다. 

인설트하기전에 옵션카운트의 수로 for문이 도는데

해당 for문 시작하는 줄에 

$io_id = $_POST['io_id'][$it_id][$k];

$io_type = $_POST['io_type'][$it_id][$k];

$io_value = $_POST['io_value'][$it_id][$k];

이렇게 넘어온 값을 넣어주게 되어있습니다.

 

그리고 

// 선택옵션정보가 존재하는데 선택된 옵션이 없으면 건너뜀

if($lst_count && $io_id == '')

   continue;

 

// 구매할 수 없는 옵션은 건너뜀

if($io_id && !$opt_list[$io_type][$io_id]['use'])

   continue;

 

해당사항없으면 넘겨버립니다. 

건너띄면 안되고 쭉 읽고 내려가야되는데 

의아해서 if문 위에 

alert($io_id.'|||'.$io_type.'|||'.$io_value);

경고창을 띄워봤거든요.

 

결과는 한글이 깨져서 넘어왔습니다. 

5f13497dc6b4afbacff9e8c81c1d37bd_1465279298_286.jpg

그래서 인설트못하고 바로 넘어가버린듯하더라구요.

 

$io_id = $_POST['io_id'][$it_id][$k];

$io_type = $_POST['io_type'][$it_id][$k];

$io_value = $_POST['io_value'][$it_id][$k];

밑에 

$io_id = stripslashes($io_id);

$io_type = stripslashes($io_type);

$io_value = stripslashes($io_value);

이렇게 해서 처리는 했습니다..

 

저곳이아니면 한글로 넘어오는 다른 값들체크도 해보시면 좋을것같아요. 

 

혹시나 저와 같은 오류가 아닌가 싶어서 답변 작성했습니다.
 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,680 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT