[팬텀디자인] 영카트 상품 결제 이후 해당 상품 자료실 제작하기 (2부 完)
상품에 대한 별도의 자료실을 만들기 위해서는 연동해주어야 하는 부분이 생각보다 많아질 것 같아,
각 상품별 주문상세내역 페이지에서 다운로드를 진행하게끔 제작을 진행하기로 했습니다.
1. /shop/orderinquiryview.php 파일(테마를 사용중인 경우 테마 내 shop 폴더 사용)을 열어줍니다.
기본적으로 orderinquiryview.php 에서는 g5_shop_cart 의 DB 정보를 불러오기 때문에 g5_shop_item 테이블의 DB 정보를 불러와줍니다.
현재 주문서 아이템에 업로드된 자료가 있는지 체크해주는 부분을 추가합니다.
[code]
$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)));
[/code]
$check_list 변수를 통해서 현재 업로드 된 파일이 존재하는지, 아닌지에 대한 검증을 마쳤으니 응용하여 다운로드를 할 수 있는 공간을 만들어줍니다.
38번째 라인 근처에 새로운 th를 추가해주고, 배송비 부분을 수정해줍니다.
[code]
<?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>';
}
}?>
[/code]
이제 다운로드 공간을 넣어줍니다.
57번째 라인 근처 for 하단에 아래 코드를 추가해줍니다.
[code]
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)));
[/code]
한번 더 파일이 존재하는지 검증해준 뒤, 배송비 부분을 처리해주고, 아래 쪽에 다운로드 코드를 추가해줍니다
[code]
<?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 }
}?>
[/code]
별도의 검증과정을 만들지 않았기 때문에, 주문서 페이지에서 불러오는 기존 ct_status 상태로 다운로드 파일이 나올 수 있게끔 했으니, 상태에 따라 변경해주시면 됩니다.
파일에 대한 2차적인 검증은 item_down.php 파일에서 진행하고있습니다.
더 나은 코드가 있으시면 언제든지 코멘트를 통해서 알려주시면 반영하여 수정하겠습니다.
2. bbs 폴더에 올린 item_down.php 파일을 업로드해줍니다.
* 기본은 입금 과 완료 상태에따라서 다운로드가 가능하게끔 제작되었습니다. 해당 부분 각 쇼핑몰에 맞게 수정하시면 됩니다.
3. 이제 정상적으로 상품 상세페이지에서 다운로드가 가능해집니다.

'주문' 상태일 때

'입금' 상태일 때
제작해놓고 보니, 자료실이라기 보다는 단순히 상품 자료라고 불러야할 것 같네요.
허접한 실력이지만 도움되셨으면 좋겠습니다.
감사합니다.
![]()
* od_id를 get으로 가져오기때문에, 일반 URL을 통하여 접속을 할 경우 다운로드를 할 수 있었던 문제가 있었습니다.
이제 일반 URL에서 접속하면 에러코드 101을 뱉어내며, 상세 주문서에서만 다운로드가 가능하게끔 item_down.php 파일을 수정했습니다.
댓글 16개
정말, 정말 감사드려요!
[http://sir.kr/data/editor/2205/60d5cc69aeaef299be486288d20ee0b2_1653517769_0606.png]
게시판 목록
그누보드5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 2695 | 1개월 전 | 170 | ||
| 2694 | 1개월 전 | 132 | ||
| 2693 | 1개월 전 | 143 | ||
| 2692 | 1개월 전 | 157 | ||
| 2691 | 1개월 전 | 311 | ||
| 2690 | 1개월 전 | 217 | ||
| 2689 |
|
1개월 전 | 423 | |
| 2688 | 1개월 전 | 275 | ||
| 2687 |
선택과집중
|
1개월 전 | 312 | |
| 2686 | 1개월 전 | 275 | ||
| 2685 | 1개월 전 | 329 | ||
| 2684 | 2개월 전 | 462 | ||
| 2683 | 2개월 전 | 261 | ||
| 2682 | 2개월 전 | 287 | ||
| 2681 |
선택과집중
|
2개월 전 | 263 | |
| 2680 | 2개월 전 | 312 | ||
| 2679 |
|
2개월 전 | 417 | |
| 2678 |
|
2개월 전 | 487 | |
| 2677 | 2개월 전 | 311 | ||
| 2676 | 2개월 전 | 287 | ||
| 2675 |
선택과집중
|
2개월 전 | 464 | |
| 2674 |
|
2개월 전 | 309 | |
| 2673 | 2개월 전 | 322 | ||
| 2672 | 2개월 전 | 272 | ||
| 2671 | 2개월 전 | 244 | ||
| 2670 | 2개월 전 | 356 | ||
| 2669 | 2개월 전 | 274 | ||
| 2668 |
선택과집중
|
2개월 전 | 470 | |
| 2667 |
선택과집중
|
2개월 전 | 455 | |
| 2666 |
선택과집중
|
3개월 전 | 388 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기