영카트 카드결제 주문취소를 했을 때 고객 아이디로 사용된 포인트까지 같이 환불이 되어야 하는데
카드취소 되었는데도 포인트가 고객에게 다시 쌓여지지 않는 문제는 어디가 문제가 생겨서 이렇게 되는건지
혹시 아시는 분 있으실까요?
계좌이체 거래는 취소시 사용한 포인트 그대로 다시 환불이 되고 있는데,
카드취소만 현재 왜 확인이 되지 않는지 모르겠네요 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 취소가 실패했는데 포인트만 돌려주는 사고를 막기 위한 겁니다.
답변에 대한 댓글 1개
대부분의 고객들은 카드 결제할때
포인트 지급을 안하도록 해다랄구해서 그러게 해드려고
관리자에 포인트관리 라는 것이있어서 왠만한거는 거기서처리하도록
안내 해 드려는데
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.