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プラグイン:お買上げ明細の「単価」の税表示を税込み表示に統一する方法

現状、商品の「単価」は税抜き、手数料・送料は税込みで表示されています。
プラグインは、元々EC-CUBE4に実装されている帳票機能を拡張したものなので、この部分もそのまま引き継いでいるところです。
001

「単価」はデータベース「dtb_order_item」の「price」カラムが反映されています。
「price」カラムには、商品の場合は「税抜き」で、手数料・送料の場合は「税込み」で登録されるので、「単価」は、税込みなのか税抜きなのか、統一された表示にはなっていません。
003

そこで、商品の単価表示についてのみ、「price」カラムと「tax」カラムを足して「税込み」で表示させ、統一した表示(税込み表示)に修正します。
002

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

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

———————————————
// 税込金額(単価)
$arrOrder[$i][2] = $this->eccubeExtension->getPriceFilter($OrderItem->getPrice());
———————————————
↓【変更】
———————————————
// 税込金額(単価)
if ($OrderItem->getProductName() == “送料” or $OrderItem->getProductName() == “手数料”) {
$arrOrder[$i][2] = $this->eccubeExtension->getPriceFilter($OrderItem->getPrice());
} else {
$arrOrder[$i][2] = $this->eccubeExtension->getPriceFilter($OrderItem->getPrice() + $OrderItem->getTax());
}
———————————————

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

 

スタイルシート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と同じでなければいけません。
ご自身で変更されている場合は、ご注意ください。