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

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

QA

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

본문

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

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

 

(상품명) +500

(상품명) +800

(상품명) +900 

 

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

 

(상품명) 1500원

(상품명)  1800원

(상품명)  1900원

 

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

 

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

 

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

 

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

 

.

.

 

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

 

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

 

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

 

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

 

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

 

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

 

 

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

 

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

 

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

 

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

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

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

 

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

 

 

 

이 질문에 댓글 쓰기 :

답변 13

처리 방법은 다양한데, /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;
}
답변을 작성하시기 전에 로그인 해주세요.
전체 123,127 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT