레벨별 가격 다르게 설정하기(사업자 판매금액)_25.01.05 수정
다른분들의 소스를 사용해보았는데 장바구니로 가는부분에 문제가 있어서 제가 사용한 방법으로 올려봅니다.
-> 일반회원(레벨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 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 311 |
투명한열정
|
5년 전 | 2846 | |
| 310 |
|
5년 전 | 6387 | |
| 309 |
|
5년 전 | 3348 | |
| 308 |
|
5년 전 | 3780 | |
| 307 |
|
5년 전 | 3202 | |
| 306 |
|
5년 전 | 2878 | |
| 305 | 5년 전 | 4505 | ||
| 304 | 5년 전 | 5986 | ||
| 303 | 5년 전 | 5185 | ||
| 302 | 5년 전 | 2309 | ||
| 301 | 5년 전 | 3600 | ||
| 300 | 5년 전 | 2491 | ||
| 299 | 5년 전 | 2148 | ||
| 298 |
|
5년 전 | 1974 | |
| 297 |
sozet
|
5년 전 | 2276 | |
| 296 |
sozet
|
5년 전 | 2437 | |
| 295 |
sozet
|
5년 전 | 4634 | |
| 294 |
sozet
|
5년 전 | 2650 | |
| 293 |
|
5년 전 | 2822 | |
| 292 | 5년 전 | 2028 | ||
| 291 | 5년 전 | 6670 | ||
| 290 | 5년 전 | 2637 | ||
| 289 |
퍼스트가든
|
5년 전 | 2667 | |
| 288 | 5년 전 | 3002 | ||
| 287 | 5년 전 | 2670 | ||
| 286 |
사노라가노라
|
5년 전 | 2698 | |
| 285 |
사노라가노라
|
5년 전 | 2072 | |
| 284 | 6년 전 | 4791 | ||
| 283 |
v푸른하늘v
|
6년 전 | 3868 | |
| 282 |
|
6년 전 | 4162 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기