테스트 사이트 - 개발 중인 베타 버전입니다

영카트 선택옵션 수량에 따른 금액 노출 채택완료

상한1 5년 전 조회 4,963

안녕하세요

 

이것처럼  js/shop.override.js 에서

선택옵션을 선택했을때 추가금액이 표시되는 것이 아니라

해당 상품의 가격이 그대로 노출되게 해놓았는데요

문제가 수량 변경시에도 똑같이 수량적용이 안되고 노출됩니다.

</p>

<p>jQuery(function($){</p>

<p>    $(".2017_renewal_itemform select.it_supply").on("shop_sel_supply_process", function(e, param){

        

        var add_exec = param.add_exec;

        var $el = $(this);

        var val = $el.val();

        

        //블랙캣77님이 해당 코드에 도움을 주셨습니다.

        var eq = $("select.it_supply").index($(this));

        var item = $el.closest(".sit_option").find("label").eq(eq).text();

        

        if(!val) {

            alert(item+"을(를) 선택해 주십시오.");

            return false;

        }</p>

<p>        var info = val.split(",");</p>

<p>        // 재고체크

        if(parseInt(info[2]) < 1) {

            alert(info[0]+"은(는) 재고가 부족하여 구매할 수 없습니다.");

            return false;

        }</p>

<p>        var id = item+chr(30)+info[0];

        var option = item+":"+info[0];

        var price = info[1];

        var stock = info[2];</p>

<p>        // 금액 음수 체크

        if(parseInt(price) < 0) {

            alert("구매금액이 음수인 상품은 구매할 수 없습니다.");

            return false;

        }</p>

<p>        if(add_exec) {

            if(same_option_check(option))

                return false;</p>

<p>            add_sel_option(1, id, option, price, stock);

        }</p>

<p>        return false;

    });</p>

<p>    if (typeof add_sel_option === "function") {</p>

<p>        add_sel_option = (function() {

            var cached_function = add_sel_option;</p>

<p>            return function() {

                

                if( $(".2017_renewal_itemform").length ){

                    var a = arguments;

                    var type=a[0],

                        id=a[1],

                        option=a[2],

                        price=a[3],

                        stock=a[4];</p>

<p>                    var item_code = $("input[name='it_id[]']").val();

                    var opt = "";

                    var li_class = "sit_opt_list";

                    if(type)

                        li_class = "sit_spl_list";</p>

<p>                    var it_price = parseInt($("input#it_price").val()); // 선택옵션 금액 <- 이곳을 수정했습니다

                    var it_price_str=number_format(String(it_price))+"원"; //금액 정의 <- 이곳을 수정했습니다</p>

<p>                    

                    price = parseInt(price);

                    it_price = parseInt(it_price);</p>

<p>                    var opt_prc;

                    if(parseInt(price) >= 0)

                        opt_prc = "+"+number_format(String(price + it_price))+"원"; //<- 이곳을 수정했습니다

                    else

                        opt_prc = number_format(String(price))+"원";</p>

<p>                    opt += "<li class=\""+li_class+"\">";

                    opt += "<input type=\"hidden\" name=\"io_type["+item_code+"][]\" value=\""+type+"\">";

                    opt += "<input type=\"hidden\" name=\"io_id["+item_code+"][]\" value=\""+id+"\">";

                    opt += "<input type=\"hidden\" name=\"io_value["+item_code+"][]\" value=\""+option+"\">";

                    opt += "<input type=\"hidden\" class=\"io_price\" value=\""+price+"\">";

                    opt += "<input type=\"hidden\" class=\"io_stock\" value=\""+stock+"\">";

                    opt += "<div class=\"opt_name\">";

                    opt += "<span class=\"sit_opt_subj\">"+option+"</span>";

                    opt += "</div>";

                    opt += "<div class=\"opt_count\">";

                    opt += "<button type=\"button\" class=\"sit_qty_minus\"><i class=\"fa fa-minus\" aria-hidden=\"true\"></i><span class=\"sound_only\">감소</span></button>";

                    opt += "<input type=\"text\" name=\"ct_qty["+item_code+"][]\" value=\"1\" class=\"num_input\" size=\"5\">";

                    opt += "<button type=\"button\" class=\"sit_qty_plus\"><i class=\"fa fa-plus\" aria-hidden=\"true\"></i><span class=\"sound_only\">증가</span></button>";

                    opt += "<span class=\"sit_opt_prc\">"+opt_prc+"</span>";

                    opt += "<button type=\"button\" class=\"sit_opt_del\"><i class=\"fa fa-times\" aria-hidden=\"true\"></i><span class=\"sound_only\">삭제</span></button></div>";

                    opt += "</li>";</p>

<p>                    if($("#sit_sel_option > ul").size() < 1) {

                        $("#sit_sel_option").html("<ul id=\"sit_opt_added\"></ul>");

                        $("#sit_sel_option > ul").html(opt);

                    } else{

                        if(type) {

                            if($("#sit_sel_option .sit_spl_list").size() > 0) {

                                $("#sit_sel_option .sit_spl_list:last").after(opt);

                            } else {

                                if($("#sit_sel_option .sit_opt_list").size() > 0) {

                                    $("#sit_sel_option .sit_opt_list:last").after(opt);

                                } else {

                                    $("#sit_sel_option > ul").html(opt);

                                }

                            }

                        } else {

                            if($("#sit_sel_option .sit_opt_list").size() > 0) {

                                $("#sit_sel_option .sit_opt_list:last").after(opt);

                            } else {

                                if($("#sit_sel_option .sit_spl_list").size() > 0) {

                                    $("#sit_sel_option .sit_spl_list:first").before(opt);

                                } else {

                                    $("#sit_sel_option > ul").html(opt);

                                }

                            }

                        }

                    }</p>

<p>                    price_calculate();</p>

<p>                    $("#sit_sel_option").trigger("add_sit_sel_option", [opt]);</p>

<p>                } else {</p>

<p>                    cached_function.apply(this, arguments); // use .apply() to call it</p>

<p>                }   //end if</p>

<p>            };

        }());

    }   //end if check function</p>

<p>    if (typeof price_calculate === "function") {

        price_calculate = (function() {

            var cached_function = price_calculate;</p>

<p>            return function() {

                

                if( $(".2017_renewal_itemform").length ){</p>

<p>                    var it_price = parseInt($("input#it_price").val());

                    var io_price = parseInt($("input#io_price").val());</p>

<p>                    if(isNaN(it_price))

                        return;</p>

<p>                    var $el_prc = $("input.io_price");

                    var $el_qty = $("input[name^=ct_qty]");

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

                    var price, type, qty, total = 0;</p>

<p>                    $el_prc.each(function(index) {

                        price = parseInt($(this).val());

                        qty = parseInt($el_qty.eq(index).val());

                        type = $el_type.eq(index).val();</p>

<p>                        if(type == "0") { // 선택옵션

                            total += (it_price + price) * qty;

                        } else { // 추가옵션

                            total += price * qty;

                        }

                    });</p>

<p>                    $("#sit_tot_price").empty().html("<span>총 금액 </span><strong>"+number_format(String(total))+"</strong> 원");

                    

                    $("#sit_tot_price").trigger("price_calculate", [total]);

                } else {

                    cached_function.apply(this, arguments); // use .apply() to call it

                }

                

            };

        }());

    }   //end if check function</p>

<p>});</p>

