선택옵션 금액부분 변경

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
선택옵션 금액부분 변경

QA

선택옵션 금액부분 변경

본문

안녕하세요 저번에 같은 내용으로 질문드렸는데 도저히 해결이 되질 않아 다시 질문 드립니다..ㅠ

 

3731616218_1589951428.3543.png

js/shop.override.js 에서 위와같이 기존 영카트의 + 옵션가격이 아닌 옵션가격을 더한 상품의 가격 그대로가 노출이 되도록 변경해놓았습니다.

하지만 여기서 문제는 수량이 올라가도 빨간색 동그라미 부분은 변하질 않습니다.

수량 input의 값을 받아와서 * 를 해야되는것 같은데..

저한텐 소스가 너무 어렵네요 ... 도와주세요

 


jQuery(function($){
    $(".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;
        }
        var info = val.split(",");
        // 재고체크
        if(parseInt(info[2]) < 1) {
            alert(info[0]+"은(는) 재고가 부족하여 구매할 수 없습니다.");
            return false;
        }
        var id = item+chr(30)+info[0];
        var option = item+":"+info[0];
        var price = info[1];
        var stock = info[2];
        // 금액 음수 체크
        if(parseInt(price) < 0) {
            alert("구매금액이 음수인 상품은 구매할 수 없습니다.");
            return false;
        }
        if(add_exec) {
            if(same_option_check(option))
                return false;
            add_sel_option(1, id, option, price, stock);
        }
        return false;
    });
    if (typeof add_sel_option === "function") {
        add_sel_option = (function() {
            var cached_function = add_sel_option;
            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];
                    var item_code = $("input[name='it_id[]']").val();
                    var opt = "";
                    var li_class = "sit_opt_list";
                    if(type)
                        li_class = "sit_spl_list";
                    var it_price = parseInt($("input#it_price").val()); // 선택옵션 금액
                    var it_price_str=number_format(String(it_price))+"원"; //금액 정의
                    
                    price = parseInt(price);
                    it_price = parseInt(it_price);
                    var opt_prc;
                    if(parseInt(price) >= 0)
                        opt_prc = "+"+number_format(String(price + it_price))+"원";
                    
                    else
                        opt_prc = number_format(String(price))+"원";
                    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\" id=\"item_som\" 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>";
                    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);
                                }
                            }
                        }
                    }
                    price_calculate();
                    $("#sit_sel_option").trigger("add_sit_sel_option", [opt]);
                } else {
                    cached_function.apply(this, arguments); // use .apply() to call it
                }   //end if
            };
        }());
    }   //end if check function
    if (typeof price_calculate === "function") {
        price_calculate = (function() {
            var cached_function = price_calculate;
            return function() {
                
                if( $(".2017_renewal_itemform").length ){
                    var it_price = parseInt($("input#it_price").val());
                    var io_price = parseInt($("input#io_price").val());
                    if(isNaN(it_price))
                        return;
                    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;
                    $el_prc.each(function(index) {
                        price = parseInt($(this).val());
                        qty = parseInt($el_qty.eq(index).val());
                        type = $el_type.eq(index).val();
                        if(type == "0") { // 선택옵션
                            total += (it_price + price) * qty;
                        } else { // 추가옵션
                            total += price * qty;
                        }
                    });
                    
                    $("#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
});

 

$(".sit_opt_prc").empty().html(number_format(String(total))+" 원");  이렇게 넣으면

옵션이 한가지 일때는 문제가없지만 옵션을 두개 이상선택하면 아래와 같이 나옵니다..

 

3731616218_1589951597.721.png

 

이 질문에 댓글 쓰기 :

답변 1

input type hidden 하나 추가 하신 후 변경되는 금액을 저곳에 기입. 

단 number_format 제외 하고 그냥 숫자만 넣고..변경될때마다 그 값을 변경 해주시고 불러올때 현재 값을 불러내버리시는 방법이 하나 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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