상품 유형 관리에 이벤트 항목 추가 - 영카트강좌

본문 바로가기
전체검색

영카트강좌

그누보드, 영카트 초보 제작자분들을 위한 다양한 스킨 제작 활용 팁을 공유합니다.

상품 유형 관리에 이벤트 항목 추가

관리자 17-08-18 23:33

영카트 상품 유형 관리에는 기본적으로 히트, 추천, 신규, 인기, 할인 항목이 있습니다.

여기에 항목을 하나 더 추가해보겠습니다.

강좌 예제는 이벤트 상품으로 표기했지만 명칭은 원하시는 걸로 바꾸면 됩니다.

수정할 부분이 상당히 많습니다. 여태 했던 강좌 중에 분량이 제일 많네요.

 

직접 해보면서 정리한 건데 내용이 너무 많아서 잘못 정리했을 수도 있습니다.

나중에 원본으로 되돌려서 아래 내용을 바탕으로 다시 검수를 해보겠습니다.


쇼핑몰관리 > 쇼핑몰 설정 페이지


1. adm/shop_admin/configform.php

 

쇼핑몰 초기화면 설정에 항목 추가 (아래 내용 전체 추가)

 

       <tr>
            <th scope="row">이벤트상품출력</th>
            <td>
                <label for="de_type6_list_use">출력</label>
                <input type="checkbox" name="de_type6_list_use" value="1" id="de_type6_list_use" <?php echo $default['de_type6_list_use']?"checked":""; ?>>
                <label for="de_type6_list_skin">스킨</label>
                <select name="de_type6_list_skin" id="de_type6_list_skin">
                    <?php echo get_list_skin_options("^main.[0-9]+\.skin\.php", G5_SHOP_SKIN_PATH, $default['de_type6_list_skin']); ?>
                </select>
                <label for="de_type6_list_mod">1줄당 이미지 수</label>
                <input type="text" name="de_type6_list_mod" value="<?php echo $default['de_type6_list_mod']; ?>" id="de_type6_list_mod" class="frm_input" size="3">
                <label for="de_type6_list_row">출력할 줄 수</label>
                <input type="text" name="de_type6_list_row" value="<?php echo $default['de_type6_list_row']; ?>" id="de_type6_list_row" class="frm_input" size="3">
                <label for="de_type6_img_width">이미지 폭</label>
                <input type="text" name="de_type6_img_width" value="<?php echo $default['de_type6_img_width']; ?>" id="de_type6_img_width" class="frm_input" size="3">
                <label for="de_type6_img_height">이미지 높이</label>
                <input type="text" name="de_type6_img_height" value="<?php echo $default['de_type6_img_height']; ?>" id="de_type6_img_height" class="frm_input" size="3">
            </td>
        </tr>
 

 

모바일 쇼핑몰 초기화면 설정에 항목 추가 (아래 내용 전체 추가)

 

       <tr>
            <th scope="row">이벤트상품출력</th>
            <td>
                <label for="de_mobile_type6_list_use">출력</label>
                <input type="checkbox" name="de_mobile_type6_list_use" value="1" id="de_mobile_type6_list_use" <?php echo $default['de_mobile_type6_list_use']?"checked":""; ?>>
                <label for="de_mobile_type6_list_skin">스킨</label>
                <select id="de_mobile_type6_list_skin" name="de_mobile_type6_list_skin">
                    <?php echo get_list_skin_options("^main.[0-9]+\.skin\.php", G5_MSHOP_SKIN_PATH, $default['de_mobile_type6_list_skin']); ?>
                </select>
                <label for="de_mobile_type6_list_mod">1줄당 이미지 수</label>
                <input type="text" name="de_mobile_type6_list_mod" value="<?php echo $default['de_mobile_type6_list_mod']; ?>" id="de_mobile_type6_list_mod" class="frm_input" size="3">
                <label for="de_mobile_type6_list_row">출력할 줄 수</label>
                <input type="text" name="de_mobile_type6_list_row" value="<?php echo $default['de_mobile_type6_list_row']; ?>" id="de_mobile_type6_list_row" class="frm_input" size="3">
                <label for="de_mobile_type6_img_width">이미지 폭</label>
                <input type="text" name="de_mobile_type6_img_width" value="<?php echo $default['de_mobile_type6_img_width']; ?>" id="de_mobile_type6_img_width" class="frm_input" size="3">
                <label for="de_mobile_type6_img_height">이미지 높이</label>
                <input type="text" name="de_mobile_type6_img_height" value="<?php echo $default['de_mobile_type6_img_height']; ?>" id="de_mobile_type6_img_height" class="frm_input" size="3">
            </td>
        </tr>
 