<p>

 

도와주세요..

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
플라이
5년 전

말씀하신 부분은 해당 jquery 부분만이 아니라 옵션 가져오는 shop.lib.php 파일에서 get_item_options 함수 부분을 수정하고  js/shop.override.js , shop/itemoption.php 의 3개파일수정이 필요한 부분입니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

e
5년 전

아래 빨간 부분 추가해보세요..

제가 테스트 해보지 않아서.. 될지 모르겠네요..^^;

 

$("#sit_tot_price").empty().html("<span>총 금액 </span><strong>"+number_format(String(total))+"</strong> 원");

$(".sit_opt_prc").empty().html(number_format(String(total))+" 원");

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

상한1
5년 전
소중한 답변 감사드립니다.
하지만 제가 원하는 부분은 총 금액 부분이 아니라, 옵션을 선택했을 때 옆에 +되어 가격이 표시되어있는 부분에 수량을 반영해서 나타내고 싶은 것 입니다..ㅜ 수량을 2로 올려도 총금액 부분에는 반영이 되지만 수량올리는 부분 옆에 금액이 표시되어있는 부분은 금액이 변경되질 않아 질문 드린 것 입니다 ㅠ
e
eyekiss
5년 전
sit_opt_prc 가 그 옵션 옆에 금액 입니다.
일단 소스를 넣어보시죠??

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인