EC-CUBE3 インボイス制度に対応した帳票出力(納品書・請求書・見積書・領収書)プラグイン

・納品書、見積書、請求書、領収書を作成することができます。
・「ロゴ画像」「印鑑枠」「その他のお問い合わせ」「配送業者」「お届け日・お届け時間」は表示・非表示の選択が可能です。
・宛名は会社名+注文者で表示されますが、出力時に「宛名欄」が入力されると入力内容が宛名として表示されます。(宛名の変更が可能)
・お買上げ明細表の「単価」は、税込み表示・税抜き表示の選択が可能です。
・注文数が多い明細表など、「フォントサイズ」「セルの高さ」を変更して調整することができます。
・インボイス制度に対応するため、「適格請求書発行事業者登録番号」「税率別の価格と消費税」「軽減税率適用の有無」が帳票に反映されます。

詳しくはマニュアルをご覧下さい。
EC-CUBE3_DocumentPdfManual.pdf

ご購入はこちら
https://kaiplus.com/

101

帳票PDFプラグイン(EC-CUBE4.1系対応版)の購入商品詳細情報の修正

購入商品詳細情報に送料や手数料が含まれています。(図1の赤枠)
送料や手数料は、別途表示されている(図1の青枠)ので、不要です。

図1
01修正方法は以下の通りです。
■app/Plugin/ReportPdf/Service/ReportPdfService.php
715行目付近、751行目付近に下記コードを追加します。(図2参照)

// 商品以外は除外
if (!$OrderItem->isProduct()) {
continue;
}

図2
02

 

プラグインのバージョン4.1.5→4.1.6のアップデートで対応します。

 

帳票PDFプラグイン:お買上げ明細の「単価」を税込み表示に変更する

(1)修正ファイル
ReportPdfService.php または ReportPdf2Service.php

(2)修正内容
getPrice → getPriceIncTax