2. adm/shop_admin/configformupdate.php

 

상품 유형 항목 type6 추가


기존에 있던 항목을 복사해서 숫자만 6으로 해서 각각 추가하면 됩니다.

PC용과 모바일 각각 6개씩 입니다.

 

de_type6_list_use             = '{$_POST['de_type6_list_use']}',
de_type6_list_skin            = '{$_POST['de_type6_list_skin']}',
de_type6_list_mod             = '{$_POST['de_type6_list_mod']}',
de_type6_list_row             = '{$_POST['de_type6_list_row']}',
de_type6_img_width            = '{$_POST['de_type6_img_width']}',
de_type6_img_height           = '{$_POST['de_type6_img_height']}',
..............................................
..............................................
de_mobile_type6_list_use      = '{$_POST['de_mobile_type6_list_use']}',
de_mobile_type6_list_skin     = '{$_POST['de_mobile_type6_list_skin']}',
de_mobile_type6_list_mod      = '{$_POST['de_mobile_type6_list_mod']}',
de_mobile_type6_list_row      = '{$_POST['de_mobile_type6_list_row']}',
de_mobile_type6_img_width     = '{$_POST['de_mobile_type6_img_width']}',
de_mobile_type6_img_height    = '{$_POST['de_mobile_type6_img_height']}',
...............................................
 

 

정상적으로 수정된 화면 (모바일 설정도 동일)


13bff74141c890eba8f1365b9ffae071_1503070570_4467.gif
 

 

 

쇼핑몰관리 > 상품 유형 관리 페이지


1.adm/shop_admin/itemtypelist.php

 

상단 쿼리 부분에 it_type6 추가 (쉼표 주의)

 

$sql  = " select it_id,
                 it_name,
                 it_type1,
                 it_type2,
                 it_type3,
                 it_type4,
                 it_type5,
                 it_type6
          $sql_common
          $sql_order
          limit $from_record, $rows ";
$result = sql_query($sql);
 

 

tr 타이틀 부분에 it_type6 추가

 

<tr>
    <th scope="col"><?php echo subject_sort_link("it_id", $qstr, 1); ?>상품코드</a></th>
    ...................................................
    ...................................................
    <th scope="col"><?php echo subject_sort_link("it_type5", $qstr, 1); ?>할인<br>상품</a></th>
    <th scope="col"><?php echo subject_sort_link("it_type6", $qstr, 1); ?>이벤트<br>상품</a></th>
    <th scope="col">관리</th>
</tr>

 

바로 아래에 있는 항목에도 추가

 

..........................................................................................
..........................................................................................
<td class="td_chk">
    <label for="type5_<?php echo $i; ?>" class="sound_only">할인상품</label>
    <input type="checkbox" name="it_type5[<?php echo $i; ?>]" value="1" id="type5_<?php echo $i; ?>" <?php echo ($row['it_type5'] ? 'checked' : ''); ?>>
</td>
<td class="td_chk">
    <label for="type6_<?php echo $i; ?>" class="sound_only">이벤트상품</label>
    <input type="checkbox" name="it_type6[<?php echo $i; ?>]" value="1" id="type6_<?php echo $i; ?>" <?php echo ($row['it_type6'] ? 'checked' : ''); ?>>
</td>
.......................................................................................... 
 

 

2. adm/shop_admin/itemtypelistupdate.php

 

기존 코드 참고해서 it_type6​ 추가 (쉼표 주의)

 

for ($i=0; $i<count($_POST['it_id']); $i++)
{
    $sql = "update {$g5['g5_shop_item_table']}
               set it_type1 = '{$_POST['it_type1'][$i]}',
                   it_type2 = '{$_POST['it_type2'][$i]}',
                   it_type3 = '{$_POST['it_type3'][$i]}',
                   it_type4 = '{$_POST['it_type4'][$i]}',
                   it_type5 = '{$_POST['it_type5'][$i]}',
                   it_type6 = '{$_POST['it_type6'][$i]}'
             where it_id = '{$_POST['it_id'][$i]}' ";
    sql_query($sql);
}
 


정상적으로 수정된 화면


13bff74141c890eba8f1365b9ffae071_1503070484_1727.gif
 

 

 

 

쇼핑몰관리 > 상품관리 > 상품 수정 페이지


1. adm/shop_admin/itemform.php

 

