영카트 선택옵션을 선택후 장바구니에 담아지지않습니다;;

영카트 선택옵션을 선택후 장바구니에 담아지지않습니다;;

QA

영카트 선택옵션을 선택후 장바구니에 담아지지않습니다;;

본문

선택옵션이 없는 상품은 장바구니로 잘가지는데 선택옵션을 생성하고 선택하면 장바구니에 담아지지 않습니다..

 

lib/shop.lib.php 부분을 수정하였습니다.

        // 옵션선택목록 만들기 

        for($i=0; $i<$subj_count; $i++) {

            $opt = $options[$i];

            $opt_count = count($opt);

            $disabled = '';

            if($opt_count) {

                $seq = $i + 1;

                if($i > 0)

                    $disabled = ' disabled="disabled"';

                $str .= '<div class="p_d_option2">'.PHP_EOL;

                $select = '<select id="it_option_'.$seq.'" class="market_select"'.$disabled.'>'.PHP_EOL;

                $select .= '<option value="">선택</option>'.PHP_EOL;

                for($k=0; $k<$opt_count; $k++) {

                    $opt_val = $opt[$k];

                    if(strlen($opt_val)) {

                        $select .= '<option value="'.$opt_val.'">'.$opt_val.'</option>'.PHP_EOL;

                    }

                }

                $select .= '</select>'.PHP_EOL;

                $select.PHP_EOL;

                $str .= '</div>'.PHP_EOL;

            }

        }

    } else {

$str .= '<div class="p_d_option2">'.PHP_EOL;

        $select = '<select id="it_option_1" class="market_select">'.PHP_EOL;

        $select .= '<option value="">선택</option>'.PHP_EOL;

        for($i=0; $row=sql_fetch_array($result); $i++) {

            if($row['io_price'] > 0)

 $price = '  + '.number_format($row['io_price']).'원';

else if ($row['io_price'] == 0)

$price = '';

else

 $price = '   '.number_format($row['io_price']).'원';

            if($row['io_stock_qty'] < 1)

                $soldout = '  [품절]';

            else

                $soldout = '';

            $select .= '<option value="'.$row['io_id'].','.$row['io_price'].','.$row['io_stock_qty'].'">'.$row['io_id'].$price.$soldout.'</option>'.PHP_EOL;

        }

        $select .= '</select>'.PHP_EOL;

        $str .= '<td>'.$select.'</td>'.PHP_EOL;

        $str .= '</div>'.PHP_EOL;

    }

 

- item.form.skin.php 코드 부분입니다.

<?php

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

 

//add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_CSS_URL.'/style.css">', 0);

?>

<form name="fitem" id="fitem" method="post" action="<?php echo $action_url; ?>" onsubmit="return fitem_submit(this);">

<input type="hidden" name="it_id[]" value="<?php echo $it_id; ?>">

<input type="hidden" name="sw_direct">

<input type="hidden" name="url">

<section class="detail">

