테스트 사이트 - 개발 중인 베타 버전입니다

결재한 만큼만 포인트 적립

· 12년 전 · 227 · 4
영카트 기본은 포인트로 결재를 해도 각 상품의 포인트 만큼 그대로 적립이 됩니다.
주문건이 많은 쇼핑몰에서는 쌓이다보면 큰금액이 됩니다.
기존에 다른분(엘크)이 이문제를 해결한 팁이 있었으나
여러물품을 동시에 주문시에 중복 적립되는 문제가 있어 이문제를 해결하여 다시  올려드려요
적립되는 포인트는 포인트결재한금액 및 배송비를 뺀금액을 상품수만큼 나누어서 적립하게 됩니다.
즉 순수 상품값으로 지불된만큼만 포인트 적립을 해주게 됩니다.

/shop/orderupdate.php
// 장바구니 쇼핑에서 주문으로
// 신용카드로 주문하면서 신용카드 포인트 사용하지 않는다면 포인트 부여하지 않음
$sql_card_point = "";
if ($od_receipt_card > 0 &&  $default[de_card_point] == false) {
    $sql_card_point = " , ct_point = '0' ";
}
를 아래와 같이 변경합니다.

// 장바구니 쇼핑에서 주문으로
// 신용카드로 주문하면서 신용카드 포인트 사용하지 않는다면 포인트 부여하지 않음
$sql_card_point = "";
if ($od_receipt_card > 0 &&  $default[de_card_point] == false) {
    $sql_card_point = " , ct_point = '0' ";
}
//////////////////////////////////////////////////////////////////////////////////입금된 만큼만 적립 
else { // 포인트 사용시 실제 결제금액 만큼 포인트 부여하기
    if ( $od_temp_point > 0 && $is_member) {
 
$row = sql_fetch("select count(*) cnt from $g4[yc4_cart_table] where on_uid = '$tmp_on_uid' ");
 
 
//실입금액에 일률적인 포인트율로  적용할때 (실입금액에 1%적용시)
// 더 많이 적용하시려면 0.01(1%)를 수정하세요
 $total_point = (($od_receipt_bank + $od_receipt_card-$od_send_cost) * 0.01)/$row[cnt];
  $sql_card_point = " , ct_point = '$total_point' ";
    }
}
///////////////////////////////////////////////////////////////////////////////////////입금된만큼만 적립 끝

댓글 작성

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

로그인하기

댓글 4개

한 상품의 수량이 여러개일경우 버그가 있네요 위 sql구문의 아래와 같이 변경하세요
$row = sql_fetch("select sum(ct_qty) cnt from $g4[yc4_cart_table] where on_uid = '$tmp_on_uid' ");
오 좋은 팁이네요.^^ 그런데 orderformupdate.php 파일 아닌가요?
버전마다 파일이 틀린가 보네요 저희 옛날버전이라..
12년 전
좋은정보감사합니다

게시글 목록

번호 제목
1681
1678
1677
1676
1675
1672
1654
1644
1636
1633
1626
1621
1613
1612
1607
1558
1554
1545
1542
1539