상품 유형 항목 it_type6​ 추가

 

...........................................................
...........................................................
<input type="checkbox" name="it_type4" value="1" <?php echo ($it['it_type4'] ? "checked" : ""); ?> id="it_type4">
<label for="it_type4">인기 <img src="<?php echo G5_SHOP_URL; ?>/img/icon_best.gif" alt=""></label>
<input type="checkbox" name="it_type5" value="1" <?php echo ($it['it_type5'] ? "checked" : ""); ?> id="it_type5">
<label for="it_type5">할인 <img src="<?php echo G5_SHOP_URL; ?>/img/icon_discount.gif" alt=""></label>
<input type="checkbox" name="it_type6" value="1" <?php echo ($it['it_type6'] ? "checked" : ""); ?> id="it_type6">
<label for="it_type6">이벤트 <img src="<?php echo G5_SHOP_URL; ?>/img/icon_event.gif" alt=""></label>
............................................................
 

 

2. adm/adm/shop_admin/itemformupdate.php

 

아래 부분에 it_type6 추가

 

$sql_common = " ca_id               = '$ca_id',
                ca_id2              = '$ca_id2',
                ......................................
                ......................................
                it_type4            = '$it_type4',
                it_type5            = '$it_type5',
                it_type6            = '$it_type6',
                it_basic            = '$it_basic'
 

 

같은 파일 좀 더 아래에서..

 

// 동일 분류내 상품 동일 옵션 적용 부분에 it_type6 추가 (쉼표 주의)

 

if(is_checked('chk_ca_it_type'))                $ca_fields .= " , it_type1 = '$it_type1', it_type2 = '$it_type2', it_type3 = '$it_type3', it_type4 = '$it_type4', it_type5 = '$it_type5', it_type6 = '$it_type6' ";

 

같은 파일 좀 더 아래에서..

 

// 모든 상품 동일 옵션 적용 부분에 it_type6 추가 (쉼표 주의)

 

if(is_checked('chk_all_it_type'))                $all_fields .= " , it_type1 = '$it_type1', it_type2 = '$it_type2', it_type3 = '$it_type3', it_type4 = '$it_type4', it_type5 = '$it_type5', it_type6 = '$it_type6' ";

 

 

정상적으로 수정된 화면


13bff74141c890eba8f1365b9ffae071_1503070409_7492.gif
 


 

 

DB 추가 작업


1. g5_shop_item 테이블에 필드 추가

 

adm/shop_admin/itemform.php 파일에 아래 코드를 추가

 

