크롬80버전 업데이트 영카트5 주요패치 확인! KCP/이니시스/LGU+ 결제 이슈 대응 패치입니다.

[많이 질문하지만, 해결안되는 문제] 옵션가 문제

[많이 질문하지만, 해결안되는 문제] 옵션가 문제

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

신고된 글[많이 질문하지만, 해결안되는 문제] 옵션가 문제

본문

신고가 접수되어 자동으로 블라인드 된 글입니다.
원글을 보시려면 를 클릭하세요.

판매가가 1000원이구 옵션선택 상품을 500원,800원,900으로 설정해놓은 경우

 

(상품명) +500

(상품명) +800

(상품명) +900 

 

으로 나오자나요. 이거 상식적으로

 

(상품명) 1500원

(상품명)  1800원

(상품명)  1900원

 

요렇게 나와야 되는거 아닌가요? ^^;;

 

업그레이드가 되어도, 안바뀌었네요.

 

제가 근 2년간 검색을 해봐도, 답이 없네요.

 

답은 무조건 " 계발자에게 의뢰하라" 

 

.

.

 

돈주고 하라는 것인데.....

 

소스를 알려주시고, 할 수있는 사람은 따라 해봐라 하면 안되는건지요.

 

영카트가 많은 이들에게 사랑 받는것은 서로 정보를 공유해가며, 영카트를 스스로 완성해갈수 있는 이런 장이 있어서가 아닐까요...(아닌가?;;)

 

거두절미하고, 이곳에 계신 많은 고수 분들이 계실텐데, 수많은 사람들이 오래전부터 묻고있는 

 

꼭 필요한 "옵션가 제대로 더해서 제품판매가 제대로 표현" 이 부분을 어느 한분 올려주시는 분이 없을까요. 왜왜왜??

 

제대로 따라하기를 안올려 주실까요? 왜왜왜......올리면, 안되는 굉장한 기법, 기술 인가요?, 꼭 프로페셔널에게 맡겨야한는 ....

 

 

2년전과 똑같은 질문으로 답을 찾다가 , 그동안 저말고도 무수히 많은 분들이 제가 예전 질문에 답을 못찾았던 시점부터 저와같은 질문을 지금도 하는 분들이 있다는 것을 보고, "개발자에게 맡기라는" 대답 보단 차라리  "나는 잘모르겠는데 열심히 해

 

봐" 라고 말하는 답이 본 게시판 제목에 취지와 맡지 않을 까합니다.  

 

분명 영카트 개발자가 그 중요한 옵션에 디테일을 의도적으로 개발에 빈틈을 남기고, 개발자에게 프로그램의뢰를 요청하도록 영카트를 만들지는 않았으리라 생각하려 노력해볼랍니다. 

 

아 그리고 같은 질문하신 몇몇 분들은 댓글 쭉 따라 읽다보면 해결 방법을 찾으신 분도 있으신것 같은데...

공유좀 부탁드려요....힘들게 알아 내신것 쉽게 알려주긴 아쉽겠지만.....많은 이들에게 넓은 마음 으로 던져주세요.

정리가 귀찮으시면 제게 공일공 7154 7638 연락 주시면 잘 정리해서 제가 출처 남기고 오픈할게요......

 

모두모두 새해 잘 보내세요...

 

 

 

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기 이 글을 내 구글플러스 계정으로 보내기

이 질문에 댓글 쓰기 :

답변 12

BiHon님의 답변

처리 방법은 다양한데, /lib/shop.lib.php 파일 수정으로 해봤습니다.

영카트 5.4.1.4 버전 기준으로, 949 라인부터의 소스 내용입니다.

★ 표시한 주석 라인 보면 됩니다.


선택된 옵션이 출력되는 부분은 생략,

옵션명과 가격 길이 구해서 조절하면 보기 좋게 출력되겠으나 생략,

오직 옵션 셀렉트박스에 표시되는 가격만 기본가+옵션가 처리입니다.

라이브러리 파일 수정이라 쇼핑몰 전체가 같은 방식으로 출력되니 주의.

기타 생략합니다.

 

- 미리보기 : 2020-01-20 오후 ~ 2020-01-26 오전까지 유지 / 피드백 없어서 삭제

 

