엑셀 내보내기 문의

2016-08-03 (수) 02:20:24 2,792

안녕하세요.

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

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

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

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

|

답변 2개 / 댓글 2개

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

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

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

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

Copy
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개

감사합니다. 시도해 보겠습니다.^^

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

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

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

안녕하세요.

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

 

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

답변에 대한 댓글 1개

그누커머스 질문입니다.^^;;
엑셀주문내역 내보내기에서 항목을 추가하는 방법을 알고 싶습니다.^^

답변을 작성하려면 로그인이 필요합니다.