[영카트]안녕하세요 포인트 관련해서 질문드립니다.
본문
포인트는 관리자가 수동적인 주문확인이 아닌
사용자가 결제함과 동시에 포인트가 적립되는 부분이 궁금한데요
카드로 결제시 입금($od_status == '입금', www/shop/orderformupdate.php) 이 되면
자동으로 포인트가 적립되나요??
어떤 결제방식을 통해서 즉시 포인트를 지급받을수 있나요?
예로 무통장은 관리자가 수동으로 주문확인을 해야 포인트가 들어옵니다.
답변 3
예전에 잠깐 살펴본 적이 있었는데..
결제 방법 상관없이 adm/shop_admin/orderform.php 페이지에서 완료로 처리해야 지급됩니다.
해당 파일 상단에 보면 이렇게 되어 있죠.
// 완료된 주문에 포인트를 적립한다.
save_order_point("완료");
저 함수를 따라가면 lib/shop.lib.php 파일에 이렇게 되어 있습니다.
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 <= '$beforedays' ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
// 회원 ID 를 얻는다.
$od_row = sql_fetch("select od_id, mb_id from {$g5['g5_shop_order_table']} where od_id = '{$row['od_id']}' ");
if ($od_row['mb_id'] && $row['ct_point'] > 0) { // 회원이면서 포인트가 0보다 크다면
$po_point = $row['ct_point'] * $row['ct_qty'];
$po_content = "주문번호 {$od_row['od_id']} ({$row['ct_id']}) 배송완료";
insert_point($od_row['mb_id'], $po_point, $po_content, "@delivery", $od_row['mb_id'], "{$od_row['od_id']},{$row['ct_id']}");
}
sql_query("update {$g5['g5_shop_cart_table']} set ct_point_use = '1' where ct_id = '{$row['ct_id']}' ");
}
}
참고해서 적절하게 수정해보세요.
금액을 포인트로 추가하는 부분을 따로 추가해야합니다
포인트추가는 해당함수가 있습니다
결제후 바로 적립되도록 하거나 혹은 배송처리가 된 이후 시점에 처리되도록 기능 처리를 해주셔야 가능한 부분이라 보여집니다.