販売期間外の商品が、マイページ購入履歴の再注文からカートに入ってしまう不具合を修正しました。
具体的には、ショッピングカートに販売期間外の商品が入っている場合は、「レジに進む」のボタンが表示されないようにしました。
カテゴリー: EC-CUBE4
帳票PDFプラグイン:お買上げ明細の「単価」の税表示を税込み表示に統一する方法
現状、商品の「単価」は税抜き、手数料・送料は税込みで表示されています。
プラグインは、元々EC-CUBE4に実装されている帳票機能を拡張したものなので、この部分もそのまま引き継いでいるところです。
「単価」はデータベース「dtb_order_item」の「price」カラムが反映されています。
「price」カラムには、商品の場合は「税抜き」で、手数料・送料の場合は「税込み」で登録されるので、「単価」は、税込みなのか税抜きなのか、統一された表示にはなっていません。
そこで、商品の単価表示についてのみ、「price」カラムと「tax」カラムを足して「税込み」で表示させ、統一した表示(税込み表示)に修正します。
帳票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
【ご質問】
帳票の宛先を注文者とは別の宛名に変更することは可能ですか?
管理画面で操作することはできませんが、プラグインのファイルを修正すれば可能です。
帳票の印刷が完了したら、修正箇所は元に戻してください。
■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);
——————————————–
機能カスタマイズ版のアップデート後、カート追加モーダルが表示されない時
キャッシュ削除を行っても、規格ごとのカートボタンクリックで、カート追加モーダルが表示されない場合は、ブラウザのキャッシュが反映されている可能性があります。
次の方法を試してみてください。
(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プラグイン:帳票に「熨斗(のし)を配送別で指定するプラグイン」を反映する
■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→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%に変更されていますが、既に運用されているため、データベースの税率を変更する必要はありません。