帳票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);
——————————————–

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

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

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)のファイル名を元に戻し、「キャッシュ削除」を行ってください。

 

スタイルシートCSSの変更が反映されない時

EC-CUBEのstyle.cssを編集後、キャッシュ削除を行ってもフロントページに反映されないときがあります。これは、ブラウザのキャッシュが読み込まれていることが原因なので、ブラウザのキャッシュを削除すれば反映されます。
しかし、たびたびこの作業を行うのは面倒です。そんな時は、<link>タグにパラメータを付与して、常にstyle.cssを読み込ませるようにすると、煩わしさを解消できます。

■src/Eccube/Resource/template/default/default_frame.twig
(appフォルダに生成されている場合は、そちらを修正してください)
——————————-
<link rel=”stylesheet” href=”{{ asset(‘assets/css/style.css’) }}”>
——————————-
↓【修正】
——————————-
<link rel=”stylesheet” href=”{{ asset(‘assets/css/style.css’) }}?{{ ‘now’|date(‘His’) }}“>
——————————-

赤字を追加すると、下記のように、パラメータに時刻(14時32分27秒)が付与され、常に更新されたCSSとして読み込まれます。
<link rel=”stylesheet” href=”/・・・・・・・・・・/html/template/default/assets/css/style.css?143227“>

EC-CUBE4 帳票PDFプラグイン:帳票に「熨斗(のし)を配送別で指定するプラグイン」を反映する

pdf001

pdf002

■app/Plugin/ReportPdf/Service/ReportPdfService.php(通常版)
■app/Plugin/ReportPdf2/Service/ReportPdf2Service.php(軽減税率対応版)

(1)「お買上げ明細」の「受注詳細表」の開始位置を下に移動し、スペースを確保する。

① protected function setFancyTable($header, $data, $w){ }内、
142」を「152」へ変更する。
——————————-
// 開始座標の設定
$this->setBasePosition(0, 142);
——————————-
↓【変更】
——————————-
// 開始座標の設定
$this->setBasePosition(0, 152);
——————————-

② protected function setFancyTable2($header, $data, $w){ }内、
70」を「80」へ変更する。
——————————-
// 開始座標の設定
$this->setBasePosition(0, 70);
——————————-
↓【変更】
——————————-
// 開始座標の設定
$this->setBasePosition(0, 80);
——————————-

 

(2)のしの希望を追加する。

① protected function renderOrderData(Shipping $Shipping, array $formData){ }内、

// ▼のしプラグイン ~ // ▲のしプラグイン を追加します。
——————————-
// =========================================
// ▼お買上げ明細のお届け先・お支払い方法等
// =========================================

// お支払い方法
$text = ‘お支払い方法:’ . $Order->getPayment();
$this->lfText(124, 114, $text, 10);

$y = 116; // 開始y軸位置

// 配送業者
if($formData[‘haiso_show’] != 2 and $Shipping->getShippingDeliveryName()) {
$y += 4;
$text = ‘配送業者:’.$Shipping->getShippingDeliveryName();
$this->lfText(124, $y, $text, 10);
}
// お届け日
if($Shipping->getShippingDeliveryDate()) {
$y += 4;
$text = ‘お届け日:’.$Shipping->getShippingDeliveryDate()->format(‘Y/m/d’);
$this->lfText(124, $y, $text, 10);
}
// お届け時間
if($Shipping->getShippingDeliveryTime()) {
$y += 4;
$text = ‘お届け時間:’.$Shipping->getShippingDeliveryTime();
$this->lfText(124, $y, $text, 10);
}
// ▼のしプラグイン
if($Shipping->getGiftCheck() == ‘希望する’) {
$y += 6;
$text = ‘のしの種類:’.$Shipping->getGiftKind();
$this->lfText(124, $y, $text, 10);
$y += 4;
$text = ‘表書き(上段):’.$Shipping->getGiftTie();
$this->lfText(124, $y, $text, 10);
if($Shipping->getGiftTie() == ‘その他’) {
$y += 4;
$text = ‘┗ 表書き[その他]:’.$Shipping->getGpTitle();
$this->lfText(124, $y, $text, 10);
}
$y += 4;
$text = ‘お名前(下段):’.$Shipping->getGpName();
$this->lfText(124, $y, $text, 10);
} else {
$y += 6;
$text = ‘のし希望なし';
$this->lfText(124, $y, $text, 10);
}
// ▲のしプラグイン
——————————-

② protected function renderShippingData(Shipping $Shipping, array $formData) { }内、

// ▼のしプラグイン ~ // ▲のしプラグイン を追加します。
——————————-
// お問い合わせ番号
if($formData[‘contact_show’] != 2 and $Shippings->getTrackingNumber()) {
$y += 4;
$text = ‘お問い合わせ番号:’.$Shippings->getTrackingNumber();
$this->lfText(24, $y, $text, 10);
}

$y += 1;
if($formData[‘haiso_show’] != 2 and $Shippings->getShippingDeliveryName()) {
$y += 4;
$text = “配送業者:” . $Shippings->getShippingDeliveryName();
$this->lfText(24, $y, $text, 9);
}
if($Shippings->getShippingDeliveryDate()) {
$y += 4;
$text = “お届け日:” . $Shippings->getShippingDeliveryDate()->format(‘Y/m/d’) ;
$this->lfText(24, $y, $text, 9);
}
if($Shippings->getShippingDeliveryTime()) {
$y += 4;
$text = “お届け時間:” . $Shippings->getShippingDeliveryTime();
$this->lfText(24, $y, $text, 9);
}
// ▼のしプラグイン
if($Shippings->getGiftCheck() == ‘希望する’) {
$y += 6;
$text = ‘のしの種類:’.$Shippings->getGiftKind();
$this->lfText(24, $y, $text, 10);
$y += 4;
$text = ‘表書き(上段):’.$Shippings->getGiftTie();
$this->lfText(24, $y, $text, 10);
if($Shippings->getGiftTie() == ‘その他’) {
$y += 4;
$text = ‘┗ 表書き[その他]:’.$Shippings->getGpTitle();
$this->lfText(24, $y, $text, 10);
}
$y += 4;
$text = ‘お名前(下段):’.$Shippings->getGpName();
$this->lfText(24, $y, $text, 10);
} else {
$y += 6;
$text = ‘のし希望なし';
$this->lfText(24, $y, $text, 10);
}
// ▲のしプラグイン
——————————-

※ 注意!
追加コード、if($Shipping->getGiftCheck() == ‘希望する‘) {
希望する」は、マスターデータ管理:mtb_gift_check ID:1のNameと同じでなければいけません。
ご自身で変更されている場合は、ご注意ください。