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

 

EC-CUBE4 帳票PDFプラグイン:複数配送の場合、「配送先ごとに作成」したときの宛名を注文者にする。

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

protected function renderOrderData(Shipping $Shipping, array $formData){ }内、
下記コードの「2」を「0」に変更します。全部で6カ所あります。
——————————————
if ($Order->isMultiple() and $formData[‘delivery_multi’] == 2) {
——————————————

変更後、以下のようになります。
——————————————
// =========================================
// 購入者情報部
// =========================================

$Order = $Shipping->getOrder();

// 郵便番号
if ($Order->isMultiple() and $formData[‘delivery_multi’] == 0) {
$zip = substr($Shipping->getPostalCode(),0,3).”-“.substr($Shipping->getPostalCode(),3);
} else {
$zip = substr($Order->getPostalCode(),0,3).”-“.substr($Order->getPostalCode(),3);
}
$text = ‘〒 ‘.$zip;
$this->lfText(23, 33, $text, 10);

// 購入者都道府県+住所1
if ($Order->isMultiple() and $formData[‘delivery_multi’] == 0) {
$text = $Shipping->getPref().$Shipping->getAddr01();
} else {
$text = $Order->getPref().$Order->getAddr01();
}
$this->lfText(27, 37, $text, 10);

//購入者住所2
if ($Order->isMultiple() and $formData[‘delivery_multi’] == 0) {
$text = $Shipping->getAddr02();
} else {
$text = $Order->getAddr02();
}
$this->lfText(27, 41, $text, 10);

// 会社名
if ($Order->isMultiple() and $formData[‘delivery_multi’] == 0) {
$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’] == 0) {
$text = $Shipping->getName01().’ ’.$Shipping->getName02().’ 様';
} else {
$text = $Order->getName01().’ ’.$Order->getName02().’ 様';
}
$this->lfText(27, $y, $text, 11);

// TEL
$y += 4;
if ($Order->isMultiple() and $formData[‘delivery_multi’] == 0) {
$tel = $Shipping->getPhoneNumber();
} else {
$tel = $Order->getPhoneNumber();
}
$text = ‘TEL: ‘.$tel;
$this->lfText(27, $y, $text, 11);
——————————————

 

EC-CUBE4.0.3→EC-CUBE4.0.4 バージョンアップ:デザインテンプレートに関わるファイル一覧

EC-CUBE4.0.3からEC-CUBE4.0.4への バージョンアップにおいて、デザインテンプレートに関わるファイルの一覧は次の通りです。
赤字は修正内容です。

=============================================
1 twigファイル
=============================================

(1)app/template/テンプレートコード/default_frame.twig
・bootstrapのURLが変更されている。

(2)app/template/テンプレートコード/Block/eyecatch.twig
・class属性(ec-eyecatchRole__introDescription)の記述ミスが修正されている。

(3)app/template/テンプレートコード/Mail/order.html.twig
(4)app/template/テンプレートコード/Mail/order.twig
・「※ は軽減税率対象商品です。」の表示条件を改善

(5)app/template/テンプレートコード/Mypage/history.twig
・「※ は軽減税率対象商品です。」の表示条件を改善

(6)app/template/テンプレートコード/Shopping/confirm.twig
(7)app/template/テンプレートコード/Shopping/index.twig
・「※ は軽減税率対象商品です。」の表示条件を改善

=============================================
2 htmlフォルダ内のファイル ★は新規追加
=============================================

(1)html/template/テンプレートコード/assets/css/style.css
(2)html/template/テンプレートコード/assets/css/style.css.map★
(3)html/template/テンプレートコード/assets/css/style.min.css★
(4)html/template/テンプレートコード/assets/css/style.min.css.map★

(5)html/template/テンプレートコード/assets/css/maps/style.min.css.map★

(6)html/template/テンプレートコード/assets/js/function.js
・#shopping-formが、.ec-orderRoleに変更されている。

(7)html/template/テンプレートコード/assets/scss/style.scss

(8)html/template/テンプレートコード/assets/scss/component/_1.2.typo.scss

(9)html/template/テンプレートコード/assets/scss/mixins/_forms.scss

(10)html/template/テンプレートコード/assets/scss/project/_11.2.header.scss
(11)html/template/テンプレートコード/assets/scss/project/_12.2.eyecatch.scss
(12)html/template/テンプレートコード/assets/scss/project/_12.6.newItem.scss
(13)html/template/テンプレートコード/assets/scss/project/_13.4.cartModal.scss
(14)html/template/テンプレートコード/assets/scss/project/_14.1.product.scss

EC-CUBE4.0.3カスタマイズ版を4.0.4へバージョンアップする方法

ご注意!

バージョンアップは、あくまでもご自身の責任で行ってください。
上手くいかない場合の原因を特定することはできませんので、こちらでは対応出来ませんし、責任も持てません。
必ずバックアップを取り、元に戻せる体制を整えてから、バージョンアップをお願いします。

ご自身でカスタマイズ編集されているファイルが、今回のバージョンアップファイルに含まれている場合、ファイルを上書きすると編集箇所がなくなってしまいます。
編集箇所をご確認の上、ファイル上書き後に、ご自身の編集箇所を追加するようにしてください。

続きを読む EC-CUBE4.0.3カスタマイズ版を4.0.4へバージョンアップする方法

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

1 EC-CUBE4.0.4では、データベースが変更されています。

(1)dtb_delivery_duration
(2)dtb_csv
(3)dtb_page

EC-CUBE4.0.3のデータベースに対して、次のSQLで変更することができます。

———————————
UPDATE dtb_delivery_duration SET duration = -1 WHERE id = 9 and duration = 0;
UPDATE dtb_csv SET disp_name = “出荷ID” WHERE id = 105;
UPDATE dtb_csv SET disp_name = “出荷ID” WHERE id = 176;
———————————

———————————
UPDATE dtb_page SET meta_tags = “<meta property=””og:type”” content=””og:product”” />
<meta property=””og:title”” content=””{{ Product.name }}”” />
<meta property=””og:image”” content=””{{ url(‘homepage’) }}{{ asset(Product.main_list_image|no_image_product, ‘save_image’) }}”” />
<meta property=””og:description”” content=””{{ Product.description_list|striptags }}”” />
<meta property=””og:url”” content=””{{ url(‘product_detail’, {‘id': Product.id}) }}”” />
<meta property=””product:price:amount”” content=””{{ Product.getPrice02IncTaxMin }}””/>
<meta property=””product:price:currency”” content=””{{ eccube_config.currency }}””/>
<meta property=””product:product_link”” content=””{{ url(‘product_detail’, {‘id': Product.id}) }}””/>
<meta property=””product:retailer_title”” content=””{{ Product.name }}””/>” WHERE id = 3;
———————————

※ 税率の初期値が10%に変更されていますが、既に運用されているため、データベースの税率を変更する必要はありません。

続きを読む EC-CUBE4.0.3→EC-CUBE4.0.4 バージョンアップファイルの一覧