쇼핑몰옵션에서 최소구매수량 설정하고 실제 수량도 자동설정

쇼핑몰옵션에서 최소구매수량 설정하고 실제 수량도 자동설정

QA

쇼핑몰옵션에서 최소구매수량 설정하고 실제 수량도 자동설정

본문

2e77def1d9435b048f696bbd1bf94218_1411523922_814.jpg

 

최소구매수량을 설정하면 그림에서 처럼 최소구매수량이 설정한 수량대로 나타나는데요.

실제로 구매수량옵션은 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); 

 

 

이정도인데...

수정하고 충분한 테스트를 거치시는게 좋겠네요.

 

저도 필요해서 수정하다보니 여기저기 오류를 뿜어내는데가 많아서

자료남기고 갑니다.

 

추후에 이상없으면 정리해서 올려놓겠습니다.

 

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

회원로그인

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