EC-CUBE3のデバッグモードが利用できないとき

EC-CUBE3のデバッグには、index_dev.phpを利用します。
index_dev.phpに自身の接続IPアドレス(123.123.123.123)を下記のように記述し、

http://EC-CUBE3のURL/index_dev.phpでアクセスします。

$allow = array(
 '127.0.0.1',
 'fe80::1',
 '::1',
 '123.123.123.123',
);

ところが、サーバ(Xサーバーで確認)によっては、下記メッセージが表示され、動作しない場合があります。
Youare not allowed to access this file. Check index_dev.php for more information.

そこで、index_dev.phpの37行目付近を下記のように変更して対応します。

if (isset($_SERVER['HTTP_CLIENT_IP'])
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|| !in_array(@$_SERVER['REMOTE_ADDR'], $allow)
) {
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}

↓【変更】

$IP = '123.123.123.123';
if ($IP != $_SERVER["REMOTE_ADDR"]) {
if (isset($_SERVER['HTTP_CLIENT_IP'])
|| isset($_SERVER['HTTP_X_FORWARDED_FOR'])
|| !in_array(@$_SERVER['REMOTE_ADDR'], $allow)
) {
header('HTTP/1.0 403 Forbidden');
exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.'.'<br />'.$_SERVER['REMOTE_ADDR']);
}
}

(1)IPアドレスの設定
↓自身の接続IPアドレス
$IP = ‘123.123.123.123‘;

(2).'<br />’.$_SERVER[‘REMOTE_ADDR’]
これは、必ずしも必要ではありません。
これを追加しておくと、IPアドレスが設定されていない場合や正しくない場合に、下記のように現在のIPアドレスが表示されるので便利です。
————————————-
Youare not allowed to access this file. Check index_dev.php for more information.
123.123.123.123
————————————-

 

EC-CUBE3:GoogleMapのAPIキーを管理画面で登録できるようにする方法

GoogleMapの表示においてAPIキーが必須になったため、以下の方法で、
基本情報設定>ショップマスターの地図設定欄にAPIキーの入力ボックスを追加します。
APIキーを入力しないと、「当サイトについて」の地図は表示されません。

api

続きを読む EC-CUBE3:GoogleMapのAPIキーを管理画面で登録できるようにする方法

EC-CUBE3系:GoogleMapが正常に表示されなくなった場合の対処法

EC-CUBE3系

「Google Maps API」→「Google Maps Platform」へのアップデートに伴い以下のように変更になりました。
Google Maps APIは、Webサイトの開発者がAPIキーを発行していなくても利用できましたが、Google Maps PlatformではAPIキーの利用が必須になります。
そのためAPIキーを取得していないと、サイトに埋め込んだGoogle Mapsが正常に表示されない場合があります。

▼修正方法
(1)GoogleMap APIを取得します。
取得方法は「googlemap api 取得」等で検索してください。

(2)下記のAPIキーのコードをファイルに追記してください。
key=***********************************&
赤色がAPIキーです。

■src/Eccube/Resource/template/default/Help/about.twig
■app/template/default/Help/about.twig(生成されている場合)

27行目付近にコードを追加

<script src="//maps.googleapis.com/maps/api/js?sensor=false">

<script src="//maps.googleapis.com/maps/api/js?key=***********************************&sensor=false">

 

 

 

EC-CUBE2系:GoogleMapが正常に表示されなくなった場合の対処法

EC-CUBE2系

「Google Maps API」→「Google Maps Platform」へのアップデートに伴い以下のように変更になりました。
Google Maps APIは、Webサイトの開発者がAPIキーを発行していなくても利用できましたが、Google Maps PlatformではAPIキーの利用が必須になります。
そのためAPIキーを取得していないと、サイトに埋め込んだGoogle Mapsが正常に表示されない場合があります。

▼修正方法
(1)GoogleMap APIを取得します。
取得方法は「googlemap api 取得」等で検索してください。

(2)下記のAPIキーのコードをファイルに追記してください。

key=***********************************&
赤色がAPIキーです。

■data/Smarty/templates/default/site_frame.tpl(フロントページ)
■data/Smarty/templates/admin/main_frame.tpl(管理画面)

<!--{if ($smarty.server.HTTPS != "") && ($smarty.server.HTTPS != "off")}-->
<script type="text/javascript" src="https://maps-api-ssl.google.com/maps/api/js?sensor=false"></script>
<!--{else}-->
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<!--{/if}-->

<!--{if ($smarty.server.HTTPS != "") && ($smarty.server.HTTPS != "off")}-->
<script type="text/javascript" src="https://maps-api-ssl.google.com/maps/api/js?key=***********************************&sensor=false"></script>
<!--{else}-->
<script type="text/javascript" src="http://maps.google.com/maps/api/js?key=***********************************&sensor=false"></script>
<!--{/if}-->

 

 

 

EC-CUBE3機能カスタマイズ版:Google Maps API を管理画面で入力する

GoogleMapの表示においてAPIキーが必須になったため、基本情報設定>ショップマスターの地図設定欄にAPIキーの入力ボックスを追加しました。
APIキーを入力しないと、「当サイトについて」の地図は表示されません。
また、商品詳細ページで「関連する地図」を表示している場合も、APIキーを入力しないと表示されません。

api

 

機能カスタマイズ版の3.0.15→3.0.16バージョンアップ手順

ご購入されたカスタマイズ版のファイルに対して、ご自身で編集等を行っていない場合は提供ファイルをそのまま上書きされて構いません。
ご自身で編集等を行っている場合は、EC-CUBE3:3.0.15→3.0.16バージョンアップファイルの一覧をご覧いただき、現行ファイルに修正箇所を追加してください。

バージョンアップファイルは次の通りです。