<!-- 상품이미지 미리보기 시작 { -->    

<article class="pro_detail_img">

<?php

$big_img_count = 0;

$thumbnails = array();

$img = get_it_thumbnail_no($it['it_img3'], 571, 571);

if($img) {

// 썸네일

...

?>

</article>

<!-- } 상품이미지 미리보기 끝 -->

<article class="pro_detail_info">

<div class="p_d_h1"><?php echo stripslashes($it['it_name']); ?></div>

<div class="p_d_h2"><?php echo $it['it_basic']; ?></div>

<div class="p_d_price">

<span class="price_sale"><?php echo number_format($it['it_cust_price'],0); ?> won</span> 

<?php echo number_format(get_price($it),0); ?> won 

<input type="hidden" id="it_price" value="<?php echo get_price($it); ?>">

</div>

 

<?php if ($is_orderable) { ?>

 

<!-- 총 구매액 -->

<div id="sit_tot_price"></div>

<?php } ?>

 

<?php if($is_soldout) { ?>

<p id="sit_ov_soldout">상품의 재고가 부족하여 구매할 수 없습니다.</p>

<?php } ?>

      

<div class="p_d_option" id="item_info_area">

<?php

if(!$it['it_buy_min_qty'])

$it['it_buy_min_qty'] = 1;

?>

<input type="hidden" name="io_type[<?php echo $it_id; ?>][]" value="0">

<input type="hidden" name="io_id[<?php echo $it_id; ?>][]" value="">

<input type="hidden" name="io_value[<?php echo $it_id; ?>][]" value="<?php echo $it['it_name']; ?>">

<input type="hidden" class="io_price" value="0">

<input type="hidden" class="io_stock" value="<?php echo $it['it_stock_qty']; ?>">

<div class="count_btn_up"><a href="#" id="item_add_btn" ><img src="<?php echo G5_THEME_URL ?>/images/count_up.png" width="24px"></a></div>

<div class="count_btn_down"><a href="#" id="item_minus_btn"><img src="<?php echo G5_THEME_URL ?>/images/count_down.png" width="24px"></a></div>

<input type="text" class="frm_input count_input" name="ct_qty[<?php echo $it_id; ?>][]" value="<?php echo $it['it_buy_min_qty']; ?>" id="ct_qty_<?php echo $i; ?>" >

<?php

        if($option_item) {

        ?>

        <!-- 선택옵션 시작 { -->

            <?php // 선택옵션

            echo $option_item;

            ?>

        <!-- } 선택옵션 끝 -->

        <?php

        }

        ?>

</div>

<div class="p_d_btn white">

<a href="#" id="add_cart_btn" ><div class="btn_gold">add to cart</div></a>

</div>

 

<div class="p_d_comment aaa">대량 구매 문의 시 <a href="<?php echo G5_BBS_URL; ?>/qalist.php"><u>1:1 comment</u></a> 를 이용해주세요.<br>배송, 교환 환불 시 <a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=notice"><u>notice</u></a>을 확인해주세요.</div>

<div class="p_d_page aaa">

<span><a href="<?php echo G5_URL; ?>">list</a></span>

<!-- 다른 상품 보기 시작 { -->

<?php

if ($prev_href) {

echo '<span>'.$prev_href.'pre'.$prev_href2.'</span>';

}else{

echo '<span style="opacity:0.5">pre</span>';

}

?>

<?php

if ($next_href) {

echo '<span>'.$next_href.'next'.$next_href2.'</span>';

}else{

echo '<span style="opacity:0.5">next</span>';

}

?>  

<!-- } 다른 상품 보기 끝 -->

</div>

</article>

</section>

</form>

 

<script>

$(function(){

    // 상품이미지 첫번째 링크

    $("#sit_pvi_big a:first").addClass("visible");

 

    // 상품이미지 미리보기 (썸네일에 마우스 오버시)

    ...

    // 상품이미지 크게보기

    ...

// 장바구니 답기

    $("#add_cart_btn").bind("click", function(event){

event.preventDefault();

        var frm = document.getElementById("fitem");

document.pressed = "장바구니";

if(fitem_submit(frm)){

frm.submit();

}

 

    });

// 수량증가

$("#item_add_btn").bind("click", function(event){

event.preventDefault();

var this_qty, max_qty = 9999, min_qty = 1;

var $el_qty = $("#item_info_area").find("input[name^=ct_qty]");

        var stock = parseInt($("#item_info_area").find("input.io_stock").val());

this_qty = parseInt($el_qty.val().replace(/[^0-9]/, "")) + 1;

        if(this_qty > stock) {

alert("재고수량 보다 많은 수량을 구매할 수 없습니다.");

            this_qty = stock;

        }

 

        if(this_qty > max_qty) {

this_qty = max_qty;

            alert("최대 구매수량은 "+number_format(String(max_qty))+" 입니다.");

        }

        $el_qty.val(this_qty);

 

    });

// 수량감소

$("#item_minus_btn").bind("click", function(event){

event.preventDefault();

var this_qty, max_qty = 9999, min_qty = 1;

var $el_qty = $("#item_info_area").find("input[name^=ct_qty]");

        var stock = parseInt($("#item_info_area").find("input.io_stock").val());

this_qty = parseInt($el_qty.val().replace(/[^0-9]/, "")) - 1;

        if(this_qty < min_qty) {

this_qty = min_qty;

            alert("최소 구매수량은 "+number_format(String(min_qty))+" 입니다.");

        }

        $el_qty.val(this_qty);

 

    });

});

// 바로구매, 장바구니 폼 전송

function fitem_submit(f)

{

    if (document.pressed == "장바구니") {

        f.sw_direct.value = 0;

    } else { // 바로구매

        f.sw_direct.value = 1;

    }

 

    // 판매가격이 0 보다 작다면

    if (document.getElementById("it_price").value < 0) {

        alert("전화로 문의해 주시면 감사하겠습니다.");

        return false;

    }

 

    var val, io_type, result = true;

    var sum_qty = 0;

    var min_qty = parseInt(<?php echo $it['it_buy_min_qty']; ?>);

    var max_qty = parseInt(<?php echo $it['it_buy_max_qty']; ?>);

    var $el_type = $("input[name^=io_type]");

 

    $("input[name^=ct_qty]").each(function(index) {

        val = $(this).val();

 

        if(val.length < 1) {

            alert("수량을 입력해 주십시오.");

            result = false;

            return false;

        }

 

        if(val.replace(/[0-9]/g, "").length > 0) {

            alert("수량은 숫자로 입력해 주십시오.");

            result = false;

            return false;

        }

 

        if(parseInt(val.replace(/[^0-9]/g, "")) < 1) {

            alert("수량은 1이상 입력해 주십시오.");

            result = false;

            return false;

        }

 

        io_type = $el_type.eq(index).val();

        if(io_type == "0")

            sum_qty += parseInt(val);

    });

 

    if(!result) {

        return false;

    }

 

    if(min_qty > 0 && sum_qty < min_qty) {

        alert("선택옵션 개수 총합 "+number_format(String(min_qty))+"개 이상 주문해 주십시오.");

        return false;

    }

 

    if(max_qty > 0 && sum_qty > max_qty) {

        alert("선택옵션 개수 총합 "+number_format(String(max_qty))+"개 이하로 주문해 주십시오.");

        return false;

    }

    return true;

}

</script>

이 질문에 댓글 쓰기 :

답변 1

재고가 부족하다라는 오류가 뜨지 않나요?

답변을 작성하시기 전에 로그인 해주세요.
전체 124
QA 내용 검색

회원로그인

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