【CS-Cart】納品書(PDF)のカスタマイズ

【CS-Cart】納品書(PDF)のカスタマイズ

こんにちわ。kyamashitaです。

今回はCS-Cartで納品書(PDF)をカスタマイズについて紹介します。

カスタマイズ前

kyamahsita_201911_01.png

初回はこのようなイメージになっています。

今回は"コード"列を消して"商品/オプション"列に表示させてみます。

修正対象のプログラム

CS-Cart日本語版の納品所(PDF)出力はアドオンで実装されています。

日本語版アドオン(localization_jp)

対象プログラムはこちらです。tcpdfが使われているようです。

app/addons/localization_jp/func.php

修正箇所の抜粋はこちら。

@@ -2598,8 +2598,7 @@ function fn_lcjp_print_pdf_invoice($order_ids)
             }
             if( $print_line < $page_max_line ){
                 for($lp=$print_line; $lp<$page_max_line; $lp++) {
-                    $pdf->MultiCell(115, 16.5840833334, '', 1, 'L', 0, 0);
-                    $pdf->MultiCell(25, 16.5840833334, '', 1, 'L', 0, 0);
+                    $pdf->MultiCell(140, 16.5840833334, '', 1, 'L', 0, 0);
                     $pdf->MultiCell(15, 16.5840833334, '', 1, 'L', 0, 0);
                     $pdf->MultiCell(20, 16.5840833334, '', 1, 'L', 0, 0);
                     $pdf->MultiCell(25, 16.5840833334, '', 1, 'L', 0, 1);

@@ -2809,6 +2808,8 @@ function fn_lcjp_print_order_line(&$pdf, $product, $print_base_price, $print_sub
 {
     // 商品名(カスタム商品の子であれば商品名、オプション名の先頭に半角スペース2個追加)
     $product_data = ($custome_product == 2 ? '  ' : '') . fn_lcjp_adjust_strings($pdf, $product['product']);
+    // 商品型番
+    $product_data .= " 【". $product['product_code'] . "】";
     // 商品オプション
     $add_line = 0;
     if( $custome_product == 1 ){

@@ -2846,9 +2847,7 @@ function fn_lcjp_print_order_line(&$pdf, $product, $print_base_price, $print_sub
     if( $custome_product == 1 ){
         $product_data .= "\n" . __('jp_pdfinv_customise_product');
     }
-    $pdf->MultiCell(115, 16.5840833334, $product_data, 1, 'L', 0, 0);
-    // 商品型番
-    $pdf->MultiCell(25, 16.5840833334, $product['product_code'], 1, 'L', 0, 0);
+    $pdf->MultiCell(140, 16.5840833334, $product_data, 1, 'L', 0, 0);
     // 数量
     $pdf->MultiCell(15, 16.5840833334, number_format($product['amount']), 1, 'R', 0, 0);
     // 単価

@@ -3245,8 +3244,7 @@ function fn_lcjp_print_pdf_header(&$pdf, $out_shop_data, $filename, $barcode_set
     // 明細行見出し
     $pdf->SetFillColor(221, 254, 255);
     $pdf->SetLineStyle(array('width' => $base_line_width, 'cap' => 'square', 'color' => array(11, 249, 255)));
-    $pdf->MultiCell(115, 0, __('products') . ' / ' . __('options'), 1, 'C', 1, 0);
-    $pdf->MultiCell(25, 0, __('sku'), 1, 'C', 1, 0);
+    $pdf->MultiCell(140, 0, __('products') . ' / ' . __('options'), 1, 'C', 1, 0);
     $pdf->MultiCell(15, 0, __('quantity'), 1, 'C', 1, 0);
     $pdf->MultiCell(20, 0, __('unit_price'), 1, 'C', 1, 0);
     $pdf->MultiCell(25, 0, __('subtotal'), 1, 'C', 1, 1);

カスタマイズ後

kyamahsita_201911_02.png

感想

最初は出力処理探すのに時間かかってしまいましたが、

上記プログラムを参考にすれば別のPDF出力もアドオンで作れそうですね。

注意

今回は直接アドオン(localization_jp)内のプログラムを修正しているため、

アドオンの更新時には競合してしまいます。。ので影響ない修正方法は探し中です。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