테스트 사이트 - 개발 중인 베타 버전입니다

옵션 상품 가격 할인 오류 문의

몰라몰라요 3년 전 조회 3,478

옵션상품 구매시 우수회원에게 할인을 해주고 싶어서 아래와 같이 적용시켰습니다.

적용후 아무런 변화가 없는데요. 고수님들 도와주세요 ㅠㅠ;.

 

/js/shop.override.js

-----------------------------------------------------

                    $el_prc.each(function(index) {
                        price = parseInt($(this).val());
                        qty = parseInt($el_qty.eq(index).val());
                        type = $el_type.eq(index).val();

                        if(type == "0") { // 선택옵션
                            if ($member[mb_level] >= 5 ) {
                            total += (( it_price + price ) * qty) - 2000;
                            } else {

                            total += ( it_price + price ) * qty;
                            }
                        } else { // 추가옵션
                            if ($member[mb_level] >= 5 ) {
                            total = ( price * qty ) - 2000 ;
                            } else {

                            total = price * qty;

                            }
                    });

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

n
3년 전

추가 피해자 방지 https://sir.kr/conflictconsultation/245" rel="nofollow noreferrer noopener" target="_blank">https://sir.kr/conflictconsultation/245

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

복스리
3년 전

/js/shop.override.js 에 있는 스크립트를 카피에서 페이지로 가지고와서 아래처럼 사용해보시면 좋을꺼 같네요 즉 mb_level을 잘못코딩하신 부분이니 그리고 el_prc값을 el_prc2 로 변경해서 

el_prc2 값으로 대처해서 사용해보시면 될꺼 같네요

 

[CODE]

                    $el_prc2.each(function(index) {
                        price = parseInt($(this).val());
                        qty = parseInt($el_qty.eq(index).val());
                        type = $el_type.eq(index).val();

                        mb_level = <?=$member[mb_level]?>;

 

                        if(type == "0") { // 선택옵션
                            if (mb_level >= 5 ) {
                            total += (( it_price + price ) * qty) - 2000;
                            } else {
                            total += ( it_price + price ) * qty;
                            }
                        } else { // 추가옵션
                            if (mb_level >= 5 ) {
                            total = ( price * qty ) - 2000 ;
                            } else {
                            total = price * qty;

                            }
                    });

[/CODE]

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

포이치
3년 전

어찌해서 가격은 변경된 가격으로 보이게 되겠지만

나머지 상품가격 비교 및 검증하는 부분을 전부 수정하지 않으면

결제금액 불일치로 주문이 되지 않을거에요.

 

유동성있는 가격으로 주문을 시키려면

생각보다 수정해야될 부분이 많습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

유찬아빠

if ($member[mb_level] >= 5 ) { php 구문을 자바문에 넣으시면 않됩니다.

$member[mb_level] 는 php 배열이므로 자바 함수 호출시에 별도로 선언되어야 합니다.

해당 소스는 else 이하 구문만 실행하게 되네요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

몰라몰라요
3년 전
아! 자바에 php 명령어로 명령을 내려서 그런거네요.
그럼 회원 정보 테이블의 $member[mb_level]를 자바에서 호출하려면 어떻게 해야하나요?

댓글을 작성하려면 로그인이 필요합니다.

PHP랑 Javascript를 혼용하셨네요.

</p>

<p>                    $el_prc.each(function(index) {

                        price = parseInt($(this).val());

                        qty = parseInt($el_qty.eq(index).val());

                        type = $el_type.eq(index).val();</p>

<p>                        if(type == "0") { // 선택옵션

                            <? if ($member[mb_level] >= 5 ) { ?>

                            total += (( it_price + price ) * qty) - 2000;

                            <? } else { ?>

                            total += ( it_price + price ) * qty;

                            <? } ?>

                        } else { // 추가옵션

                            <? if ($member[mb_level] >= 5 ) { ?>

                            total = ( price * qty ) - 2000 ;

                            <? } else { ?>

                            total = price * qty;</p>

<p>                            <? } ?>

                    });</p>

<p>

이렇게 해보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인