[初回公開] 2008年05月07日
EC-CUBE には納品書を PDF として発行する機能が標準で備わっており既定のレイアウトのもの 1 つ利用できるようになっているが、納品書 PDF の出し方と、カスタマイズして 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 はそのまま印刷したり、パソコンにファイルとして保存することができる。
2-2.バージョン 1 系での PDF の出し方
EC-CUBE のバージョン 4 系での 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 でアップロードする。
今回は下図のようなアイコン等が無いシンプルなテンプレートを用意した。
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 を増やすことができる、
関連記事
EC-CUBE のカラムを増やすメリットと入力項目をカスタマイズする方法
EC-CUBE は無料で利用できるオープンソースの EC サイトプログラム群で、自由にカスタマイズできるのが特徴だが、今回は管理画面でデザインを変更するだけでなく、より利便性を高めるために直接プログ…
EC-CUBE を利用して手軽に EC サイトで収益をあげる方法
コロナウィルスの影響で観光業や飲食業だけでなく、そこに生産物を納める業者も多きなダメージを受けている中、反して宅配サービスやインターネットショッピングの売上は増加傾向にあり、生産者が実…
無料で利用できる EC サイト「EC-CUBE4」をインストールする方法
法人でも個人でもインターネット上にショッピングサイト(EC サイト)が手軽に公開できるように無料で利用できるさまざまなオープンソースが配布されている中、国内でよく利用されている EC-CUBE の…