추가옵션 가격 관련 설정....

추가옵션 가격 관련 설정....

QA

추가옵션 가격 관련 설정....

본문

안녕하세요.

 

옵션및 추가 옵션의 가격이 보여지는것을 좀 수정해서 사용중입니다.

 

그런데 버그가 하나있는데요.

 

기본 옵션은 선택하면 가격이 기본가격 +옵션가격으로 정확하게 나옵니다.

 

그런대 추가옵션을 선택하면 기본가격 + 추가 가격이 나와서 가격이 뻥튀기 되서 나옵니다.

 

최종 결제는금액은 계산 잘됩니다.

 

최종 결제 금액 계산하는 곳을 보니 추가옵션 타입이면 기본가격만 더해서 계산하더라구요.

 

그래서 구부분을 그대로 가져와서 해봤는데 추가 옵션인지 일반 옵션인지 판단하는것이 전혀 동작을 안합니다.

 

다른 방법이 있는지 궁금 합니다. (c만 할줄알지 웹은 전혀 할줄 모릅니다.)

 

미리 감사드립니다.

 

증상이 나타나는 사이트이며 해결되면 사이트는 지울께요. 아래 사이트에서 추가옵션 선택해보면 됩니다.

https://www.makeparts.co.kr/shop/MK46

 

 

실제 서버에 적용되어있는 소스는 제가아래빨간색으로 수정을 해보지 않은 원래 발생하는 소스입니다.

아래와 같이 적용했더니 안되어서 문의 드리는거에요.

 

 

shop.override.js 소스 안 jQuery(function($){ 안쪽입니다. 대략 

 

 

                    var opt_prc;
                    if(parseInt(price) >= 0)
                        opt_prc = "+"+number_format(String(price))+"원";
                    else
                        opt_prc = number_format(String(price))+"원";

  //아래의 optiontype이 기본옵션일때 0 추가옵션일때 0이아닌값이 나와야하는데 제대로 안나옵니다. FIx: 2022.02.07
  
                    var $el_prc1 = $("input.io_price");
                    var $el_type1 = $("input[name^=io_type]");
                    var optiontype = 0;

                    $el_prc1.each(function(index) {

                        optiontype = $el_type1.eq(index).val();
                    });
                    

  //FIx: 2021.02.08
                    var opt_prc_total = parseInt($("input#it_price").val());
                    
                        if(optiontype == "0") { // 선택옵션
                        opt_prc_total = parseInt(price ) + parseInt(opt_prc_total) ;
                        } else { // 추가옵션
                        opt_prc_total = parseInt(opt_prc_total) ;
                        }

                    
                    opt_prc_total = parseInt(opt_prc_total);
                    opt_prc_total = number_format(String(opt_prc_total))+"원";
                    val_opt_prc_total = parseInt(opt_prc_total.replace(',', ''))
                    console.log(opt_prc_total);
  //FIx: 2021.02.08

                    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\" data-opt-prc-total=\""+ val_opt_prc_total + "\"><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\" data-opt-prc-total=\""+ val_opt_prc_total + "\"><i class=\"fa fa-plus\" aria-hidden=\"true\"></i><span class=\"sound_only\">증가</span></button>";
                    opt += "<span class=\"sit_opt_prc\">"+opt_prc_total+"</span>";
  //FIx: 2021.02.08    
//                  opt += "<span class=\"sit_opt_prc_total\">"+opt_prc_total+"</span>";
  //FIx: 2021.02.08                      
                    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>";

이 질문에 댓글 쓰기 :

답변 2

shop.override.js의 84라인 부터보시면  87라인에 합산하도록 되어있습니다.

이부분을 수정해주시면 될꺼 같네요..


 
  //mizzhin FIx: 2021.02.08
                    var opt_prc_total = parseInt($("input#it_price").val());
                    
                    opt_prc_total = parseInt(price ) + parseInt(opt_prc_total) ;  <--- 이부분 수정 하시기 바랍니다.
            
                    opt_prc_total = parseInt(opt_prc_total);
                    opt_prc_total = number_format(String(opt_prc_total))+"원";
                    val_opt_prc_total = parseInt(opt_prc_total.replace(',', ''))
                    console.log(opt_prc_total);

 

답변감사합니다.

제가 무지했습니다.

저는 옵션인지 추가옵션인지를 받아와서 구분하는것으로 만생각했는데

함수내에 type라는 값이 0일때 옵션, 1일때 추가옵션으로 이미 값이 있었네요.

그냥 소스코드에 type으로 구부만하면되었네요.

덕부에 좀더 살펴보다가 해결했습니다.

감사합니다.

추가옵션은 독립가격입니다.

독립가격인데요. 지금 페이지상에서  기본가격 + 독릭가격으로 표시됩니다.
즉 옵션가격처럼 추가옵션 가격도 적용이되서 빵튀기가 되어서 표시가 됩니다.

그래서이걸 고치려고 하는것이구요.

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

회원로그인

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