2026, 새로운 도약을 시작합니다.

주문상태 완료인데 포인트 자동적립이 안 됩니다. 채택완료

8개월 전 조회 2,782

신용카드 결제 시 주문상태가 입금이 아닌 완료로 바뀌도록 설정했고, 주문완료 0일 후에 신용카드도 포인트 자동적립 되도록 했는데 신용카드 결제완료 시 포인트 자동적립이 안 됩니다.

orderformupdate.php

Copy


else if ($od_settle_case == "신용카드")

.

.

.

    if($od_misu == 0)

        $od_status      = '완료';

1888652687_1745335092.5755.png

1888652687_1745333952.0913.png

phpmyadmin을 봐보니까 g5_shop_cart에 ct_status가 "완료"가 되었지만 ct_point_use가 0으로 나와있고,

아래 주문내역에서 "보기" 버튼을 누르면 그제서야 ct_point_use가 1로 바뀌면서 포인트가 적립이 됩니다.

1888652687_1745334135.6515.png

shop.lip.php에

Copy


function save_order_point($ct_status="완료")

{

    global $g5, $default;

 

    $beforedays = date("Y-m-d H:i:s", ( time() - (86400 * (int)$default['de_point_days']) ) ); // 86400초는 하루

    $sql = " select * from {$g5['g5_shop_cart_table']} where ct_status = '$ct_status' and ct_point_use = '0' and ct_time 

위와 같이 되어있고

adm/shop_admin/orderform.php에

Copy
// 완료된 주문에 포인트를 적립한다.

save_order_point("완료");

라고 되어 있습니다.

orderformupdate.php에

아래 코드 바로 위에

Copy
goto_url(G5_SHOP_URL.'/orderinquiryview.php?od_id='.$od_id.'&uid='.$uid);
Copy
// 완료된 주문에 포인트를 적립한다.

save_order_point("완료");

이것도 해봤는데 안 되고요.

신용카드 결제 시 바로 "완료"처리가 되는데 포인트 자동적립이 안 되고,

왜 위 주문내역에 "보기" 버튼을 클릭해야 포인트 자동적립이 되는 걸까요?

전문가님들께 조언을 구합니다.

답변 1개

채택된 답변
+20 포인트

관리화면 > 쇼핑몰설정에서 결제설정 탭메뉴에서 

신용카드, 계좌이체, 휴대폰 결제시 포인트를 적립 설정 예로 되어 있을까요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 6개

제 글에 제일 첫 번째 이미지 말씀하시는 거 맞으실까요? 맞다면 그 부분은 "예"로 설정해 두었습니다.
카드결제 완료 처리전인 상단에 적용한거라면

안될수 있으니

완료 처리 상태 후 처리 되도록 하단에 해당 소스를 적용하셔야 할듯 합니다.

상태 변경이 완료 된것만 반영되기 때문 입니다.

[code]
// 완료된 주문에 포인트를 적립한다.
save_order_point("완료");
[/code]
네 플라이님 답변 감사합니다.

그래서 orderformupdate.php에서

신용카드 결제 시 미수금 0원으로 od_misu가 0이라서 od_status가 완료로 바뀌게 해두었고,
(phpmyadmin에 ct_status를 보면 "완료"로 실제로 바뀌었습니다.)

동일 php파일 맨 하단에 있는

goto_url(G5_SHOP_URL.'/orderinquiryview.php?od_id='.$od_id.'&uid='.$uid);

부분 보면 orderinquiryview.php로 가기 전에

save_order_point("완료");

위 코드를 썼는데 포인트 자동적립이 안 되네요 ㅜㅜ

즉, orderformupdate.php에서

신용카드 결제 시 미수금 0원 --> status 완료 처리 --> save_order_point 완료 함수 발동 --> orderinquiryview 페이지로 이동

모두 다 이뤄지도록 했는데 왜 save_order_point 완료 함수만 안 되는 건지 궁금하네요 ㅜㅜ

제가 원본 글에 쓴 거에 어떤 부분이 틀린 건지를 모르겠어요..ㅜ
그렇다면

save_order_point함수에 쿼리를 직접 찍히게 해서 쿼리를 실행해서 데이터가 나타나는지 확인을 해보셔야 할듯 합니다.
네 알겠습니다
이유는 모르겠으나 지금은 갑자기 또 잘 되네요... ㅎㅎㅎ 여튼 감사합니다!!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고