EC-CUBE で納品書の PDF の出し方とテンプレート化して切り替える方法


[初回公開] 2008年05月07日

EC-CUBE には納品書を PDF として発行する機能が標準で備わっており既定のレイアウトのもの 1 つ利用できるようになっているが、納品書 PDF の出し方と、カスタマイズして PDF のレイアウトのテンプレートを切り替えられるようにする方法を紹介する。

EC-CUBE で納品書の PDF の出し方とテンプレート化して切り替える方法

1.EC-CUBE の納品書 PDF とは

EC-CUBE の納品書 PDF とは、インストール直後から標準で EC-CUBE に備わっている機能で商品を受注したデータに対して明細を PDF として発行できる機能である。
商品を発送する際に納品書を同梱したい場合や、発送の準備をする際に送付漏れを無くすチェック用に利用する。



PDF は管理画面より出力することができ、ブラウザで表示されるが手元のパソコンに PDF ファイルとして保存することが可能である。

2.EC-CUBE で納品書 PDF を出す方法

EC-CUBE で納品書 PDF を出す方法は、どのバージョンでも管理画面の「受注管理」から出力することができる。
そのため、受注が確定したデータのみ出力することができ、受注前の見積書が欲しい場合はカスタマイズやプラグインなどで機能を拡張する必要がある。

2-1.バージョン 4 系での PDF の出し方

EC-CUBE のバージョン 4 系での PDF の出し方としては、管理画面の左メニューの「受注管理 -> 受注一覧」を表示する。
受注一覧が表示されれば、各受注データの右側にある納品書 PDF のアイコンをクリックする。

納品書 PDF のアイコンをクリック

次に、納品書に記載する内容を入力するウィンドウが表示されるので必要に応じて変更して画面最下部のボタン「作成」をクリックする。

ボタン「作成」をクリック


ボタン「作成」をクリックすると下図のようにブラウザ上で納品書 PDF が表示される。
表示された PDF はそのまま印刷したり、パソコンにファイルとして保存することができる。

納品書 PDF が表示された様子

2-2.バージョン 1 系での PDF の出し方

EC-CUBE のバージョン 4 系での PDF の出し方としては、管理画面の左メニューの「受注管理 -> 受注一覧」を表示する。
受注一覧が表示されれば、各受注データの右側にあるリンク「帳票」をクリックする。

リンク「帳票」をクリック

次に、納品書に記載する内容を入力するウィンドウが表示されるので必要に応じて変更して画面最下部のボタン「この内容で作成する」をクリックする。

ボタン「この内容で作成する」をクリック

ボタン「この内容で作成する」をクリックすると下図のようにブラウザ上で納品書 PDF が表示される。
表示された PDF はそのまま印刷したり、パソコンにファイルとして保存することができる。

納品書 PDF が表示された様子

3.納品書 PDF を切り替えるカスタマイズ方法

EC-CUBE で利用できる納品書 PDF のレイアウトは 1 つだけだが、次のようにカスタマイズを行うと PDF 出力時にレイアウトを切り替えることが可能になる。



PDF のレイアウトを変えることで記載内容を変えたり、取引相手が法人向けであれば検収書も同時に発行することができる。
今回は EC-CUBE のバージョン 2 系でカスタマイズを行う。

3-1.テンプレート PDF をサーバにアップする

EC-CUBE が PDF を生成する際はサーバにアップロードしている未記入の PDF テンプレートを利用して納品先や購入された商品名をプログラムが記入する仕組みになっている。

そのため、納品書 PDF を切り替えるにあたり、別途テンプレートとなる PDF ファイルをサーバに FTP や SCP でアップロードする。
今回は下図のようなアイコン等が無いシンプルなテンプレートを用意した。

新しくテンプレートとなる PDF ファイルをアップロード

3-2.データベースにテーブルを追加する

次に EC-CUBE のマスタデータとして PDF のテンプレートを複数登録できるようにテーブルを追加する。
データベースにテーブル追加する場合は、ブラウザでデータベースを操作できる phpMyAdmin を利用するか、SSH などコマンドで実行する。

CREATE TABLE mtb_pdftemplate (
  id int primary key,
  name text,
  rank int NOT NULL DEFAULT 0
) TYPE=InnoDB ;

テーブルを追加する場合は上記のように、id とファイル名を入力するカラム「name」、そして表示順を指定するカラム「rank」を用意している。

3-3.データベースに PDF のテンプレート情報を登録

テンプレートとなる PDF のマスタテーブルが作成できれば、実際に PDF ファイル名をデータベースに登録する。
レコードを登録する際もテーブル作成時と同様に phpMyAdmin か、SSH でコマンドで実行する。

INSERT INTO mtb_pdftemplate VALUES ('1', 'template_nouhin01.pdf',0);
INSERT INTO mtb_pdftemplate VALUES ('2', 'template_nouhin02.pdf',1);


3-4.テンプレートを切り替える処理を追加

納品書 PDF を生成する際に利用するクラスファイル「/data/class/pages/admin/order/LC_Page_Admin_Order_Pdf.php」に前述で作成したマスタテーブル「mtb_pdftemplate」からデータを取得する処理を加える。

もしデータベースからデータ取得が難しい場合は、テンプレートファイル名がわかっていれば下記の 2 行を init() 内に追記する。

$this->arrPdfTemplate[0]  = "template_nouhin01.pdf";
$this->arrPdfTemplate[1]  = "template_nouhin02.pdf";

3-5.テンプレートを切り替える項目を画面に追加

次に実際に納品書 PDF を生成する際にテンプレートとなる PDF を切り替えられるように画面をカスタマイズする。
「/data/Smarty/templates/default/admin/order/pdf_input.tpl」に下記を追記することで、前述のクラスファイルで配列「arrPdfTemplate」に入れた PDF のファイル名が選択できるようになる。

<tr class="fs12n">
  <td width="120" bgcolor="#f3f3f3">帳票のテンプレート</td>
  <td width="307" bgcolor="#ffffff"><!--{if $arrErr.pdftemplate}--><span class="red"><!--{$arrErr.pdftemplate}--></span><!--{/if}-->
    <select name="pdftemplate">
    <!--{html_options options=$arrPdfTemplate selected=$arrForm.pdftemplate}-->
    </select>
  </td>
</tr>

4.カスタマイズ後の PDF の切り替える様子

前述のカスタマイズを実施した後に実際に納品 PDF 作成でテンプレートを切り替える様子が次のようになる。
管理画面の受注管理よりリンク「帳票」をクリックして PDF の作成画面が表示すると、下図のようにテンプレートが選択できるようになっている。

テンプレート PDF が選択できる様子

ここで利用したいテンプレート PDF を選択してボタン「この内容で作成する」をクリックするとレイアウトを切り替えて納品書 PDF を作成することができる。

また、データベースでテンプレート PDF を管理するようになっていれば、マスターデータ管理でテンプレートとして利用できる PDF を増やすことができる、

テンプレート PDF をマスターデータとして管理する

関連記事

コメントを残す