1. 누리고 신청취소하기
2. 누리고 신청취소사유 입력받기
앞서 두개 팁을 작성했는데 같이 한번에 동작하는 기능입니다.
1은 스크립트에서 함수를 만들어서 온클릭으로 동작하도록 했고,
2는 스킨, 컨트롤러, 쿼리문 작성을 해서 모듈의 컨트롤러에 해당 함수를 만들어서 동작하도록 작업을 했었습니다.
이 두 가지 기능을 합해볼텐데요. 그냥 스크립트에서 함수를 동작시킬 수도 있고,
모듈 컨트롤러에서 동작할 수 있도록 하는 등 다양한 방법으로 작업이 가능할 거 같은데요.
두번째 방법을 좀 변형해서 해보도록 하겠습니다.
2번에서 설명드렸다시피..
1) 입력받는 스킨 파일
2) 컨트롤하는 기능
3) 쿼리문
이렇게 필요합니다.
1) 입력받는 부분
<form action="{Context::getRequestUri()}" method="POST" id="fo_refund" class="rx_ajax">
<input type="hidden" name="success_return_url" value="{getRequestUriByServerEnviroment()}" />
<input type="hidden" name="module" value="nstore" />
<input type="hidden" name="return_url" value="{getUrl('act', 'dispNstoreOrderItems')}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<label for="reason">환불 사유:</label>
<input type="hidden" name="act" value="procNstoreRefund" />
<input name="order_status" required value="Z"/>
<input id="refund" name="refund" required value="취소사유입니다"/>
<input type="hidden" name="order_srl" value="3196" placeholder="주문번호">
<button type="submit">환불 요청</button>
</form>
order_status 부분이 추가되었습니다.
반대로 procNstoreUpdateOrderStatus 함수에서 refund를 추가해도 됩니다.
이건 4번째 방법에서 알려드리겠습니다.
4번. 반대로 procNstoreUpdateOrderStatus 함수에서 refund 함수를 추가하는 방법
1) act를 procNstoreRefund에서 procNstoreUpdateOrderStatus로 바꿔주세요.
<form action="{Context::getRequestUri()}" method="POST" id="fo_refund" class="rx_ajax">
<input type="hidden" name="success_return_url" value="{getRequestUriByServerEnviroment()}" />
<input type="hidden" name="module" value="nstore" />
<input type="hidden" name="return_url" value="{getUrl('act', 'dispNstoreOrderItems')}" />
<label for="reason">환불 사유:</label>
<input type="hidden" name="act" value="procNstoreUpdateOrderStatus" />
<input name="order_status" required value="Z"/>
<input id="refund" name="refund" required value="취소사유입니다"/>
<input type="hidden" name="order_srl" value="3196" placeholder="주문번호">
<button type="submit">환불 요청</button>
</form>
2) procNstoreUpdateOrderStatus 함수 수정하기
procNstoreRefund 함수의 기능을 이 곳에 추가해야합니다...
$args = new stdClass();
$args->order_srl = Context::get('order_srl');
$args->refund = Context::get('refund');
$output = executeQuery('nstore.updateRefund', $args);
if(!$output->toBool())
{
return $output;
}
나머지는 동일합니다. updateRefund 부분만 추가해주시면 됩니다.
아 그리고 리턴url을 수정해줘야합니다.
if(Context::get('refund')){
$this->setRedirectUrl(getNotEncodedUrl('', 'mid', Context::get('mid'),'document_srl',Context::get('document_srl')));
}else{
$this->setRedirectUrl(getNotEncodedUrl('', 'mid', Context::get('mid')));
}