————————————
getPriceFilter($OrderItem->getPrice()
————————————
↓【変更】
————————————
getPriceFilter($OrderItem->getPriceIncTax()
————————————

(3)修正箇所

3カ所

帳票PDFプラグイン
https://www.ec-cube.net/products/detail.php?product_id=1868
————————————
■app/Plugin/ReportPdf/Service/ReportPdfService.php
739行目付近、771行目付近、941行目付近
————————————

帳票PDF[軽減税率対応版]プラグイン
https://www.ec-cube.net/products/detail.php?product_id=1951
————————————
■app/Plugin/ReportPdf2/Service/ReportPdf2Service.php
753行目付近、788行目付近、1015行目付近
————————————

EC-CUBE4.0.5→EC-CUBE4.0.6 バージョンアップファイルの一覧

===============================================
バージョンアップ対象 差し替え対象ファイル
===============================================

———————————————–
vendorの入れ換え
———————————————–
直下のvendorフォルダは上書きではなく、新しいものに入れ換えます。

———————————————–
直下ファイル
———————————————–
.htaccess
composer.lock
package.json
symfony.lock

———————————————–
src/Eccube/Common/
———————————————–
Constant.php

———————————————–
src/Eccube/Resource/template/admin/Order/
———————————————–
mail_confirm.twig

———————————————–
src/Eccube/Resource/template/admin/Setting/Shop/
———————————————–
payment_edit.twig

———————————————–
src/Eccube/Service/Composer/
———————————————–
ComposerApiService.php

 

EC-CUBE4.0系デザインテンプレートの修正内容

(1)商品一覧の商品にカーソルを乗せると、「カートに入れる」がボタンとして表示されるように変更。

対象:IBN4001(ver.4.0.51)、IBN4002(ver4.0.52)、IBN4003(ver4.0.51)共通

■style.css
「カートボタン」のコードの下に追加。

/* カートボタン */
.ec-shelfGrid .ec-blockBtn--action {
height:46px;
line-height:46px;
font-size: 14px;
}

↓【追加】

/* カートボタン */
.ec-shelfGrid .ec-blockBtn--action {
height:46px;
line-height:46px;
font-size: 14px;
}
@media only screen and (min-width: 768px){
.ec-shelfGrid .ec-blockBtn--action {
background:none;
color:#999;
}
li.ec-shelfGrid__item:hover .ec-blockBtn--action {
border:1px solid #999;
}
li.ec-shelfGrid__item:hover .ec-blockBtn--action:hover {
background:#DE5D50;
border:1px solid #DE5D50;
color:#FFF;
}
}

 

(2)スマホ閲覧時、商品詳細ページのメイン画像(slick.js)をピンチアウトできるようにする。(オリジナルEC-CUBEにも適用できます)

対象:IBN4001(ver.4.0.51)、IBN4002(ver4.0.52)、IBN4003(ver4.0.51)共通

■style.css
最後に追加

/* =================================
slick.jsのスライドショーで、スマホによるピンチイン・アウトを可能にする
================================= */
.slick-slider {
-ms-touch-action:auto;
touch-action:auto;
}

 

(3)商品が多数購入された時、ヘッダー部のカートブロックにスクロールバーを表示する。

対象:IBN4001(ver.4.0.51)

① ■style.css
9298行目付近、overflow:auto; 追加

/* 展開 */
@media only screen and (min-width: 768px){
.ec-cartNaviIsset {
margin-top: 12px;
min-width: 400px;
max-width: 400px;
right:-20px;
border:1px solid #999;
background: #fff;
}

↓【追加】

1
/* 展開 */
@media only screen and (min-width: 768px){
.ec-cartNaviIsset {
margin-top: 12px;
min-width: 400px;
max-width: 400px;
right:-20px;
border:1px solid #999;
background: #fff;
overflow:auto;
}

② ■default_frame.twig
最後の方に追加

{# ▼ブラウザの高さとカート #}
<script>
if (window.matchMedia('(min-width:768px)').matches) {
$('.ec-modal').click(function() {
var h = $(window).height();
$('.ec-cartNaviIsset').css('max-height', (h-40) + 'px');
});
$(window).on('load',function(){
var h = $(window).height();
$('.ec-cartNaviIsset').css('max-height', (h-40) + 'px');
});
$(window).on('resize',function(){
var h = $(window).height();
$('.ec-cartNaviIsset').css('max-height', (h-40) + 'px');
});
}
</script>

EC-CUBE4機能カスタマイズ版:販売期間限定の商品が販売期間外のときにカートに入った場合、レジには進めないようにする。

image販売期間外の商品が、マイページ購入履歴の再注文からカートに入ってしまう不具合を修正しました。
具体的には、ショッピングカートに販売期間外の商品が入っている場合は、「レジに進む」のボタンが表示されないようにしました。

帳票PDFプラグイン:複数配送先の郵便番号と電話番号の修正

「複数配送の場合の作成方法」を「注文者・配送先を一括で作成する」にして作成した場合、お届け先の郵便番号と電話番号が一件目の情報で全てのお届け先に印字されてしまうため、下記ファイルの修正をお願い致します。

通常版■app/Plugin/ReportPdf/Service/ReportPdfService.php
861行目付近

軽減税率対応版■app/Plugin/ReportPdf2/Service/ReportPdfService2.php
932行目付近

「$Shipping」 を「$Shippings に修正してください。s を追加、3カ所あります。
—————————————————–

// 郵便番号
$y += 0;
$zip = substr($Shippings->getPostalCode(),0,3).”-“.substr($Shippings->getPostalCode(),3);
$text = ‘〒 ‘.$zip;
$this->lfText(15, $y, $text, 10);

// お届け先都道府県+住所1
$y += 4;
$text = $Shippings->getPref() . $Shippings->getAddr01() . $Shippings->getAddr02();
$this->lfText(15, $y, $text, 10);

// 会社名
if($Shippings->getCompanyName()) {
$y += 5;
$text = $Shippings->getCompanyName();
$this->lfText(18, $y, $text, 10);
}

// 氏名
$y += 5;
$text = $Shippings->getName01() . “ ” . $Shippings->getName02() . “ 様”;
$this->lfText(18, $y, $text, 11);

// TEL
$y += 5;
$tel = $Shippings->getPhoneNumber();
$text = ‘TEL: ‘.$tel;
$this->lfText(18, $y, $text, 10);
—————————————————–

帳票PDFプラグイン:注文者の宛名について

帳票PDFプラグイン
https://www.ec-cube.net/products/detail.php?product_id=1868

【ご質問】
帳票の宛先を注文者とは別の宛名に変更することは可能ですか?

管理画面で操作することはできませんが、プラグインのファイルを修正すれば可能です。
pdf

帳票の印刷が完了したら、修正箇所は元に戻してください。

■app/Plugin/ReportPdf/Service/ReportPdfService.php
576行目付近
——————————————–
// 購入者氏名
$y += 4;
if ($Order->isMultiple() and $formData[‘delivery_multi’] == 2) {
$text = $Shipping->getName01().’ ’.$Shipping->getName02().’ 様';
} else {
$text = $Order->getName01().’ ’.$Order->getName02().’ 様';
}
$this->lfText(27, $y, $text, 11);
——————————————–

(1)別の宛名をコメントアウトで追加します。
——————————————–
// 購入者氏名
$y += 4;
if ($Order->isMultiple() and $formData[‘delivery_multi’] == 2) {
$text = $Shipping->getName01().’ ’.$Shipping->getName02().’ 様';
//$text = ‘●●●● 様';
} else {
$text = $Order->getName01().’ ’.$Order->getName02().’ 様';
//$text = ‘●●●● 様';
}
$this->lfText(27, $y, $text, 11);
——————————————–

(2)別の宛名が必要になったら、コメントアウトを外し、通常の宛名をコメントアウトします。
——————————————–
// 購入者氏名
$y += 4;
if ($Order->isMultiple() and $formData[‘delivery_multi’] == 2) {
//$text = $Shipping->getName01().’ ’.$Shipping->getName02().’ 様';
$text = ‘●●●● 様';
} else {
//$text = $Order->getName01().’ ’.$Order->getName02().’ 様';
$text = ‘●●●● 様';
}
$this->lfText(27, $y, $text, 11);
——————————————–

印刷が完了したら、(1)に戻します。

(3)会社名が不要であれば、会社名の部分をコメントアウトします。
あるいは、別名と同じ方法で会社名を変更します
——————————————–
// 会社名
//if ($Order->isMultiple() and $formData[‘delivery_multi’] == 2) {
//$company_name = $Shipping->getCompanyName();
//} else {
//$company_name = $Order->getCompanyName();
//}
$y = 41; // 開始y軸位置
if($company_name) {
$y += 6;
$text = $company_name;
$this->lfText(27, $y, $text, 10);
}

// 購入者氏名
$y += 4;
if ($Order->isMultiple() and $formData[‘delivery_multi’] == 2) {
//$text = $Shipping->getName01().’ ’.$Shipping->getName02().’ 様';
$text = ‘●●●● 様';
} else {
//$text = $Order->getName01().’ ’.$Order->getName02().’ 様';
$text = ‘●●●● 様';
}
$this->lfText(27, $y, $text, 11);
——————————————–

EC-CUBE4.0.4→EC-CUBE4.0.5 バージョンアップファイルの一覧

===============================================
バージョンアップ対象 差し替え対象ファイル
===============================================

★→追加ファイル
■削除→4.0.4にはあるが、4.0.5にはない。

———————————————–
vendorの入れ換え
———————————————–
直下のvendorフォルダは上書きではなく、新しいものに入れ換えます。

———————————————–
直下ファイル
———————————————–
.htaccess
composer.json
composer.lock
Dockerfile
gulpconfig.js.sample(■削除)
gulpfile.js
package.json
package-lock.json
robots.txt
symfony.lock
web.config

▼追加フォルダ
.devcontainer★
gulp★

———————————————–
app/template/
———————————————–
▼追加フォルダ
plugin★

———————————————–
html/template/admin/assets/css/
———————————————–
mapsフォルダ(■削除)

———————————————–
html/template/default/assets/css/
———————————————–
mapsフォルダ(■削除)
style.css(商品一覧のカート追加モーダルに関わる箇所が変更されている)
style.css.map
style.min.css
style.min.css.map

———————————————–
html/template/default/assets/scss/project/
———————————————–
_13.4.cartModal.scss

 
———————————————–
html/user_data/
———————————————–
.gitkeep(■削除)

 
———————————————–
src/Eccube/
———————————————–
Kernel.php

 
———————————————–
src/Eccube/Command/
———————————————–
ComposerRemoveCommand.php
PluginGenerateCommand.php

 
———————————————–
src/Eccube/Common/
———————————————–
Constant.php

 
———————————————–
src/Eccube/Controller/Admin/
———————————————–
AdminController.php

———————————————–
src/Eccube/Controller/Admin/Content/
———————————————–
LayoutController.php

———————————————–
src/Eccube/Controller/Admin/Setting/Shop/
———————————————–
MailController.php

———————————————–
src/Eccube/DependencyInjection/
———————————————–
EccubeExtension.php

———————————————–
src/Eccube/Doctrine/Common/CsvDataFixtures/
———————————————–
CsvFixture.php

———————————————–
src/Eccube/Doctrine/ORM/Mapping/Driver/
———————————————–
NopAnnotationDriver.php★

———————————————–
src/Eccube/Form/Type/Admin/
———————————————–
OrderType.php
SearchCustomerType.php
SearchOrderType.php
SearchProductType.php

———————————————–
src/Eccube/Repository/
———————————————–
AbstractRepository.php
CustomerRepository.php
OrderRepository.php
ProductRepository.php
ShippingRepository.php

———————————————–
src/Eccube/Resource/doctrine/import_csv/en/
———————————————–
dtb_page.csv
dtb_product_class.csv

———————————————–
src/Eccube/Resource/doctrine/import_csv/ja/
———————————————–
dtb_page.csv
dtb_product_class.csv

———————————————–
src/Eccube/Resource/locale/
———————————————–
messages.en.yaml
messages.ja.yaml

———————————————–
src/Eccube/Resource/template/admin/
———————————————–
error.twig
index.twig
search_items.twig

———————————————–
src/Eccube/Resource/template/admin/Customer/
———————————————–
index.twig

———————————————–
src/Eccube/Resource/template/admin/Order/
———————————————–
edit.twig
index.twig
search_product.twig

———————————————–
src/Eccube/Resource/template/admin/Product/
———————————————–
category.twig
index.twig
product.twig

———————————————–
src/Eccube/Resource/template/default/Mypage/
———————————————–
login.twig

———————————————–
src/Eccube/Resource/template/default/Product/
———————————————–
detail.twig
list.twig
option_detailclass_script.twig(本サイトの機能カスタマイズ版のファイルです。オリジナルEC-CUBEには存在しません。)

———————————————–
src/Eccube/Resource/template/install/
———————————————–
step3.twig

———————————————–
src/Eccube/Service/
———————————————–
PluginContext.php★
PluginService.php
SchemaService.php

———————————————–
src/Eccube/Service/Composer/
———————————————–
ComposerApiService.php

———————————————–
src/Eccube/Service/PurchaseFlow/Processor/
———————————————–
StockReduceProcessor.php

 

機能カスタマイズ版のアップデート後、カート追加モーダルが表示されない時

キャッシュ削除を行っても、規格ごとのカートボタンクリックで、カート追加モーダルが表示されない場合は、ブラウザのキャッシュが反映されている可能性があります。

image

次の方法を試してみてください。

(1)■src/Eccube/Resource/template/default/Product/detail.twig
(appフォルダに生成されている場合は、そちらを修正してください)
313行目付近を修正(ファイル名を変更します)
———————————-
{% include ‘Product/option_detailclass_script.twig’ %}
———————————-
↓【修正】
———————————-
{% include ‘Product/option_detailclass_script2.twig’ %}
———————————-

(2)ファイル名を変更
■src/Eccube/Resource/template/default/Product/option_detailclass_script.twig
(appフォルダに生成されている場合は、そちらを修正してください)
———————————-
option_detailclass_script.twig
———————————-
↓【修正】
———————————-
option_detailclass_script2.twig
———————————-

(3)管理画面で「キャッシュ削除」を行う。

(4)動作が確認できたら、(1)の記述と(2)のファイル名を元に戻し、「キャッシュ削除」を行ってください。