엑셀 내보내기 문의

엑셀 내보내기 문의

QA

엑셀 내보내기 문의

본문

안녕하세요.

그누보드4 기반 영카트 사용중입니다.

엑셀 내보내기에서 기존 영카트에서 출력되던 주문 상품 금액, 상품메모가 출력되지 않는데요...

출력되도록 변경하려면 어떻게 해야 되는지요?

바쁘시겠지만 검토 부탁드립니다.

이 질문에 댓글 쓰기 :

답변 2

그누커머스에 대한 질문 인가요?

 

아니면 영카트에 대한 질문인가요?

 

질문 내용을 보니 그누커머스에 대한 질문 같기도 하고...

 

안녕하세요.

그누보드4 기반 영카트 사용중입니다.   ​<<< 이렇게 쓰신걸 보니 영카트에 대한 질문글 같기도 하고...

 

좀 더 명확하게 질문을 올려 주셨으면 합니다.

 

 

그누커머스 1.2.8 버젼에 엑셀 내보내기에서 항목을 추가할수 있도록 코드를 추가했습니다.

 

그러니 1.2.8 버젼으로 업데이트 하시고, 아래 코드를 참고 해서 항목을 추가해 보세요.

( 주문합계금액과 상점메모란을 추가했습니다. )

 

아래 코드는 사용하는테마 functions.php 나 또는 다른 적당한 곳에 넣으시면 됩니다.

 


add_filter('gnucommerce_get_order_query_fields', 'custom_gnucommerce_add_order_fields');
 
function custom_gnucommerce_add_order_fields($fields){
 
    $fields[] = 'od_receipt_price';     //결제한금액
    $fields[] = 'od_cart_price';     //총 상품 금액
    $fields[] = 'od_send_cost';     //배송비
    $fields[] = 'od_send_cost2';     //추가 배송비
    $fields[] = 'od_shop_memo';         //상점메모
 
    return $fields;
}
 
add_action('gnucommerce_export_orderdata', 'custom_gnucommerce_export_xml', 10, 3);
 
function custom_gnucommerce_export_xml($params, $csv, $gc_order){
    global $wpdb;
 
    if( !class_exists('gnucommerce') ){  //그누커머스 플러그인이 있으면
        return;
    }
 
    if ($csv == 'xls'){     //엑셀인경우
        
        extract($params);
 
        if( !gc_get_upload_path() ) {
            gc_alert(__('데이터 쓰기 권한이 없습니다.', GC_NAME));
        }
        $fr_date = gc_date_conv($fr_date);
        $to_date = gc_date_conv($to_date);
 
        $get_order = $gc_order->get_order_query($fr_date, $to_date, $fr_od_id, $to_od_id, $ct_status, $case);
        extract($get_order);
 
        if (!$cnt)
            gc_alert(__('출력할 내역이 없습니다.', GC_NAME));
 
        /*================================================================================
        php_writeexcel http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/
        =================================================================================*/
 
        include_once(GC_DIR_PATH.'lib/Excel/php_writeexcel/class.writeexcel_workbook.inc.php');
        include_once(GC_DIR_PATH.'lib/Excel/php_writeexcel/class.writeexcel_worksheet.inc.php');
 
        $fname = tempnam(gc_get_upload_path().'/tmp/', "tmp-orderlist.xls");
 
        $workbook = new writeexcel_workbook($fname);
        $worksheet = $workbook->addworksheet();
 
        // Put Excel data
        $data = array('우편번호', '주소', '이름', '전화1', '전화2', '상품명', '수량', '선택사항', '배송비', '상품코드', '주문번호', '운송장번호', '전하실말씀', '주문합계', '상점메모');
        $data = array_map('gc_iconv_euckr', $data);
 
        $col = 0;
        foreach($data as $cell) {
            $worksheet->write(0, $col++, $cell);
        }
 
        $save_it_id = '';
        $i = 1;
        foreach($results as $row)
        {
            if( empty($row) ) continue;
 
            if($save_it_id != $row['it_id']) {
                // 합계금액 계산
 
                $sql = $wpdb->prepare(" select SUM(IF(io_type = 1, (io_price * ct_qty), ((ct_price + io_price) * ct_qty))) as price,
                                SUM(ct_qty) as qty
                            from {$gc['shop_cart_table']}
                            where it_id = %.0f
                              and od_id = %.0f ", $row['it_id'], $row['od_id']);
                
                $sum = $wpdb->get_row($sql, ARRAY_A);
 
                switch($row['ct_send_cost'])
                {
                    case 1:
                        $ct_send_cost = '착불';
                        break;
                    case 2:
                        $ct_send_cost = '무료';
                        break;
                    default:
                        $ct_send_cost = '선불';
                        break;
                }
 
                // 조건부무료
                if($row['it_sc_type'] == 2) {
                    $sendcost = gc_get_item_sendcost($row['it_id'], $sum['price'], $sum['qty'], $row['od_id']);
 
                    if($sendcost == 0)
                        $ct_send_cost = '무료';
                }
 
                $save_it_id = $row['it_id'];
 
                $ct_send_cost = gc_iconv_euckr($ct_send_cost);
            }
 
            $row = array_map('gc_iconv_euckr', $row);
            
            $worksheet->write($i, 0, ' '.$row['od_b_zip']);
            $worksheet->write($i, 1, gc_print_address($row['od_b_addr1'], $row['od_b_addr2'], $row['od_b_addr3'], $row['od_b_addr_jibeon']));
            $worksheet->write($i, 2, $row['od_b_name']);
            $worksheet->write($i, 3, ' '.$row['od_b_tel']);
            $worksheet->write($i, 4, ' '.$row['od_b_hp']);
            $worksheet->write($i, 5, $row['it_name']);
            $worksheet->write($i, 6, $row['ct_qty']);
            $worksheet->write($i, 7, $row['ct_option']);
            $worksheet->write($i, 8, $ct_send_cost);
            $worksheet->write($i, 9, ' '.$row['it_id']);
            $worksheet->write($i, 10, ' '.$row['od_id']);
            $worksheet->write($i, 11, $row['od_invoice']);
            $worksheet->write($i, 12, $row['od_memo']);
            $worksheet->write($i, 13, $row['od_cart_price'] + $row['od_send_cost'] + $row['od_send_cost2']);        //주문합계(선불배송비포함)
            $worksheet->write($i, 14, $row['od_shop_memo']);            //상점메모
 
            $i++;
        }   //end foreach
 
        $workbook->close();
 
        header("Content-Type: application/x-msexcel; name=\"orderlist-".date("ymd", GC_SERVER_TIME).".xls\"");
        header("Content-Disposition: inline; filename=\"orderlist-".date("ymd", GC_SERVER_TIME).".xls\"");
        $fh=fopen($fname, "rb");
        fpassthru($fh);
        @unlink($fname);
 
        exit;
    }
 
}
답변을 작성하시기 전에 로그인 해주세요.
전체 1,178
QA 내용 검색

회원로그인

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