[기능] 상품등록시 상품유형 추가하기 > 정보공유

본문 바로가기

정보공유

일반글
영카트팁

[기능] 상품등록시 상품유형 추가하기

페이지 정보

게시물QR코드

본문

영카트의 기본적인 상품유형은 히트, 추천, 신상품, 인기, 할인이 있습니다. 

0c54aa1f4db0bf392bd2317ea4ea2670_1495438346_9391.png  

상품등록시 상품유형에서 선택한 유형으로 메인페이지등 상품유형의 스킨을 불러오는 부분에서 

해당 상품이 나타나게 되어있습니다.

하지만 상품이 유형을 늘리려고 할때는 영카트의 여러페이지에서 수정을 해야 하는데요.

다소 내용이 길겠지만 어떤식으로 상품 유형을 늘리는 방법을 해보겠습니다.

예로 MD추천이라는 상품유형을 추가 하겠습니다.

 

우선 www/adm/shop_admin/itemform.php 파일에 아래와 같이 MD추천항목을 넣어 줍니다.

<?php

/* www/adm/shop_admin/itemform.php */

 

<td>

<?php echo help("메인화면에 유형별로 출력할때 사용합니다.\n이곳에 체크하게되면 상품리스트에서 유형별로 정렬할때 체크된 상품이 가장 먼저 출력됩니다."); ?>

<input type="checkbox" name="it_type1" value="1" <?php echo ($it['it_type1'] ? "checked" : ""); ?> id="it_type1">

<label for="it_type1">히트 <img src="<?php echo G5_SHOP_URL; ?>/img/icon_hit.gif" alt=""></label>

<input type="checkbox" name="it_type2" value="1" <?php echo ($it['it_type2'] ? "checked" : ""); ?> id="it_type2">

<label for="it_type2">추천 <img src="<?php echo G5_SHOP_URL; ?>/img/icon_rec.gif" alt=""></label>

<input type="checkbox" name="it_type3" value="1" <?php echo ($it['it_type3'] ? "checked" : ""); ?> id="it_type3">

<label for="it_type3">신상품 <img src="<?php echo G5_SHOP_URL; ?>/img/icon_new.gif" alt=""></label>

<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">MD추천 <img src="<?php echo G5_SHOP_URL; ?>/img/icon_discount.gif" alt=""></label>

</td>

?>

 

그리고 www/adm/shop_admin/itemformupdate.php 파일에 아래 소스코드를 추가 하도록 하겠습니다.

 

1. SQL쿼리문에 MD추천의 필드명 it_type6을 추가합니다.

<?php

/* www/adm/shop_admin/itemformupdate.php */

 

it_type1            = '$it_type1',

it_type2            = '$it_type2',

it_type3            = '$it_type3',

it_type4            = '$it_type4',

it_type5            = '$it_type5',

it_type6            = '$it_type6',

?>

 

2.분류적용 기능을 유지 하기 위해 아래와 같이 chk_ca_it_type에 it_type6을 추가 합니다.

<?php

/* www/adm/shop_admin/itemformupdate.php */

 

// 모든 상품 동일 옵션 적용

$all_fields = '';

if(is_checked('chk_all_it_skin'))                $all_fields .= " , it_skin = '$it_skin' ";

if(is_checked('chk_all_it_mobile_skin'))         $all_fields .= " , it_mobile_skin = '$it_mobile_skin' ";

if(is_checked('chk_all_it_basic'))               $all_fields .= " , it_basic = '$it_basic' ";

if(is_checked('chk_all_it_order'))               $all_fields .= " , it_order = '$it_order' ";

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' ";

?>

 

3.전체적용 기능을 유지 하기 위해 아래와 같이 chk_all_it_type에 it_type6을 추가 합니다. 

<?php

/* www/adm/shop_admin/itemformupdate.php */

 

// 모든 상품 동일 옵션 적용

$all_fields = '';

if(is_checked('chk_all_it_skin'))                $all_fields .= " , it_skin = '$it_skin' ";

