Skip to content

CHICPRO

  • Life Log
  • Cycling Log
  • Photo Log
    • Portrait
    • Landscape
    • Flower
    • Etc
  • Coding Log
  • Information

쇼핑몰에서 옵션 가격을 반영해서 가격표시?

2012-01-13 by 편리

제목이 뭐 저따위로 밖에 생각이 나지 않는지.. 머리가 점점 썩어가나 보다. 이래서 무슨 코딩을 한다고.. ㅠ_ㅠ

이런 식으로 페이지에 구성을 했을 경우 옵션을 변경하게 되면 판매가격 부분이 그에 맞게 변하게 하고 싶어서..
점심 먹고 와서 삽질 중인데.. 이제야 뭔가 원하는 결과물이 나오게 되었다. 좀 더 기능면에서 보완해야 할 점이
있는데 이건 또 언제 해결할지.. 실력이 바닥을 기고 있어서 나도 정확히는 모르겠다는.. ^^;

jQuery each()를 이용해서 select 의 선택 값을 구해서 배열에 저장하고 loop가 끝나면 원래 상품과 다시 더하는
방법이다. 더 좋은 방법을 생각해보려고 했는데 도무지 생각지 나지 않더라는.. 이게 지금 내가 할 수 있는 최선!!

<script type=”text/javascript”>
var sell_price = parseInt(“<?=$it[it_amount]?>”);
var sell_price_sum = 0;
var opt_price = 0;

$(function() {
    $(‘form[name=fitem] select’).change(function() {
        PriceCalculate();
    });

    $(‘input[name=ct_qty]’).keyup(function() {
        PriceCalculate();
    });
});

function PriceCalculate()
{
    var optPrice = new Array();
    var ct_qty = $(‘input[name=ct_qty]’).val();
    if(ct_qty.search(/[^0-9]/) != -1) {
        alert(“구매수량은 1이상의 숫자로 입력해 주십시오.”);
        $(‘input[name=ct_qty]’).val(1);
        return false;
    }

    $(‘form[name=fitem] select’).each(function() {
        var opt_val = $(this).val();
        var mark_pos = opt_val.search(/([+-]{1}[0-9])/g);
        if(mark_pos != -1) {
            opt_price = parseInt(opt_val.substring(mark_pos));
        } else {
            opt_price = 0;
        }

        optPrice.push(opt_price);
    });

    sell_price_sum = sell_price;
    for(i = 0; i < optPrice.length; i++) {
        sell_price_sum += optPrice[i];
    }

    if(ct_qty > 0) {
        $(‘#SellPrice’).text(number_formats(sell_price_sum * ct_qty) + ” 원 (VAT포함)”);
    }
}

function number_formats(input){
    var input = String(input);
    var reg = /(-?d+)(d{3})($|.d+)/;
    if(reg.test(input)){
        return input.replace(reg, function(str, p1,p2,p3){
                return number_format(p1) + “,” + p2 + “” + p3;
            }
        );
    } else {
        return input;
    }
}
</script>

이제 남은 것은 품절이나 가격이 입력되어 있지 않을 경우.. 지금 작업 중인 쇼핑몰에서는 이것도 필요.. 이 때는
예외 처리가 되도록 하는 정도가 아닐까 싶다. 이건 좀 쉽게 해결을 해야할텐데.. 실력 미천하니 이것도 쉽지 않을 듯!

덧, 코드에 보면 옵션 가격 계산하는 부분에 정규식이 쓰였는데.. 이건 옵션 값이 선택옵션+가격 그러니까 RED+2000
이런 식으로 되어 있기 때문이다. 근데 저기에 쓰인 정규식은 제대로 한 것인지는 전혀 모르겠다. 정규식 어려워!!!

Post navigation

Previous Post:

갤럭시 넥서스 배터리 고민

Next Post:

팟플레이어 64비트, 무료 압축프로그램 반디집

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Recent Posts

  • php 배열 연산에서 + 와 array_merge 의 차이
  • pcntl_fork 를 이용한 다중 프로세스 실행
  • 아이폰 단축어를 이용하여 주중 공휴일엔 알람 울리지 않게 하기
  • 구글 캘린더 전체일정 재동기화
  • OpenLiteSpeed 웹서버에 HTTP 인증 적용
  • OpenLiteSpeed 웹어드민 도메인 연결
  • WireGuard를 이용한 VPN 환경 구축
  • Ubuntu 22.04 서버에 OpenLiteSpeed 웹서버 세팅
  • 맥 vim 세팅
  • 우분투 시스템 터미널쉘 zsh 로 변경

Recent Comments

  • 편리 on 업무관리용 그누보드 게시판 스킨
  • 임종섭 on 업무관리용 그누보드 게시판 스킨
  • 캐논 5D 펌웨어 | Dslr 펌웨어 업그레이드 방법 82 개의 베스트 답변 on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • Top 5 캐논 5D 펌웨어 Top 89 Best Answers on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • 편리 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 임팀장 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 편리 on Notepad++ NppFTP 플러그인 수동 설치
  • paul-j on Notepad++ NppFTP 플러그인 수동 설치
  • YS on Windows 10 iCloud 사진 저장 폴더 변경
  • 편리 on Docker를 이용한 Centos7 + httpd + php 5.4 개발환경 구축

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
© 2025 CHICPRO | Built using WordPress and SuperbThemes