【CS-Cart】納品書(PDF)のカスタマイズ
こんにちわ。kyamashitaです。
今回はCS-Cartで納品書(PDF)をカスタマイズについて紹介します。
カスタマイズ前
初回はこのようなイメージになっています。
今回は"コード"列を消して"商品/オプション"列に表示させてみます。
修正対象のプログラム
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);
カスタマイズ後
感想
最初は出力処理探すのに時間かかってしまいましたが、
上記プログラムを参考にすれば別のPDF出力もアドオンで作れそうですね。
注意
今回は直接アドオン(localization_jp)内のプログラムを修正しているため、
アドオンの更新時には競合してしまいます。。ので影響ない修正方法は探し中です。