■composer.json
■composer.lock
■src/Eccube/Common/Constant.php
■src/Eccube/Controller/EntryController.php
■src/Eccube/Controller/ShoppingController.php

■vendor
現行サイトのvendorを新しいvendorと入れ換えます。
(現在のvendorを削除。新しいvendorを追加。)

下記ファイルは今回のバージョンアップ対象となっていますが、C3015D1801Aで既に修正済みです。(修正は不要)
■html/index_dev.php
■src/Eccube/Resource/template/default/Cart/index.twig

 

EC-CUBE3:3.0.15→3.0.16バージョンアップファイルの一覧

バージョンアップファイル

■composer.json
■composer.lock
■html/index_dev.php
■src/Eccube/Common/Constant.php
■src/Eccube/Controller/EntryController.php
■src/Eccube/Controller/ShoppingController.php
■src/Eccube/Resource/template/default/Cart/index.twig

■vendor
現行サイトのvendorを新しいvendorと入れ換えます。
(現在のvendorを削除。新しいvendorを追加。)

変更内容の詳細

(1)■composer.json

"jbinfo/mobile-detect-service-provider": "^1.1"

↓【変更】

"jbinfo/mobile-detect-service-provider": "^1.1",
"twig/twig": "1.34.0"

(2)■composer.lock

"content-hash": "af98124cf4b7cec648749ee9458755e0",

↓【変更】

"content-hash": "1521d13d394252d880141feb52a50f78",

(3)■html/index_dev.php

'::1',
'',

↓【変更】

'::1',

(4)■src/Eccube/Common/Constant.php

const VERSION = '3.0.15';

↓【変更】

const VERSION = '3.0.16';

(5)■src/Eccube/Controller/EntryController.php

210行目付近、$this->getSecurity($app)->setToken($token); の次に追加

$request->getSession()->migrate(true, $app['config']['cookie_lifetime']);

(6)■src/Eccube/Controller/ShoppingController.php

① use Eccube\Entity\CustomerAddress; の次に追加

use Eccube\Entity\Order;

② public function confirm( )内、「// お問い合わせ、配送時間などのフォーム項目をセット」の前に追加

// 支払方法を検証
$this->checkPaymentType($Order, $data);

③ public function confirm( ){ }の次に追加

/**
* 支払方法がOrderに保持している支払方法と一致することを確認する
*
* @param $Order Order
* @param $data array
* @throws \Eccube\Exception\ShoppingException
*/
private function checkPaymentType($Order, $data)
{
$orderPaymentId = $Order->getPayment()->getId();
$formPaymentId = $data['payment']->getId();

if (empty($orderPaymentId) || empty($formPaymentId)) {
throw new ShoppingException('front.shopping.system.error');
}
if ($orderPaymentId != $formPaymentId) {
throw new ShoppingException('front.shopping.system.error');
}
}

(7)■src/Eccube/Resource/template/default/Cart/index.twig

最後の</div>が削除されている。

(8)■vendor
現行サイトのvendorを新しいvendorと入れ換えます。
(現在のvendorを削除。新しいvendorを追加。)

EC-CUBE3:No.030_会員が退会する際に退会理由を入力する

このカスタマイズを現行サイトへ実装したい方はこちら

カスタマイズ内容

▼マイページ
・会員がマイページの「退会手続き」をクリックすると、退会理由入力ページへのリンクボタンが表示されます。
・退会理由を入力して登録すると、退会手続き画面に切り替わり、通常の手続きへ進むことが出来ます。
・退会理由が入力されていない場合は、通常の「会員退会手続きへ」ボタンは表示されないので手続きに進むことは出来ません。
▼管理画面
・「会員マスター」画面の左上「退会した会員を検索する」をクリックします。
・退会会員検索画面が開くので「検索する」ボタンをクリックします。
・退会した会員の一覧で会員名をクリックすると詳細画面が開き、そこで「退会理由」を確認することができます。
▼退会理由の登録
・退会理由はデータベースの会員情報(dtb_customer)に登録されます。
・管理画面・マイページの会員情報には通常「退会理由」は表示されませんが、「退会理由」が入力・登録されている場合は表示されます。

「退会手続き」をクリックすると、退会理由入力ページへのリンクボタンが表示される

001

続きを読む EC-CUBE3:No.030_会員が退会する際に退会理由を入力する

EC-CUBE3:デザインテンプレート適用の注意点

プラグイン等を導入した運用中のサイトに対して、デザインテンプレートを適用する際の注意点です。

デザインテンプレートの適用

(1)オーナーズストア>テンプレート>アップロード
テンプレートコード:任意(半角英数字)フォルダ名になります。
テンプレート名:任意
テンプレートファイル:拡張子.tar.gzのファイルを選択

002

 

続きを読む EC-CUBE3:デザインテンプレート適用の注意点

EC-CUBE:No.029 MYページの会員情報変更時にメールで通知

このカスタマイズを現行サイトへ実装したい方はこちら

カスタマイズ内容

・マイページの会員情報編集で登録内容が変更されると、管理者と会員にメールで通知されます。
・変更通知の対象となるのは、下記EC-CUBEオリジナルの項目です。変更された項目のみが通知されます。
お名前、フリガナ、会社名、住所、電話番号、FAX、メールアドレス、性別、職業、生年月日、メールマガジン送付
・「パスワード」と「パスワードを忘れた時のヒント」については変更されても通知されません。
フォームでの入力情報と暗号化されて登録されたデータベース情報は常に異なります。両者を比較したとき、常に変更されたものと判断され、再登録のたびに通知が送信されてしまうからです。
・会員情報が変更されずに再登録された場合は通知されません。

MYページで会員情報を変更する

001

管理者とユーザに変更のメールが送信される

002