[팬텀디자인] 영카트 상품 결제 이후 해당 상품 자료실 제작하기 (2부 完) 정보
[팬텀디자인] 영카트 상품 결제 이후 해당 상품 자료실 제작하기 (2부 完)관련링크
첨부파일
본문
상품에 대한 별도의 자료실을 만들기 위해서는 연동해주어야 하는 부분이 생각보다 많아질 것 같아,
각 상품별 주문상세내역 페이지에서 다운로드를 진행하게끔 제작을 진행하기로 했습니다.
1. /shop/orderinquiryview.php 파일(테마를 사용중인 경우 테마 내 shop 폴더 사용)을 열어줍니다.
기본적으로 orderinquiryview.php 에서는 g5_shop_cart 의 DB 정보를 불러오기 때문에 g5_shop_item 테이블의 DB 정보를 불러와줍니다.
현재 주문서 아이템에 업로드된 자료가 있는지 체크해주는 부분을 추가합니다.
$result = sql_query($sql); // 이 부분 아래쪽 추가
// 추가되는 부분
$sql = " select * from {$g5['g5_shop_cart_table']} where od_id = '{$od_id}' ";
$file_check = sql_fetch($sql); // 주문서번호 체크
$sql = " select it_id, it_10_subj, it_10 from {$g5['g5_shop_item_table']} where it_id = '{$file_check['it_id']}' ";
$file_check_result = sql_fetch($sql); // 상품번호 체크
$fcr_check = G5_DATA_PATH.'/item/'.$file_check_result['it_10_subj'];
$check_list = run_replace('shop_item_exists', (is_file($fcr_check) && file_exists($fcr_check)));
$check_list 변수를 통해서 현재 업로드 된 파일이 존재하는지, 아닌지에 대한 검증을 마쳤으니 응용하여 다운로드를 할 수 있는 공간을 만들어줍니다.
38번째 라인 근처에 새로운 th를 추가해주고, 배송비 부분을 수정해줍니다.
<?php if($check_list){ echo ''; } else {?><th scope="col" id="th_itsd">배송비</th><?php }?> <!-- 자료가 있는 상품일 경우, 배송비 제외 -->
<?php // 주문상태와 파일 존재 유무 확인 후 다운로드 열 표시
if($file_check['ct_status'] == '입금' || $file_check['ct_status'] == '완료') {
if($check_list){
echo '<th scope="col" id="th_itst">다운로드</th>';
}
}?>
이제 다운로드 공간을 넣어줍니다.
57번째 라인 근처 for 하단에 아래 코드를 추가해줍니다.
for($i=0; $row=sql_fetch_array($result); $i++) {
$sql = " select it_id, it_10_subj, it_10 from {$g5['g5_shop_item_table']} where it_id = '{$row['it_id']}' ";
$file = sql_fetch($sql); // 파일 업로드 DB 추가
$it_download = G5_DATA_PATH.'/item/'.$file['it_10_subj'];
$it_download_url = G5_BBS_URL.'/item_down.php?od_id='.$od_id;
$it_file_exists = run_replace('shop_item_exists', (is_file($it_download) && file_exists($it_download)));
한번 더 파일이 존재하는지 검증해준 뒤, 배송비 부분을 처리해주고, 아래 쪽에 다운로드 코드를 추가해줍니다
<?php if($check_list){ echo ''; } else {?><td headers="th_itsd" class="td_dvr"><?php echo $ct_send_cost; ?></td><?php }?> <!-- 배송비 파일 체크 -->
<?php
if($opt['ct_status'] == '입금' || $opt['ct_status'] == '완료'){
if($it_file_exists) { ?>
<td headers="th_itst" class="td_mngsmall"><a href="<?php echo $it_download_url?>" download><i class="fa fa-download" aria-hidden="true"></i></a></td>
<?php }
}?>
별도의 검증과정을 만들지 않았기 때문에, 주문서 페이지에서 불러오는 기존 ct_status 상태로 다운로드 파일이 나올 수 있게끔 했으니, 상태에 따라 변경해주시면 됩니다.
파일에 대한 2차적인 검증은 item_down.php 파일에서 진행하고있습니다.
더 나은 코드가 있으시면 언제든지 코멘트를 통해서 알려주시면 반영하여 수정하겠습니다.
2. bbs 폴더에 올린 item_down.php 파일을 업로드해줍니다.
* 기본은 입금 과 완료 상태에따라서 다운로드가 가능하게끔 제작되었습니다. 해당 부분 각 쇼핑몰에 맞게 수정하시면 됩니다.
3. 이제 정상적으로 상품 상세페이지에서 다운로드가 가능해집니다.
'주문' 상태일 때
'입금' 상태일 때
제작해놓고 보니, 자료실이라기 보다는 단순히 상품 자료라고 불러야할 것 같네요.
허접한 실력이지만 도움되셨으면 좋겠습니다.
감사합니다.
* od_id를 get으로 가져오기때문에, 일반 URL을 통하여 접속을 할 경우 다운로드를 할 수 있었던 문제가 있었습니다.
이제 일반 URL에서 접속하면 에러코드 101을 뱉어내며, 상세 주문서에서만 다운로드가 가능하게끔 item_down.php 파일을 수정했습니다.
11
댓글 16개
정말, 정말 감사드려요!