웹마스터 팁
누리고 쇼핑몰 상품취소 혹은 반품시 마일리지 자동회복하기
2015.01.21 10:37
누리고 쇼핑몰에서 물건을 주문하면서 마일리지를 사용하면 주문즉시 마일리지가 차감됩니다.
그런데, 상품을 취소하거나 반품시에는 사용한 마일리지가 다시 돌아가야 하는데
이게 안되어서 일일이 마일리지를 수동으로 조정해야 합니다.
이게 은근 귀찮아요.. ㅎㅎ
이걸 해결하려면
nstore - nstore.controller.php
에서
updateorderstatus() 부분을 수정해주시면 됩니다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | // if the order is completed, give mileage to the member. if ( $in_args ->order_status==nstore::ORDER_STATE_COMPLETE) { $order_info = $oNstoreModel ->getOrderInfo( $order_srl ); //debugprint($order_info); if ( $order_info ->member_srl && $order_info ->mileage && $order_info ->mileage_save== 'N' ) { $oNmileageController = &getController( 'nmileage' ); $oNmileageController ->plusMileage( $order_info ->member_srl, $order_info ->mileage, $order_info ->title, $order_srl ); $args ->mileage_save = 'Y' ; } if ( $order_info ->item_list) { foreach ( $order_info ->item_list as $key => $item ) { $item_srl = $item ->item_srl; $quantity = $item ->quantity; $this ->updateSalesCount( $item_srl , $quantity ); } } } |
이 코드가 주문완료시에 마일리지를 적립하는 코드인데요
여기 바로 아래 취소 혹은 반품 할 코드를 넣어줍니다.
여기서 중요한것은
-취소: 물건을 배송하지 않았을 경우라고 보는것이고
-반품: 물건을 배송후에 취소하는 것이라고 보는것입니다.
그래서 취소는 사용한 마일리지만 돌려주고, 반품은 사용한 마일리지를 돌려주고, 적립된 마일리지를 차감하는 코드로 넣었습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | if ( $in_args ->order_status== "A" ) { //취소 $order_info = $oNstoreModel ->getOrderInfo( $order_srl ); if ( $order_info ->member_srl && $order_info ->use_mileage && $order_info ->mileage_save== 'N' ) { $oNmileageController = &getController( 'nmileage' ); $oNmileageController ->plusMileage( $order_info ->member_srl, $order_info ->use_mileage, $order_info ->title, $order_srl ); $args ->mileage_save = 'Y' ; } if ( $order_info ->item_list) { foreach ( $order_info ->item_list as $key => $item ) { $item_srl = $item ->item_srl; $quantity = $item ->quantity; $this ->updateSalesCount( $item_srl , $quantity ); } } } if ( $in_args ->order_status== "B" ) { //반품을 할경우 $order_info = $oNstoreModel ->getOrderInfo( $order_srl ); if ( $order_info ->member_srl && $order_info ->use_mileage && $order_info ->mileage_save== 'N' ) { $oNmileageController = &getController( 'nmileage' ); $oNmileageController ->plusMileage( $order_info ->member_srl, $order_info ->use_mileage, $order_info ->title, $order_srl ); $args ->mileage_save = 'Y' ; } if ( $order_info ->member_srl && $order_info ->mileage && $order_info ->mileage_save== 'N' ) { $oNmileageController = &getController( 'nmileage' ); $oNmileageController ->minusMileage( $order_info ->member_srl, $order_info ->mileage, $order_info ->title, $order_srl ); $args ->mileage_save = 'Y' ; } if ( $order_info ->item_list) { foreach ( $order_info ->item_list as $key => $item ) { $item_srl = $item ->item_srl; $quantity = $item ->quantity; $this ->updateSalesCount( $item_srl , $quantity ); } } } |
댓글 6
-
민기
2015.02.02 17:32
-
garnecia
2015.02.03 10:14
제가 소스를 많이 손대서 코드를 올려드리진 못하고요..
라인도 틀려져서 어딘지 모르겠는데
updateorderstatus 라는 function이 있습니다. 거기중에서 첫번째 코드 가 기본기재되어있는 코드인데
그 아래에 반품,취소 코드를 입력하라는 거예요
-
민기
2015.02.02 17:37
garnecia님 올려논 배송비가 표시 안되는 팁도
팁은 팁인데 이용 몬하고 있습니다^^
해당파일 어떤부분 어떤소스로 바꾸라는건지 ㅡㅡ
무식타 노여워 마시고 좀 디테일하고 알려주시믄 감사하겠습니다
-
garnecia
2015.02.03 10:15
어 그니깐 해당파일에 찾으라는 코드를 찾아서 변경해주면 되는건데요... 더 이상 뭐라고 해야할지..
-
민기
2015.02.03 19:01
네... 감사합니다
좀 덤벙됐나 봅니다
마일리지 회복 팁은
금방 찾아서 잘 적용 했어요
-
유용합니다요! ㄱㅅ^^
안녕하세요
찾던 팁인데
팁을 줘도 몬먹는군요^^
해당파일
$output = $this->updateOrderStatus($obj->order_srl, $args);
위 빨간 부분인가요
어떤 부분 어떤 소스를 바꿔야 하는지
좀 쉽게 알려주시믄 감사하겠습니다