// 상품 선택옵션
function get_item_options($it_id, $subject, $is_div='', $is_first_option_title='')
{
    global $g5, $it; // ★ $it 추가. 실행 시점에 상품 정보가 할당되어 있는 변수
    if(!$it_id || !$subject)
        return '';
    $sql = " select * from {$g5['g5_shop_item_option_table']} where io_type = '0' and it_id = '$it_id' and io_use = '1' order by io_no asc ";
    $result = sql_query($sql);
    if(!sql_num_rows($result))
        return '';
    $str = '';
    $subj = explode(',', $subject);
    $subj_count = count($subj);
    if($subj_count > 1) {
        $options = array();
        // 옵션항목 배열에 저장
        for($i=0; $row=sql_fetch_array($result); $i++) {
            $opt_id = explode(chr(30), $row['io_id']);
            for($k=0; $k<$subj_count; $k++) {
                if(!is_array($options[$k]))
                    $options[$k] = array();
                if($opt_id[$k] && !in_array($opt_id[$k], $options[$k]))
                    $options[$k][] = $opt_id[$k];
            }
        }
        // 옵션선택목록 만들기
        for($i=0; $i<$subj_count; $i++) {
            $opt = $options[$i];
            $opt_count = count($opt);
            $disabled = '';
            if($opt_count) {
                $seq = $i + 1;
                if($i > 0)
                    $disabled = ' disabled="disabled"';
                if($is_div === 'div') {
                    $str .= '<div class="get_item_options">'.PHP_EOL;
                    $str .= '<label for="it_option_'.$seq.'" class="label-title">'.$subj[$i].'</label>'.PHP_EOL;
                } else {
                    $str .= '<tr>'.PHP_EOL;
                    $str .= '<th><label for="it_option_'.$seq.'" class="label-title">'.$subj[$i].'</label></th>'.PHP_EOL;
                }
                $select = '<select id="it_option_'.$seq.'" class="it_option"'.$disabled.'>'.PHP_EOL;
                $first_option_title = $is_first_option_title ? $subj[$i] : '선택';
                $select .= '<option value="">'.$first_option_title.'</option>'.PHP_EOL;
                for($k=0; $k<$opt_count; $k++) {
                    $opt_val = $opt[$k];
                    if(strlen($opt_val)) {
                        $select .= '<option value="'.$opt_val.'">'.$opt_val.'</option>'.PHP_EOL;
                    }
                }
                $select .= '</select>'.PHP_EOL;
                if($is_div === 'div') {
                    $str .= '<span>'.$select.'</span>'.PHP_EOL;
                    $str .= '</div>'.PHP_EOL;
                } else {
                    $str .= '<td>'.$select.'</td>'.PHP_EOL;
                    $str .= '</tr>'.PHP_EOL;
                }
            }
        }
    } else {
        if($is_div === 'div') {
            $str .= '<div class="get_item_options">'.PHP_EOL;
            $str .= '<label for="it_option_1">'.$subj[0].'</label>'.PHP_EOL;
        } else {
            $str .= '<tr>'.PHP_EOL;
            $str .= '<th><label for="it_option_1">'.$subj[0].'</label></th>'.PHP_EOL;
        }
        $select = '<select id="it_option_1" class="it_option">'.PHP_EOL;
        $select .= '<option value="">선택</option>'.PHP_EOL;
        for($i=0; $row=sql_fetch_array($result); $i++) {
            /* ★ 주석 처리
            if($row['io_price'] >= 0)
                $price = '  + '.number_format($row['io_price']).'원';
            else
                $price = '   '.number_format($row['io_price']).'원';
            */
            $price = '   '.number_format($it['it_price']+$row['io_price']).'원'; // ★ 추가
            if($row['io_stock_qty'] < 1)
                $soldout = '  [품절]';
            else
                $soldout = '';
            $select .= '<option value="'.$row['io_id'].','.$row['io_price'].','.$row['io_stock_qty'].'">'.$row['io_id'].$price.$soldout.'</option>'.PHP_EOL;
        }
        $select .= '</select>'.PHP_EOL;
        
        if($is_div === 'div') {
            $str .= '<span>'.$select.'</span>'.PHP_EOL;
            $str .= '</div>'.PHP_EOL;
        } else {
            $str .= '<td>'.$select.'</td>'.PHP_EOL;
            $str .= '</tr>'.PHP_EOL;
        }
    }
    return $str;
}
주소복사
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 83,792 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT