EC-CUBE3 通常配達・店頭引取システム

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

  • 「通常配達」「店頭引取」のどちらかの機能のみを有効にすることも可能です。
  • 通常配達と店頭引取の機能を無効にすると、通常のEC-CUBEとして動作します。
  • 配達可能なエリアは郵便番号で登録します。
  • 機能が有効の場合、ユーザーはエリア外のお届け先を登録することはできません。
  • 配達日・引取日はカレンダーで選択します。受注停止日は選択できないようになります。
  • 受注停止日、受注開始日、受注停止時刻、カレンダーで選択できる表示期間などは管理画面で設定します。
  • 管理画面(受注管理)で、「通常配達」「店頭引取」を条件にして絞り込み検索ができます。
  • 受注CSV ダウンロード・配送CSV ダウンロードに追加されます。
  • 管理画面から受注登録が可能です。
  • 管理画面:マスターデータ管理で、「配達時間」「引取時間」を設定します。
  • ユーザーへのお知らせ手段として、ブロックとページが作成されます。ブロックとページには、管理画面の設定が自動的に反映されるので、特にtplファイルを編集する必要はありません。
  • 複数配送機能は無効にしなければいけません。

マニュアル(PDF)もご覧いただけます。

1 通常配達:ユーザーの購入の流れ

001

ショッピングカート画面で、配達で注文をクリックします。
ログイン中であれば、「ご注文内容のご確認」画面へ移動します。
ログイン中でなければ、ログイン画面が表示されます。

続きを読む EC-CUBE3 通常配達・店頭引取システム

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:デザインテンプレート適用の注意点