추가옵션 가격 관련 설정....
본문
안녕하세요.
옵션및 추가 옵션의 가격이 보여지는것을 좀 수정해서 사용중입니다.
그런데 버그가 하나있는데요.
기본 옵션은 선택하면 가격이 기본가격 +옵션가격으로 정확하게 나옵니다.
그런대 추가옵션을 선택하면 기본가격 + 추가 가격이 나와서 가격이 뻥튀기 되서 나옵니다.
최종 결제는금액은 계산 잘됩니다.
최종 결제 금액 계산하는 곳을 보니 추가옵션 타입이면 기본가격만 더해서 계산하더라구요.
그래서 구부분을 그대로 가져와서 해봤는데 추가 옵션인지 일반 옵션인지 판단하는것이 전혀 동작을 안합니다.
다른 방법이 있는지 궁금 합니다. (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);
!-->
추가옵션은 독립가격입니다.