크롬80버전 결제 이슈, 영카트5 주요패치 확인!

선택옵션 금액부분 변경

그누보드5
영카트5
매뉴얼
Q & A
제작의뢰
컨텐츠몰
부가서비스
소모임
커뮤니티
선택옵션 금액부분 변경

QA

사수가 없어도 할 수 있다! 초보자를 위한 그누보드 FAQ

선택옵션 금액부분 변경

본문

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

 

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

 

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기

이 질문에 댓글 쓰기 :

답변을 작성하시기 전에 로그인 해주세요.
전체 622
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT