구매수량대비 할인율을 적용시켜보려고 이렇게 저렇게 짜보다가 검색해보니 찾으시는 분들이 많은거같아서
코딩하고나서.. 대략 정리를 해봤습니다.
상품별로 구매 수량대비 할인율을 적용할 수 있는데,
이는 한 상품에 대하여 최소수량을 정하고, 일정 수량 이하로 구매하지 못하도록 하는 기능만 담았습니다.
즉, 1개 1만원인 상품을 10개 이상 구매시 8천원에 하겠다, 라는 일차적인 설정만 가능합니다.
1234라는 상품번호를 가진 상품에 대하여 1개를 구매할때 1만원, 10개를 구매할때 8천원,
100개를 구매할때 5천원.. 이라는 건 불가능합니다만,
1234라는 상품번호에 대하여
10개 이상만 구매가 가능하며, 가격은 8천원이라는 설정만 가능합니다.
(상품에 최소 구매 수량을 정하고, 상품 페이지에서 자바스크립트로 최소 구매수량을 낮출 수 없도록 간단히 짰습니다.
최소구매수량은 10개, 가격은 8천원이라는 한가지 설정만 가능합니다)
상품 리스트 페이지에 노출될 때 가격은 8천원이라고 표시되며,
상품 페이지 접근해서 수량은 자동입력되어, 가격은 8만원이 표기됩니다.
도매나 묶음 단위, 최소 구매수량단위가 필요하신 분들께 도움이 되리라 생각합니다
맨날 도움만 받는것같아 부족한점이 많지만 올려봅니다.
설명이 미흡한점 양해부탁드릴게요 : )
1. DB에 상품별 최소 구매수량 필드를 추가해줍니다
alter table
테이블에 최소수량 필드 추가
|
ALTER TABLE `yc4_item` ADD `it_min_order` INT( 5 ) NOT NULL ;
|
2. 종전에 등록되어있던 아이템들에게 최소 구매수량 저의(이 숫자 미만으로는 구매 불가토록. 즉 종전에 구매가 가능했던 기본 최소 수량을 1로 설정해줍니다)
|
update yc4_item set it_min_order=1 where it_explan_html = 1
|
3. 어드민 아이템 수정 페이지 adm/shop_admin/itemform.php 수정
|
<td>재고사용</td>
<td colspan=3> <input type=checkbox name=it_jaego value='1' <?=($it[it_jaego] ? "checked" : "")?>> 재고사용 </td> |
를
<td>재고사용 및 <br>최소구매수량관리</td> <td colspan=3> <table width=100% cellpadding=0 cellspacing=0 border=0>
<tr> <td width=150><input type=checkbox name=it_jaego value='1' <?=($it[it_jaego] ? "checked" : "")?>> 재고사용 </td> <td align=left>최소구매수량 <input type=text name=it_min_order size=3 value='<?=$it[it_min_order]?>' style='text-align:right; background-color:#FEDDDD;'>EA</td> </tr> </table> </td> |
으로 바꾸고,
같은 페이지안에
|
function fitemformcheck(f) 에서
{ >> 이 부분을 아래 소스로 변경
}
|
|
if ((f.it_min_order.value == "") || (f.it_min_order.value== 0) || (f.it_min_order.value=='null'))
{ alert('상품 최소 구매수량을 입력하십시오.'); var select_num = confirm('상품 최소 구매수량을 1로 하시겠습니까?'); if(select_num) { f.it_min_order.value='1'; alert('상품 최소 구매수량이 1로 설정되었습니다.'); return true; }else{ var select_num2=prompt('원하시는 최소 구매 수량 단위를 입력하세요','10'); f.it_min_order.value=select_num2; alert('상품 최소 구매수량이 '+select_num2+'로 설정되었습니다.'); f.it_min_order.focus(); return false; //익스플로러 버젼 6를 사용하시면 이 라인을 삭제하셔도 됩니다 } } |
4. 어드민 아이템 업데이트 수정 adm/shop_admin/itemformupdate.php 에서
|
$sql_common = " ca_id = '$ca_id', ......
맨 마지막줄에
it_jaego = '$it_jaego'
"; |
|
it_jaego = '$it_jaego', it_min_order = '$it_min_order' "; |
추가
5. 이번에는 고객이 보게되는 아이템 페이지에서 최소 구매수량을 변경 /shop/item.php에서
|
<td valign=middle> 수 량</td>
<td align=center></td> <td> <input type=text name=ct_qty value='1' size=4 maxlength=4 class=ed autocomplete='off' style='text-align:right;' onkeyup='amount_change()'> |
부분의 value값이 들어가있는 줄을 이렇게 바꿔주세요
|
<input type=text name=ct_qty value='<?=$it[it_min_order]?>' size=4 maxlength=4 class=ed autocomplete='off' style='text-align:right;' onkeyup='amount_change()'>
|
자 거의 다 왔습니다 !
방금 바꾸신
|
바로 아래아래 줄에 <map>시작부터 </map>까지
|
|
<map name="qty_control_map">
<area shape="rect" coords="0, 0, 10, 9" href="javascript:qty_add(+1,<?=$it[it_min_order]?>);"> <area shape="rect" coords="0, 10, 10, 19" href="javascript:qty_add(-1,<?=$it[it_min_order]?>);"> </map> |
이렇게 바꿔주세요
6.그 다음 수량을 조절해주는 자바스크립트 부분을 바꿔주세요
메모장이나 에디트플러스에서 컨트롤+f눌러서 item.php에 function qty_add 를 찾으신 다음
|
해당되는 함수를 아래처럼 바꿔주세요
|
|
function qty_add(num,min)
{ var f = document.fitem; var qty = parseInt(f.ct_qty.value); if (num < 0 && qty <= min) { alert("본 상품의 구매수량은 "+min+"세트 이상부터 가능합니다"); qty = min; } else if (num > 0 && qty >= 9999) { alert("수량은 9999 이하만 가능합니다."); qty = 9999; } else { qty = qty + num; } f.ct_qty.value = qty;
amount_change();
} |
그러면, 아래와 같이 최소 구매수량 미만으로 수량 설정시. 에러메시지를 출력하면서
최소구매수량 단위 밑으로 떨어지지 않습니다.
구매절차는, 일만 구매절차와 동일하며, 단순한 구매수량만 묶어주는 기능을 하게 됩니다!
게시글 목록
| 번호 | 제목 |
|---|---|
| 1440 | |
| 1434 | |
| 1433 | |
| 1428 | |
| 1421 | |
| 1397 | |
| 1396 | |
| 1388 | |
| 1379 | |
| 1378 | |
| 1377 | |
| 1367 | |
| 1365 | |
| 1362 | |
| 1348 | |
| 1343 | |
| 1335 | |
| 1318 | |
| 1311 | |
| 1310 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기