[팬텀디자인] 영카트 상품 결제 이후 해당 상품 자료실 제작하기 (2부 完) > 그누보드5 팁자료실

그누보드5 팁자료실

[팬텀디자인] 영카트 상품 결제 이후 해당 상품 자료실 제작하기 (2부 完) 정보

[팬텀디자인] 영카트 상품 결제 이후 해당 상품 자료실 제작하기 (2부 完)

첨부파일

item_down.php (1.6K) 6회 다운로드 2022-05-06 13:48:04

본문

상품에 대한 별도의 자료실을 만들기 위해서는 연동해주어야 하는 부분이 생각보다 많아질 것 같아,

각 상품별 주문상세내역 페이지에서 다운로드를 진행하게끔 제작을 진행하기로 했습니다.

 

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. 이제 정상적으로 상품 상세페이지에서 다운로드가 가능해집니다.

 

1981878700_1651812449.615.png

'주문' 상태일 때

 

1981878700_1651812454.7804.png

'입금' 상태일 때

 

제작해놓고 보니, 자료실이라기 보다는 단순히 상품 자료라고 불러야할 것 같네요.

 

허접한 실력이지만 도움되셨으면 좋겠습니다.

 

감사합니다.

 

1981878700_1651812616.7256.png

* od_id를 get으로 가져오기때문에, 일반 URL을 통하여 접속을 할 경우 다운로드를 할 수 있었던 문제가 있었습니다. 

 

이제 일반 URL에서 접속하면 에러코드 101을 뱉어내며, 상세 주문서에서만 다운로드가 가능하게끔 item_down.php 파일을 수정했습니다.

추천
9

댓글 14개

제게 꼭 필요했던 선물같은 기능입니다. 실행해보고 잘 활용하겠습니다. 감사합니다! 지난 게시글을 보고 2부를 기대했는데 역시 훌륭하네요. 제가 초짜라 잘 할 수 있을지는 모르겠지만 ㅠㅠ 그래도 열심히 해보겠습니다. 좋은 하루 보내세요!
하다가 막히는 부분이 있으시면 편하게 질문주시면 제가 도와드릴 수 있는 선에서 도와드리겠습니다. 감사합니다.
전체 2,095 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIR SOFT