2026, 새로운 도약을 시작합니다.

레벨별 가격 다르게 설정하기(사업자 판매금액)_25.01.05 수정

· 7년 전 · 5882 · 4

다른분들의 소스를 사용해보았는데 장바구니로 가는부분에 문제가 있어서 제가 사용한 방법으로 올려봅니다.
-> 일반회원(레벨2)과 레벨3회원(사업자) 가격을 다르게 지정해야하는 프로젝트입니다.
-> 영카트 여분필드 it_1번을 사용하였습니다.(알맞게 사용하세요.)

============================================

1. /adm/shop_admin/itemform.php 의 '판매가격' 밑에 다음과 같이 추가(알맞게 수정바람)
 <tr>
            <th scope="row"><label for="it_1">사업자 판매가격</label></th>
            <td colspan="2">
                <input type="text" name="it_1" value="<?php echo $it['it_1']; ?>" id="it_1" class="frm_input" size="8"> 원
            </td>
        </tr>


=============================================

2. /lib/shop.lib.php

function get_price($it)
{
global $member;

if ($it['it_tel_inq']) return '전화문의';

$price = $it['it_price'];

if ($member['mb_level'] == 3 && $it['it_1'] > 0) {
$price = $it['it_1'];
}

return (int)$price;
}

-> 레벨3에만 적용하기위하여..
-> 여기까지하면 리스트에 출력은 잘된다. 하지만 장바구니 및 바로구매시 원래가격이 나옴..

=============================================

3. /shop/cartupdate.php

322번재줄쯤.. insert 데이터값이 들어가는 $sql 변수 바로위에 위에 구문 작성

if ($member['mb_level'] == 3 && $it['it_1'] > 0) {
$it['it_price'] = $it['it_1'];
}


(밑에는 원래 있던놈..)
$sql .= $comma."( '$tmp_cart_id', '{$member['mb_id']}', '{$it['it_id']}', '".addslashes($it['it_name'])."', '{$it['it_sc_type']}', '{$it['it_sc_method']}', '{$it['it_sc_price']}', '{$it['it_sc_minimum']}', '{$it['it_sc_qty']}', '쇼핑', '{$it['it_price']}', '$point', '0', '0', '$io_value', '$ct_qty', '{$it['it_notax']}', '$io_id', '$io_type', '$io_price', '".G5_TIME_YMDHIS."', '$REMOTE_ADDR', '$ct_send_cost', '$sw_direct', '$ct_select', '$ct_select_time' )";
$comma = ' , ';
$ct_count++;

=============================================
(8월 21일 추가내용)
- 누락된 부분을 착한용이님께서 알려주셔서 추가합니다.


/adm/shop_admin/itemform.php 의 하단부분에 여분필드를 제거 혹은 it_1을 사용하지 않도록 처리하셔야 됩니다.


=============================================
2025.01.05

- 한동안 적용해볼 일이 없어서 안하다가 오랫만에 사업자 판매자금액 개발문의가 들어와서 적용했으나 오류 발생 > 작성 후 패치에서 함수가 추가된것 같아서 수정

(뭔가 나같이 무식하게 개발하는 사람때문에 예외상황 추가를 한듯..)

#적용위치 /lib/shop.lib.php

1. before_check_cart_price 함수 찾은 변경

(변경전) global $g5, $default, $config;

(변경후) global $g5, $default, $config, $member;

2. 같은 함수 내 $it = get_shop_item($it_id, $is_item_cache); 바로 밑에 추가

(변경전) 

$it = get_shop_item($it_id, $is_item_cache);

(변경후)

$it = get_shop_item($it_id, $is_item_cache);

if ($member['mb_level'] == 3 && $it['it_1'] > 0) {
      $it['it_price'] = $it['it_1'];
}

|

댓글 4개

좋은정보 감사합니다
좋은팁 감사합니다.
그런데 저는 상품수정하려고 하는데 업데이트가 되지않아서 문제를 찾아보니 상품상세페이지 하단의 여분필드에 값으로 업데이트를 해버려서 수정이 되지 않았습니다.

혹시라도 저처럼 안되시는 분들은
itemform.php 파일 하단 '여분필드'를 출력해주시는부분에 (1640번째줄부분)

<?php for ($i=1; $i<=10; $i++) { ?>

$i 값을 하나 늘려서($i=2) 사용하시면 됩니다.
앗..제가 그부분은 설명안해놨네요! 수정하겠습니다.
피드백감사드려요^^
최신버전에도 잘되네요

댓글 작성

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

로그인하기

영카트5 팁자료실

번호 제목 글쓴이 날짜 조회
441 3주 전 조회 240
440 1개월 전 조회 189
439 1개월 전 조회 292
438 1개월 전 조회 459
437 2개월 전 조회 658
436 2개월 전 조회 270
435 2개월 전 조회 382
434 3개월 전 조회 536
433 3개월 전 조회 368
432 3개월 전 조회 338
431 3개월 전 조회 443
430 3개월 전 조회 407
429 3개월 전 조회 360
428 3개월 전 조회 368
427 4개월 전 조회 510
426 4개월 전 조회 536
425 4개월 전 조회 353
424 4개월 전 조회 629
423 4개월 전 조회 600
422 4개월 전 조회 520
421 5개월 전 조회 572
420 5개월 전 조회 489
419 5개월 전 조회 571
418 5개월 전 조회 514
417 5개월 전 조회 623
416 5개월 전 조회 429
415 6개월 전 조회 564
414 6개월 전 조회 567
413 6개월 전 조회 662
412 7개월 전 조회 552
🐛 버그신고