테스트 사이트 - 개발 중인 베타 버전입니다

엑셀 내보내기 문의

제쓰로 9년 전 조회 2,564

안녕하세요.

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

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

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

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

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

답변 2개

thisgun
9년 전

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

 

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

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

 

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

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

제쓰로
9년 전
감사합니다. 시도해 보겠습니다.^^

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

thisgun
9년 전

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

 

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

 

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

 

안녕하세요.

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

 

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

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

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

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

로그인