영카트 결제상태 질문

영카트 결제상태 질문

QA

영카트 결제상태 질문

답변 2

본문

영카트 관리자 > 주문내역 페이지에 보면 전체취소 부분취소 이렇게 분류하여 검색할 수 있는데요

 

결제상태가 부분취소가 되는 조건은 뭔가요?

 

테스트로 3가지 상품을 한 주문건으로 주문하고 관리자에서 1개를 취소시켜버렸는데 부분취소로 나오지 않네요

 

혹시 신용카드로 부분취소할 때만 결제상태가 부분취소로 되나요?

 

이 질문에 댓글 쓰기 :

답변 2

PG사를 통해서 신용카드나 계좌이체로 결제한 건 중 일부를 취소한 경우 부분취소라고 뜹니다.

제가 알아보니

 

orderlist.php에

 

case '부분취소':
            $where[] = " od_status IN('주문', '입금', '준비', '배송', '완료') and od_cancel_price > 0 ";
            break;

 

이런 부분이 있더군요

 

결국은 '주문', '입금', '준비', '배송', '완료' 중에 취소금액이 0보다 크면 부분취소로 뜨네요

 

만약 어떻게 왔다리갔다리 주문상태를 변경하면서

 

주문상태는 취소, 3가지 상품 ct_status는 완료,완료,취소라면 부분취소로 검색이 되지 않는거였습니다.

위에 첨부해주신 코드는 status가 '부분취소'일 경우에 주문, 입금, 준비, 배송, 완료이면서 od_cancel_price가 0 이상인 목록을 select할 수 있도록 분기하는 코드입니다.

말씀하신 것과 반대 되는거지요 :)

음 무슨 말인지 모르겠지만

if ($od_status) {
    switch($od_status) {
        case '전체취소':
            $where[] = " od_status = '취소' ";
            break;
        case '부분취소':
            $where[] = " od_status IN('주문', '입금', '준비', '배송', '완료') and od_cancel_price > 0 ";
            break;
        default:
            $where[] = " od_status = '$od_status' ";
            break;
    }

이 부분인데요

제가 말한게 이게 맞을겁니다.

이 소스에서 '부분취소' 일 경우에 라는건 목록에서 부분취소를 선택했을 때라는 거니까요.

od_status 자체는 부분취소로 기록되는 부분은 없습니다.

목록에서 부분취소를 찾아줄 뿐이죠.

근데 찾아주는 조건이 위에 있는 것입니다.

제가 어떻게 테스트하며 돌리다가 목록에 완료가 있음에도 od_status가 취소가 되었던 것입니다.

보통은 od_status는 완료이고 3개중 하나 취소해봐야 od_status는 완료 그대로 입니다.

만약 3개를 다 취소하면 od_status는 취소입니다.

od_status = 부분취소라는 부분은 없죠.

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