if(is_checked('chk_all_it_mobile_skin'))         $all_fields .= " , it_mobile_skin = '$it_mobile_skin' ";

if(is_checked('chk_all_it_basic'))               $all_fields .= " , it_basic = '$it_basic' ";

if(is_checked('chk_all_it_order'))               $all_fields .= " , it_order = '$it_order' ";

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' ";

?>

 

4.새로 생성한 MD추천의 스킨등의 옵션들을 넣어주기 위해서

www/adm/shop_admin/configform.php 파일에 쇼핑몰 초기화면과 모바일 쇼핑몰 초기화면 설정 부분에 아래와같이 <tr>코드를 추가 해줍니다.

<?php

/* www/adm/shop_admin/configform.php */

 

<tr>

<th scope="row">MD추천</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">MD추천</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>

?>

 

5.그리고 4번에서 추가한 새로운 필드들이 db에 업데이트 되어 저장 될 수 있도록

www/adm/shop_admin/configformupdate.php 파일에도 쿼리문을 아래와 같이 추가 합니다. 

<?php

/* www/adm/shop_admin/configformupdate.php */

 

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']}',

?>

 

6.이제 상품 리스트 페이지에서 선택한 유형에 따라서 타이틀이 바뀌게 하기 위해서

www/shop/listtype.php 파일에 아래와같은 소스코드를 추가합니다. 

<?php

/* www/shop/listtype.php */

 

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'] = 'MD상품';

?>

 

7.예를 들어 index.php 에서 해당 유형을 출력하는 소스코드를 넣어 보겠습니다.

<?php

/* www/shop/index.php */

?>

 

<?php if($default['de_type6_list_use']) { ?>

<!-- MD추천 시작 { -->

<section class="sct_wrap">

<div class="boundary">

<h2 class="sct_wrap_title">

<a href="<?php echo G5_SHOP_URL; ?>/listtype.php?type=6">test PRODUCT</a>

<p class="sct_wrap_title_des">많은 사랑을 받은 제품을 소개합니다</p>

</h2>

<?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();

?>

<div>

</section>

<!-- } 최신상품 끝 -->

<?php } ?>

 

8.마지막으로 www/adm/shop_admin/configform.php 파일의 상단에

쿼리문을 한번 실행하여 type6에 관련된 모든 필드들을 생성 하도록 하겠습니다.

<?php

/* www/adm/shop_admin/configform.php */

 

sql_query(" ALTER TABLE `{$g5['g5_shop_default_table']}`

ADD COLUMN `de_type6_list_use` TINYINT(4) NOT NULL DEFAULT '0' AFTER `de_type5_img_height`,

ADD COLUMN `de_type6_list_skin` VARCHAR(255) NOT NULL DEFAULT '0' AFTER `de_type6_list_use`,

ADD COLUMN `de_type6_list_mod` INT(11) NOT NULL DEFAULT '0' AFTER `de_type6_list_skin`,

ADD COLUMN `de_type6_list_row` INT(11) NOT NULL DEFAULT '0' AFTER `de_type6_list_mod`,

ADD COLUMN `de_type6_img_width` INT(11) NOT NULL DEFAULT '0' AFTER `de_type6_list_row`,

ADD COLUMN `de_type6_img_height` INT(11) NOT NULL DEFAULT '0' AFTER `de_type6_img_width` ", true);

}

 

sql_query(" ALTER TABLE `{$g5['g5_shop_default_table']}`

ADD COLUMN `de_mobile_type6_list_use` TINYINT(4) NOT NULL DEFAULT '0' AFTER `de_mobile_type5_img_height`,

ADD COLUMN `de_mobile_type6_list_skin` VARCHAR(255) NOT NULL DEFAULT '0' AFTER `de_mobile_type6_list_use`,

ADD COLUMN `de_mobile_type6_list_mod` INT(11) NOT NULL DEFAULT '0' AFTER `de_mobile_type6_list_skin`,

ADD COLUMN `de_mobile_type6_list_row` INT(11) NOT NULL DEFAULT '0' AFTER `de_mobile_type6_list_mod`,

ADD COLUMN `de_mobile_type6_img_width` INT(11) NOT NULL DEFAULT '0' AFTER `de_mobile_type6_list_row`,

ADD COLUMN `de_mobile_type6_img_height` INT(11) NOT NULL DEFAULT '0' AFTER `de_mobile_type6_img_width` ", true);

}

