후기 작성시 포인트 지급 관련 문의드립니다.

후기 작성시 포인트 지급 관련 문의드립니다.

QA

후기 작성시 포인트 지급 관련 문의드립니다.

답변 3

본문

쇼핑몰에서 일반/포토 후기 작성시 포인트 지급 설정을 통해 지급하게끔 만들었습니다.

https://sir.kr/yc5_tip/1348 <<<< 여기 페이지에 포인트 지급에 대한 소스가 있습니다.

 

작업 이후 한가지 궁금증이 생겼습니다. 실제 어떤식으로 운영 해야될지 갈피를 잡지 못하게 되었죠;;;

 

본론으로 들어가면,

고객이 상품을 구매하고 구매완료한 고객이 리뷰를 쓸 수 있게 설정을 하였습니다. 그런데 한가지

문제가 생겼습니다. 만약 고객이 A라는 상품을 사고 리뷰를 적고 포인트를 지급받습니다. 이후 다시 A라는 상품을 샀을때 리뷰를 적게 되면 포인트를 지급 받지 못하는게 (무분별하게 포인트가 지급되는것을 방지하기 위한 방법인듯합니다) 되어 있습니다. 이렇게 되면 고객은 A 라는 상품을 2개 샀음에도 한번뿐이 포인트를 받지 못하게 되는겁니다.

 

혹시 A라는 상품을 살때 마다 포인트를 지급해주는 방법이 없을까요?

이 질문에 댓글 쓰기 :

답변 3

적용하신 소스의 해당 부분을 수정을 해주셔야할 것 같은데

어떻게 되어있는지는 모르겠지만 제 생각으로는

 

해당 상품의 리뷰에 등록한 리뷰를 카운팅해서 0개면 포인트를 주고 1개 이상이면 안주게 해놨다면

그 부분을 빼주던지 아니면 if($cnt > 0) 이런 부분을 if($cnt > 100) 이런식으로 100개 이상썼을때

 

포인트가 지급안되게 설정을 좀 바꿔주셔야 할 것 같습니다.

질문내용이 수정되었나요?ㅎㅎ; 제가 마지막줄을 못봤던것 같습니다.
요지는 "상품을 살때마다 포인트를 지급하고싶다" 군요.

소스를 훝어보니 리뷰를 쓸때마다 적립이 되는 것 같습니다.

상품을 살때마다 포인트를 지급해주시고 싶으시면


$itit = sql_fetch(" select it_name from g5_shop_item where it_id = '$use1[it_id]' ");	// 상품조회
$point = $config['cf_6'];				// 일반리뷰 포인트
$point_img = $config['cf_5'];		// 포토리뷰 포인트

if(@preg_match("/img src/", $use1[is_content])){		// 포토리뷰 작성시
	insert_point($use1[mb_id], $point_img, $itit[it_name].' 상품 포토리뷰 작성', '@review', $use1[mb_id]."/".$use1[it_id], '리뷰작성');
}else{																					// 일반리뷰 작성시
	insert_point($use1[mb_id], $point, $itit[it_name].' 상품 일반리뷰 작성', '@review', $use1[mb_id]."/".$use1[it_id], '리뷰작성');
}


위 부분이 포인트를 지급해주는 소스같은데


$itit = sql_fetch(" select it_name from g5_shop_item where it_id = '$use1[it_id]' "); // 상품조회
$point = $config['cf_6'];	// 상품구매시 지급 포인트

// 일반리뷰 작성시
insert_point($use1[mb_id], $point, $itit[it_name].' 상품 구매시 포인트지급', '@review', $use1[mb_id]."/".$use1[it_id], '상품구매');
}


단순하게 포인트 적립 부분만 잘라서 위 소스를 상품 구매되는 부분에 넣어주면 되지 않을까요?


$itit = sql_fetch(" select it_name from g5_shop_item where it_id = '$use1[it_id]' ");	// 상품조회
$point = $config['cf_6'];				// 일반리뷰 포인트
//$point_img = $config['cf_5'];		// 포토리뷰 포인트
																							// 일반리뷰 작성시
insert_point($use1[mb_id], $point, $itit[it_name].' 상품 리뷰 작성', '@review', $use1[mb_id]."/".$use1[it_id], '리뷰작성');

		}


