엑셀 내보내기 문의

엑셀 내보내기 문의

QA

엑셀 내보내기 문의

답변 2

본문

안녕하세요.

그누보드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;
    }
 
}
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 213
© SIRSOFT
현재 페이지 제일 처음으로