?>

위의 소스코드와 같이 www/adm/shop_admin/configform.php 파일의 상단에

해당 쿼리문을 넣으시고 웹사이트에서 해당 페이지를 실행시키면

쿼리문이 자동으로 실행되어 새로운 type6에 관련된 필드가 추가로 생성됩니다.

 

만약 상품유형을 여러개를 추가 하시고싶다면 www/adm/shop_admin/configform.php 파일의 상단에

아래와 같이 for문을 이용하여 한번에 생성이 가능 합니다.

<?php

/* www/adm/shop_admin/configform.php */

 

for($i=6; $i<9; $i++){

$j = $i-1;

sql_query(" ALTER TABLE `g5_shop_default`

ADD COLUMN `de_type{$i}_list_use` TINYINT(4) NOT NULL DEFAULT '0' AFTER `de_type{$j}_img_height`,

ADD COLUMN `de_type{$i}_list_skin` VARCHAR(255) NOT NULL DEFAULT '0' AFTER `de_type{$i}_list_use`,

ADD COLUMN `de_type{$i}_list_mod` INT(11) NOT NULL DEFAULT '0' AFTER `de_type{$i}_list_skin`,

ADD COLUMN `de_type{$i}_list_row` INT(11) NOT NULL DEFAULT '0' AFTER `de_type{$i}_list_mod`,

ADD COLUMN `de_type{$i}_img_width` INT(11) NOT NULL DEFAULT '0' AFTER `de_type{$i}_list_row`,

ADD COLUMN `de_type{$i}_img_height` INT(11) NOT NULL DEFAULT '0' AFTER `de_type{$i}_img_width` ", true);

 

sql_query(" ALTER TABLE `g5_shop_default`

ADD COLUMN `de_mobile_type{$i}_list_use` TINYINT(4) NOT NULL DEFAULT '0' AFTER `de_mobile_type{$j}_img_height`,

ADD COLUMN `de_mobile_type{$i}_list_skin` VARCHAR(255) NOT NULL DEFAULT '0' AFTER `de_mobile_type{$i}_list_use`,

ADD COLUMN `de_mobile_type{$i}_list_mod` INT(11) NOT NULL DEFAULT '0' AFTER `de_mobile_type{$i}_list_skin`,

ADD COLUMN `de_mobile_type{$i}_list_row` INT(11) NOT NULL DEFAULT '0' AFTER `de_mobile_type{$i}_list_mod`,

ADD COLUMN `de_mobile_type{$i}_img_width` INT(11) NOT NULL DEFAULT '0' AFTER `de_mobile_type{$i}_list_row`,

ADD COLUMN `de_mobile_type{$i}_img_height` INT(11) NOT NULL DEFAULT '0' AFTER `de_mobile_type{$i}_img_width` ", true);

}


for($i=6; $i<9; $i++){

$j = $i-1;

sql_query(" ALTER TABLE `g5_shop_item` ADD COLUMN `it_type{$i}` TINYINT(4) NOT NULL DEFAULT '0' AFTER `it_type{$j}` ", true);

}

?>

 

0c54aa1f4db0bf392bd2317ea4ea2670_1495440129_1589.png

이렇게 MD추천 이라는 상품유형이 하나 추가 되었습니다.
 

댓글목록

등록된 댓글이 없습니다.

  • Addr.부산광역시 동구 중앙대로 319, 9층 L4호(초량동, 부산YMCA빌딩) Email. gnuwiz@naver.com
  • BR. 625-68-00172 TRC. 2019-부산해운대-1186 TEL. 0507-1382-2790
All rights reserved.