문의하기전에 올리기전에 하틴님이 말씀하시것 처럼 수정을 했었는데 A라는 상품을 사면 이후 A라는 상품을 살때는 후기를 작성해도 포인트를 받지 못하더라고요. 그래서 문의글을 남겼었어요.

제가 구현하고 싶은거는 동일한 제품을 사더라도 후기는 각각 쓸 수 있으며 후기를 쓰고 난뒤 관리가 승인이 나면 포인트를 지급해주게 하고 싶은거였거든요

음..제가 https://sir.kr/yc5_tip/1348 여기있는 자료를 받아서 열어보니

사용후기가 즉시출력(?)이 되면 포인트가 지급되게 되있더라구요.

1건만 제한되게 해놓은 부분은 없던데

관리자가 승인 및 노출 확인을 예 로 변경해주셨을까요?

포토리뷰 관련해서 궁금한게있는데요~

첨부파일도 리뷰작성할때 포함되어있나요? 포토리뷰 구분하는게
첨부파일에 이미지를 넣는걸로 체크가 안되구

포토리뷰는 해당 리뷰 글안(스마트에디터)에 img src 가 들어가 있어야 지급되게끔 되있더라구요!

아이고...죄송합니다 ㅠㅠ

제가 포인트관련해서는 손을 많이 안대서 해당 함수안에 보니 한번만 적립하는게 있었네요! ㅠㅠ

lib/common.lib.php 에 insert_point 함수가 있는데요~ 보시면


// 이미 등록된 내역이라면 건너뜀
    if ($rel_table || $rel_id || $rel_action)
    {
        $sql = " select count(*) as cnt from {$g5['point_table']}
                  where mb_id = '$mb_id'
                    and po_rel_table = '$rel_table'
                    and po_rel_id = '$rel_id'
                    and po_rel_action = '$rel_action' ";
        $row = sql_fetch($sql);
        if ($row['cnt'])
            return -1;
    }


이렇게 있는데 이부분을 없애면 계속 되긴할건데 문제가 될수있으니..

앞단에서


insert_point($use1[mb_id], $point_img, $itit[it_name].' 상품 포토리뷰 작성', '@review', $use1[mb_id]."/".$use1[it_id], '리뷰작성');

여기서 입력해주는 부분을 손을 좀보셔서

첫번째 리뷰
insert_point($use1[mb_id], $point_img, $itit[it_name].' 상품 포토리뷰 작성', '@review1', $use1[mb_id]."/".$use1[it_id], '리뷰작성');

두번째 리뷰
insert_point($use1[mb_id], $point_img, $itit[it_name].' 상품 포토리뷰 작성', '@review2', $use1[mb_id]."/".$use1[it_id], '리뷰작성');

세번째 리뷰
insert_point($use1[mb_id], $point_img, $itit[it_name].' 상품 포토리뷰 작성', '@review3', $use1[mb_id]."/".$use1[it_id], '리뷰작성');


이런식으로 중복안되게 넣어주면 계속 증가할 것 같습니다. 근데 이렇게 해도 되나모르겠네요;

@review1, 2, 3 증가시키는 부분은


$sql = " select count(*) as cnt from {$g5['point_table']}
                  where mb_id = '$mb_id'
                    and po_rel_table = '$rel_table'
                    and po_rel_id = '$rel_id'
                    and po_rel_action = '$rel_action' ";
        $row = sql_fetch($sql);
        
insert_point($use1[mb_id], $point_img, $itit[it_name].' 상품 포토리뷰 작성', '@review'.$row['cnt'], $use1[mb_id]."/".$use1[it_id], '리뷰작성');


이런식? 으로 해주면 될거같은데 고민을 좀 해보셔야할 것 같습니다.

저는 그냥 해당부분 구현에만 생각해보고 말씀드리는거라 ㅠ

하틴님 중복으로는 포인트를 주는게 안되어서 포인트지급하는 아이디값 뒤에 다른 변수를 넣어서 편법으로 했어요.

 

아무튼 감사합니다. 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 8
© SIRSOFT
현재 페이지 제일 처음으로