LoginSignup
1
0

More than 1 year has passed since last update.

EC-CUBE納品書PDFカスタマイズ

Posted at

やりたいこと
基本ファイル
pdfタイトルの変更
会社情報の変更
会社印png実装
支払い種別記載
参考記事

やりたいこと

▶︎PDFタイトルの変更
▶︎会社情報の変更(店名→会社名)
▶︎会社印PNG実装
▶︎支払い種別記載

基本ファイル

root/src/Eccube/Service/OrderPdfService.php

PDFタイトルの変更

messages.ja.yamlをカスタマイズ

src/Eccube/Resource/locale/messages.ja.yaml
↓コピペ
app/Customize/Resource/locale/messages.ja.yaml

root/app/Customize/Resource/locale/messages.ja.yaml
886 admin.order.delivery_note_title__default: お買上げ明細書(納品書)

以下に変更

vim root/app/Customize/Resource/locale/messages.ja.yaml
886 admin.order.delivery_note_title__default: お買上げ明細書兼領収書

会社情報の変更(店名→会社名)

領収書となるため正式な会社名が必要

root/src/Eccube/Service/OrderPdfService.php
302 // ショップ名
303 $this->lfText(125, 60, $this->baseInfoRepository->getShopName(), 8, 'B');

以下に変更

vim root/src/Eccube/Service/OrderPdfService.php
302 // ショップ名
303 $this->lfText(125, 60, $this->baseInfoRepository->getCompanyName(), 8, 'B');

会社印PNG実装

会社印をPNGでアップロード
root/html/user_data/assets/pdf/logo.png

PDF上の配置位置カスタマイズ
327行目を変更
$this->Image($logoFile, X座標, Y座標, 横幅);

vim root/src/Eccube/Service/OrderPdfService.php
320 // user_dataにlogo.pngが配置されている場合は優先的に読み込む
321 $logoFile = $this->eccubeConfig->get('eccube_html_dir').'/user_data/assets/pdf/logo.png';
322
323 if (!file_exists($logoFile)) {
324     $logoFile = $this->eccubeConfig->get('eccube_html_admin_dir').'/assets/pdf/logo.png';
325 }
326
327 $this->Image($logoFile, 135, 76, 25);

支払い種別記載

クレジットカード支払
銀行振込支払
現金代引引換
上記の種別を記載するため、備考欄のテキストフォームをプルダウンメニューに変更

input属性を取得

ブラウザ管理画面の開発デベロッパーツールよりinput属性を取得

<input type="text" id="order_pdf_note1" name="order_pdf[note1]" maxlength="255" class="form-control">

twigカスタマイズ

order_pdf.twigをカスタマイズ

root/src/Eccube/Resource/template/admin/Order/order_pdf.twig
↓コピペ
root/app/template/admin/Order/order_pdf.twig

root/app/template/admin/Order/order_pdf.twig
136 <div class="font-weight-bold">{{ 'admin.order.delivery_note_memo'|trans }}</div>
137 <div class="form-group">
138     <label>{{ 'admin.order.delivery_note_line1'|trans }}</label>
139     {{ form_widget(form.note1) }}
140     {{ form_errors(form.note1) }}
141 </div>

以下に変更

root/app/template/admin/Order/order_pdf.twig
136 <div class="font-weight-bold">{{ 'admin.order.delivery_note_memo'|trans }}</div>
137 <div class="form-group">
138     <label>支払い種別</label>
139     <select  type="text" id="order_pdf_note1" name="order_pdf[note1]" maxlength="255" class="form-control">
140     <option value="支払種別:代金はクレジットカード支払いで領収いたしました">支払種別:代金はクレジットカード支払いで領収いたしました</option>
141     <option value="支払種別:代金は銀行振込で領収いたしました">支払種別:代金は銀行振込で領収いたしました</option>
142     <option value="支払種別:代金は現金代引引換で領収いたします">支払種別:代金は現金代引引換で領収いたします</option>
143     </select>
144     {{ form_errors(form.note1) }}
145 </div>

twigファイルのカスタマイズはキャッシュ削除しながら行う


参考記事

https://doc4.ec-cube.net/design_messages
https://doc4.ec-cube.net/design_template
https://umebius.com/eccube/eccube4-original-logo-order-pdf/
https://www.xross-cube.com/EC-CUBE_doc/classes/Eccube-Entity-BaseInfo.html#method_getCompanyName
https://www.tagindex.com/html5/form/select.html

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0