영카트 카드결제 주문 취소시 포인트환불 문제
영카트 카드결제 주문취소를 했을 때 고객 아이디로 사용된 포인트까지 같이 환불이 되어야 하는데
카드취소 되었는데도 포인트가 고객에게 다시 쌓여지지 않는 문제는 어디가 문제가 생겨서 이렇게 되는건지
혹시 아시는 분 있으실까요?
계좌이체 거래는 취소시 사용한 포인트 그대로 다시 환불이 되고 있는데,
카드취소만 현재 왜 확인이 되지 않는지 모르겠네요 a
다른분들은 어떻게 사용하고 계신지요
답변 4개 / 댓글 2개
결론부터 말하면 영카트5 기본 코드에는 관리자 주문취소 시 사용포인트를 자동 환불하는 로직이 없습니다. 소스 확인한 내용입니다.
관리자 취소 경로인 adm/shop_admin/orderformcartupdate.php를 보면, PG 카드취소 요청 성공 후 od_refund_price만 갱신하고 포인트는 건드리지 않습니다. 대신 마지막에 od_receipt_point가 있으면 "포인트로 결제한 주문은 회원관리 > 포인트관리에서 수작업으로 포인트를 맞추어 주셔야 합니다"라는 alert만 띄우고 끝납니다. 이 파일에 있는 delete_point() 호출은 사용포인트 환불이 아니라 배송완료 시 적립됐던 포인트를 회수하는 코드라 별개입니다.
반면 계좌이체 주문이 취소되면 포인트가 돌아오는 건, 그 주문이 고객 본인이 마이페이지에서 직접 취소한 케이스이기 때문일 겁니다. shop/orderinquirycancel.php 마지막에 insert_point($member['mb_id'], $od['od_receipt_point'], "주문번호 $od_id 본인 취소")가 있어서 여기만 자동 환불이 됩니다. 이 경로는 아직 부분취소가 없고 전 상품 상태가 '주문'일 때만 열리니까, 입금 전 무통장 주문이 주로 여기를 타고 카드주문은 대부분 관리자가 취소하니 차이가 나는 겁니다.
부분취소(orderpartcancelupdate.php)까지 커버하려면 취소금액 비율만큼 환불하는 계산이 추가로 필요한데, 그건 운영 정책에 따라 달라서 필요하면 따로 짜야 합니다. 그리고 $pg_res_cd가 비어 있는 조건을 걸어둔 이유는 PG 취소가 실패했는데 포인트만 돌려주는 사고를 막기 위한 겁니다.
답변을 작성하려면 로그인이 필요합니다.