// 상품유형 항목 추가 it_type6
if(!sql_query(" select it_type6 from {$g5['g5_shop_item_table']} limit 1 ", false)) {
    sql_query(" ALTER TABLE `{$g5['g5_shop_item_table']}`
                    ADD `it_type6` tinyint(4) NOT NULL DEFAULT '0' AFTER `it_type5` ", true);
}
 

 

2. g5_shop_default 테이블에 필드 추가

 

adm/shop_admin/configform.php 파일에 아래 코드를 추가

 

// 상품유형 항목 추가
if(!isset($default['de_type6_list_use'])) {
    sql_query(" ALTER TABLE `{$g5['g5_shop_default_table']}`
                    ADD `de_type6_list_use` TINYINT(4) NOT NULL DEFAULT '0' AFTER `de_type5_img_height`,
                    ADD `de_type6_list_skin` VARCHAR(255) NOT NULL DEFAULT '0' AFTER `de_type6_list_use`,
                    ADD `de_type6_list_mod` INT(11) NOT NULL DEFAULT '0' AFTER `de_type6_list_skin`,
                    ADD `de_type6_list_row` INT(11) NOT NULL DEFAULT '0' AFTER `de_type6_list_mod`,
                    ADD `de_type6_img_width` INT(11) NOT NULL DEFAULT '0' AFTER `de_type6_list_row`,
                    ADD `de_type6_img_height` INT(11) NOT NULL DEFAULT '0' AFTER `de_type6_img_width`,
                    ADD `de_mobile_type6_list_use` TINYINT(4) NOT NULL DEFAULT '0' AFTER `de_mobile_type5_img_height`,
                    ADD `de_mobile_type6_list_skin` VARCHAR(255) NOT NULL DEFAULT '0' AFTER `de_mobile_type6_list_use`,
                    ADD `de_mobile_type6_list_mod` INT(11) NOT NULL DEFAULT '0' AFTER `de_mobile_type6_list_skin`,
                    ADD `de_mobile_type6_list_row` INT(11) NOT NULL DEFAULT '0' AFTER `de_mobile_type6_list_mod`,
                    ADD `de_mobile_type6_img_width` INT(11) NOT NULL DEFAULT '0' AFTER `de_mobile_type6_list_row`,
                    ADD `de_mobile_type6_img_height` INT(11) NOT NULL DEFAULT '0' AFTER `de_mobile_type6_img_width` ", true);
}

 

추가 후 쇼핑몰 관리 > 쇼핑몰 설정 페이지 및 상품 등록 페이지 1회 이상 접속 후

phpmyadmin 으로 필드가 제대로 생성되었는지 확인.

위 방법 말고 phpmyadmin 으로 직접 필드를 추가해도 됩니다.

 

g5_shop_default 테이블에 필드가 정상적으로 생성된 화면


070df4c005e1c450bac0b70707e4e34f_1503068916_9527.png
 

g5_shop_item 테이블에 필드가 정상적으로 생성된 화면

 

070df4c005e1c450bac0b70707e4e34f_1503069064_3641.png
 

 

 

  

기타 작업


1. lib/shop.lib.php

 

// 상품이미지에 유형 아이콘 출력 함수에 it_type6 추가

 

if ($it['it_type6'])
    $icon .= '<img src="'.G5_SHOP_URL.'/img/icon_event.gif" alt="이벤트상품">';

 


2. 아이콘 이미지 추가

 

070df4c005e1c450bac0b70707e4e34f_1503069223_9118.gif
 

icon_event.gif 이름으로 이미지를 새로 만들어서 shop/img/ 폴더에 업로드

 

 

 

3. 메인페이지 수정 shop/index.php

 

원하는 위치에 아래 내용 전체 추가

 

<?php if($default['de_type6_list_use']) { ?>
<!-- 할인상품 시작 { -->
<section class="sct_wrap">
    <header>
        <h2><a href="<?php echo G5_SHOP_URL; ?>/listtype.php?type=6">이벤트상품</a></h2>
        <p class="sct_wrap_hdesc"><?php echo $config['cf_title']; ?> 이벤트상품 모음</p>
    </header>
    <?php
    $list = new item_list();
    $list->set_type(6);
    $list->set_view('it_id', false);
    $list->set_view('it_name', true);
    $list->set_view('it_basic', true);
    $list->set_view('it_cust_price', true);
    $list->set_view('it_price', true);
    $list->set_view('it_icon', true);
    $list->set_view('sns', true);
    echo $list->run();
    ?>
</section>
<!-- } 할인상품 끝 -->
<?php } ?>
 

 

4. 유형별 상품 목록 페이지 shop/listtype.php

  

기존 코드 참고해서 $type == 6 항목 추가

 

if ($type == 1)      $g5['title'] = '히트상품';
else if ($type == 2) $g5['title'] = '추천상품';
else if ($type == 3) $g5['title'] = '최신상품';
else if ($type == 4) $g5['title'] = '인기상품';
else if ($type == 5) $g5['title'] = '할인상품';
else if ($type == 6) $g5['title'] = '이벤트상품';
else
.......................................
.......................................

댓글목록 +3

댓글목록

profile_image

관리자님의 댓글

관리자 작성일

DB에 추가 필드까지 정상적으로 생성돼야 화면이 제대로 뜰 겁니다.
해보면서 느낀 건...
웬만하면 새로 추가하지 마시고 기존에 있던 항목 중에서 사용 빈도가 낮은 걸 이미지만 바꿔서 사용하는 걸 추천드립니다.
수정할 게 너무 많네요.

기존 아이콘 수정해서 사용하는 방법
https://gnustudy.com/bbs/board.php?bo_table=yc_tip&wr_id=153

profile_image

신비님의 댓글의 댓글

신비 작성일

세심한 조언까지.................감동  =====b

profile_image

관리자님의 댓글

관리자 작성일

추가한 후 테스트하실 땐 상품유형 출력 부분에서 체크박스를 체크하고 확인해야 출력됩니다.

로그인 후 댓글 작성 가능합니다.

로그인

로그인 후 글 작성 가능합니다.
그누스킨닷컴

그누스터디는 그누보드, 영카트를 이용하시는 초보 사용자를 위한 정보를 공유합니다.

E-MAIL : gnustudy@naver.com / 카카오톡 : gnustudy / 텔레그램 : gnustudy
제작 문의를 제외한 일반 문의는 QA 게시판을 이용해주세요.

Copyright gnustudy.com All rights reserved.