[eccube3]帳票出力プラグインをいじる

ちょっとした加工

やりたいこと

表示項目を追加したい。

プラグイン

3.0系|帳票出力プラグイン|株式会社イーシーキューブ(EC-CUBE開発元)
https://www.ec-cube.net/products/detail.php?product_id=959

仕組み

FPDFとかいう、PHP上でPDFを生成するライブラリを噛ませて納品書とかを書き出してる。

参考

【EC-CUBE3系】納品書にお届け先の情報を出力する | a special kind of humor reconciled
https://www.skhr.work/tech/20181113/ec-cube-print-receipt/

参考というか、色々考えた挙げ句これに倣って終了した。

編集ファイル

app/Plugin/OrderPdf/Service/OrderPdfService.php
これ一つでPDFの出力内容やら配置を管理している。

いじり方の考え方

出力する内容はグループに分かれていて、ショップ情報エリアとか商品名エリアとか金額エリアとか購入者情報エリアとか受注情報エリアとかそんな感じ。
自分が追加したい内容に合わせて、そのエリア内に書き込む。

みたいな感じで囲ってあるし、コメントアウトで説明もあるからなんとなく読めばわかると思う。

PDFへの出力は簡潔にいえばこういうことで、(1行目)フォントを指定して(2行目)出力したい内容を指定して(3行目)出力位置を指定する。

これの16と205はそれぞれX座標(横)、Y座標(縦)になっている。
イラレとかPPTのオブジェクトの組み合わせみたいなイメージで組んでいく。

出力しないと雰囲気がわからない上にプラグインの更新はキャッシュを消してもしばらくかかったりして根気がいる。

理解の途中だけどメモ

お届け日、お届け時間の表示

大前提として、複数箇所のお届け先は考慮していないので注意。

これを

これの中に入れると、お届け日とお届け時間(※注文時に指定した希望日時)が表示される。表示位置は「ご注文日」の右側。項目名はテンプレートになるPDFに載せておく。

テンプレートPDF

FPDFはPHP上で指定した内容を書き出すだけじゃなく、テンプレートを指定できる。「app/template/admin/OrderPdf/nouhinsyo1.pdf」を見ればわかるんだけど、一部の罫線とか項目名はプラグインじゃなくてPDF内で予め用意されている。

支払い方法の表示

項目名の設置は上記の通り、テンプレートのPDFに記載。
ゴシック系で10ptくらいの太字でやれば元々のやつに寄せられる。
手間じゃなければ作り直しても良いんじゃないかな。

これを

ここに入れる。

備考欄のカスタマイズ

プラグイン側で用意してる備考欄に、購入時の問い合わせ内容と受注マスターのショップメモを挿入する方法。

まずは引数をいじる。

いじりすぎて元の行数がよくわかんなくなってるけど、大体180行目あたりのやつ。「,」で区切れば複数引っ張れることを確認。

300行目かな、最初の宣言に合わせてラッピングしているところも修正。
その直下に以下を追加。

上から順に書き出されるので、全部の欄に記入が合った場合は「お問い合わせ内容→ショップ用メモ欄→プラグイン備考欄」の順で書き出される。
順番を変えたければ「$text .=」のところの順番が変わるように編集すること。

シェアする

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