쇼핑몰옵션에서 최소구매수량 설정하고 실제 수량도 자동설정
본문
최소구매수량을 설정하면 그림에서 처럼 최소구매수량이 설정한 수량대로 나타나는데요.
실제로 구매수량옵션은 1 로 나타납니다.
쇼핑몰설정 최소구매수량에 입력한 숫자가 5라면 구매수량도 5로 나오게 할 수 없을까요?
답변 6
흠... 옵션 선택에서 최소구매수량만 나오면 되는거죠?
편리님이 알려주신 것처럼 변수를 사용해주시면 될것같아요.
/skin/shop/basic/item.form.skin.php에서 186번째줄이 최소수량 정해주는건데 if문 다음줄에
<script>
itBuyMinQty = "<?=number_format($it['it_buy_min_qty']";
</script>
이렇게 해두시면 최소구매수량이 있어서 if문에 걸리면 itBuyMinQty는 관리자페이지에서 지정한 해당 상품의 최소수량의 값을 가지게되요.
그리고나서 /js/shop.js가셔서
맨 윗줄에
var itBuyMinQty = 1;
이렇게 해주세요. 수정하려고하는 옵션 선택후 수량정해주는 벨류값이 그냥 1로 박혀있어요 그러니 여기서 1을써도 상관은 없죠 ^^
다음. 302번째줄에 add_sel_option(0, id, option, price, stock); 이렇게 되어있는데 이걸 add_sel_option(0, id, option, price, stock, itBuyMinQty);로 수정해주세요.
맨위에 itBuyMinQty를 설정해 두어서 item.form.skin.php에서 값이 설정되지 않아도 오류가 나지 않아요 ^^
그다음 346번째줄
function add_sel_option(type, id, option, price, stock) 이렇게 된걸
function add_sel_option(type, id, option, price, stock, itBuyMinQty) 이렇게 추가해주세요.
그럼 최소수량값을 받아오겠죠?
이제 최소수량을 출력해주는 인풋인 368번째줄에
value=\"1\" 이렇게된걸
value=\"" + itBuyMinQty + "\"
이렇게 수정해주시면...
끝...
js/shop.js 파일에서 add_sel_option 함수의 코드를 수정하시면 가능합니다.
다만 shop.js 는 모든 상품에 공통으로 사용되는 파일로 수량을 변경하시게 되면
모든 상품에서 동일하게 변경된 수량이 적용되어 표시가 됩니다.
최소구매수량을 지정하는 자바스크립트 글로벌 변수를 생성하셔서 이 변수를
사용하는 방향으로 코드를 수정하시면 될 듯 합니다. 프로그램 개발이 어려우시다면
제작의뢰 등을 이용하셔서 수정해주시기 바랍니다.
한가지 덧붙히자면, 제일 위의
<script>
itBuyMinQty = "<?=number_format($it['it_buy_min_qty']";
</script>
이부분이 아래와 같아야 합니다.
<script>
itBuyMinQty = "<?php echo $it['it_buy_min_qty']; ?>";
</script>
아마도 ?> 닫는 부분에서 에러가 난듯...
그리고 number_format 펑션을 적용할 경우 계산이 안됩니다.
총 합계금액이 정상적으로 출력되지않더군요.
참고하세요~
으음... add_sel_option 함수가 사용된 부분이 두곳이네요.
ctrl + f 로 찾아보시고,
둘다 적용해주세요.
add_sel_option(0, id, option, price, stock, itBuyMinQty);
그리고 감소할 경우도 생각해봐야겠습니다.
최소수량을 1000개로 하고
1000개 미만이 되었을때~
그러나, 옵션이 500 + 또다른옵션 500개가 되면 1000개가 되니...
이거 딜레마네요 -0-;
999개가 되면 경고창을 띄워줘야 합니다. 1000개 이상이라고...흠.
최소수량에 관한 부분들은 관리자님이 좀 손을 보셔야할듯하네요. ^^;;
수량 변경 및 삭제 관련된 jquery 부분도 변경하셔야 합니다.
168번째줄로 나오는데 다르겠죠?
var this_qty, max_qty = 9999, min_qty = 1;
var this_qty, max_qty = 99999, min_qty = itBuyMinQty;
229번째줄 즈음
$("input[name^=ct_qty]").live("keyup", function() {
$("input[name^=ct_qty]").live("focusout", function() {
238번째줄 즈음
if(d_val < 1 || d_val > 9999) {
if(d_val < itBuyMinQty || d_val > 9999) {
240번째줄
$(this).val(1);
$(this).val(itBuyMinQty);
이정도인데...
수정하고 충분한 테스트를 거치시는게 좋겠네요.
저도 필요해서 수정하다보니 여기저기 오류를 뿜어내는데가 많아서
자료남기고 갑니다.
추후에 이상없으면 정리해서 올려놓겠습니다.
하하 이런
바로구매나 장바구니 클릭시 검사하네요. 위에 내용은 무시해야할듯...
번복해서 죄송하네요 -0-;;;;