熊本のウェブ制作会社のエンジニアのググる生活

地方のウェブ制作会社(元:佐賀・今:熊本)で働く、エンジニア。
HTML、CSS、JavaScript、PHP、Smary、Twig、EC-CUBE、WordPress、Movable Type 等でお仕事してます。
ググって解決した話や、自分で考えて分かったことなどを、自分用にメモとして残すブログです。

※URLがあったら元記事を参照推奨です!
※ほとんどの事は検証はしていますが、あくまでも参考程度にお願い致します!
※記載が不正確であったことにより生じたいかなる損害に関しても、当ブログは責任を負いかねます。自己責任でよろしくおねがいいたします。

4.0.3系での出来事。

オーナーズストアで購入済みのプラグインを、
プラグイン一覧からインストールした際に、

vendor/doctrine/common/lib/Doctrine/Common/Proxy/Autoloader.php on line 74

というエラーが・・・;


他は普通に動いているので、自分には荷が重すぎるエラーだなーって
ログを眺めてましたが、やっぱりプログラムを辿って原因を探って解決できる修正を施すのは難しそう。

まあとりあえずプラグイン一覧に再度アクセスすると、
ページ自体は閲覧可能で、なぜかインストールは出来ている模様・・・汗。

大丈夫なのかなぁーと思いつつ、物は試しと、有効化をクリックすると、
また同じエラーがでました。

なので、また改めてプラグイン一覧にアクセスすると、
有効化になっているので、とりあえずは良いみたい。不安すぎる。

ただ、プラグイン設定があるはずのプラグインなのに、
設定画面へ行ける歯車アイコンが出ていない状態に・・・。

やっぱり失敗しているのかと思って、一度無効化をし、再度有効化へ
すると歯車アイコンが表示されました・・・!

その後は設定画面や表の画面でのエラーは発生しなかったので、
大丈夫なんだと思います。

超軽量で単体で動作する素敵なスライダースクリプト siema
https://pawelgrzybek.github.io/siema/
というのを気に入ってて、最近頻繁に使用させていただいてます。

普通に使う分にはとてもいいんですが、
ひとつ困ったことに、Aタグを内包している場合、ドラッグでスライドするとリンクが発火してしまうことがあります;

issues でも議題に上がっていて、調整されておられます。
https://github.com/pawelgrzybek/siema/issues/71

サンプルを見ると、確かに対応が効いています。
が、Aタグの中に、imgタグが入っていると、それでもリンクが発生してしまいます ><;
↓のようなケース
<div class="siema">
    <div><a href="hoge.html"><img src="hoge.jpg" alt=""></a></div>
    <div><a href="hoge.html"><img src="hoge.jpg" alt=""></a></div>
    <div><a href="hoge.html"><img src="hoge.jpg" alt=""></a></div>
</div>


最初は JS 側での制御を考えましたが、
これがなかなか難しく、最後は諦めたのですが、、、。

img のマウスイベントを失くしてしまえば良いのでは?
と思い、↓のような CSS を当ててみたところ
.siema a img {
    pointer-events: none;
}


うまくいきました!👌

メモ書きです。
気が付いたら / 分かったことが増えたら、随時更新。

全般
  • config.php などはなくなったので .env or .htaccess にて環境設定値を書く。
  • APP_DEBUG=1 にして デバックバーを活用する
  • 編集したいページが出てきたら @Route("/url", name="url") を探す
  • とりあえずキャッシュをクリアする
  • <meta name="eccube-csrf-token" content="{{ csrf_token(constant('Eccube\\Common\\Constant::TOKEN_NAME')) }}"> は消さない
コマンドライン
  • キャッシュクリア
    php bin/console cache:clear --no-warmup
  • Proxy クラスを生成
    php bin/console eccube:generate:proxies
  • SQLのアップデート 確認(実行の前にまずはこれで確認を)
    php bin/console doctrine:schema:update --dump-sql
  • SQLのアップデート 実行
    php bin/console doctrine:schema:update --dump-sql --force
リンク href の貼り方
  • {{ url('homepage') }}
  • {{ url('product_list') }}?category_id=1
  • {{ url('product_detail', {'id': 1}) }}
  • {{ url(eccube_config.eccube_user_data_route, {'route': 'hoge'}) }}
画像の呼び出し
  • {{ asset('assets/img/hoge.jpg') }}
使ってみたいプラグイン
  • 【簡単ページ追加】taba app CMSプラグイン for EC-CUBE 4
    WordPress を入れることなく、カスタムフィールド感覚なことができちゃう凄そうなプラグイン。使い勝手がよさそうで、めっちゃ使ってみたい。予算が下りず試せてませんが、販売価格以上の価値があると思います!
Twig 上で完結できるお手軽カスタマイズ
Twig 小技
  • トップページだけタイトルを変える
    {% if title == "TOPページ" %}{{ BaseInfo.shop_name }}|トップページのタイトルにありがちな決まり文句などを書く{% else %}{% if subtitle is defined and subtitle is not empty %}{{ subtitle }} - {% elseif title is defined and title is not empty %}{{ title }} - {% endif %}{{ BaseInfo.shop_name }}{% endif %}
  • HTML を出力したい
    |raw を付ける
  • |trans とは
    定義済みの言葉を翻訳してくれる。
    日本向けだと活躍する機会はない。
  • if 分で定義済みかどうか
    {% if hoge is defined %}
  • 変数に値をセットする
    {% set hoge = '' %}
  • 置換をする
    {{ 'ほげほげ'|replace({'げ': ''}) }}
    {{ 'ほげほげ'|replace({'げ': '', 'ほ': 'お'}) }}
  • Twig 関数の間に文字列を出力する
    {{ asset('assets/img/hoge-' ~ id ~ '.jpg') }}
  • ログイン状態を判定する
    {% if is_granted('ROLE_USER') %}

SQL
  • 一括で何かする際、外部キー制約で実行できないことが多いので、
    先頭に
    SET FOREIGN_KEY_CHECKS = 0;
    後ろに
    SET FOREIGN_KEY_CHECKS = 1;
    を付けるとよい


Xserver にサーバーを借りている hoge.com の IP を知りたかったとする。
サーバーのコントロールパネルに、サーバーIP が書いてあります。
例えば 192.xxx.xxx.xx1 とあったとする。
ただしそれは 大元のIP ではないので、cron などで通信をした際に、
IP 制限があるサービスにはうまく繋がらない。

Xserver の場合 svXXXX.xserver.jp というドメインを持っているので、
その IP を調べる必要がある。

割と忘れるので、メモまで・・・。
でもコントロールパネルに書いてあるサーバーIP で OK だったりする
外部サービスもあるから、実装の違いなんでしょうか;

試したバージョン 4.0.3 です。
多分コマンドラインで出来るんだと思いますが、ちょっとわからないので; SQL でのやり方です。

EC-CUBE3 の 商品・カテゴリー・規格を初期化の SQL に、
4系では dtb_tag が増えたようです。
ついでにお知らせも初期のは不要なので、追加してみました。
さらに販売種別も初期のAとBは用途不明なので、一度初期化して、通常商品という名前で一つだけ登録するようにしました。
さらのさらに支払方法を代引きだけに、配送方法も通常配送だけに、税率を10%にしました。

下記の SQL を phpMyAdmin の SQL ウィンドウから実行すると、
商品・カテゴリー・規格・ニュースの初期入力が削除出来て、
ID1 から気持ちよく始めることができます。

うまくいかない場合は、「外部キーのチェックを有効にする」のチェックを外す必要があります。

SET FOREIGN_KEY_CHECKS=0;

TRUNCATE TABLE `dtb_category`;
ALTER TABLE `dtb_category` AUTO_INCREMENT = 1;

TRUNCATE TABLE `dtb_class_category`;
ALTER TABLE `dtb_class_category` AUTO_INCREMENT = 1;

TRUNCATE TABLE `dtb_class_name`;
ALTER TABLE `dtb_class_name` AUTO_INCREMENT = 1;

TRUNCATE TABLE `dtb_news`;
ALTER TABLE `dtb_news` AUTO_INCREMENT = 1;

TRUNCATE TABLE `dtb_product_category`;
ALTER TABLE `dtb_product_category` AUTO_INCREMENT = 1;

TRUNCATE TABLE `dtb_product_class`;
ALTER TABLE `dtb_product_class` AUTO_INCREMENT = 1;

TRUNCATE TABLE `dtb_product_image`;
ALTER TABLE `dtb_product_image` AUTO_INCREMENT = 1;

TRUNCATE TABLE `dtb_product_stock`;
ALTER TABLE `dtb_product_stock` AUTO_INCREMENT = 1;

TRUNCATE TABLE `dtb_product_tag`;
ALTER TABLE `dtb_product_tag` AUTO_INCREMENT = 1;

TRUNCATE TABLE `dtb_product`;
ALTER TABLE `dtb_product` AUTO_INCREMENT = 1;

TRUNCATE TABLE `dtb_tag`;
ALTER TABLE `dtb_tag` AUTO_INCREMENT = 1;

TRUNCATE TABLE `mtb_sale_type`;
ALTER TABLE `mtb_sale_type` AUTO_INCREMENT = 1;
INSERT INTO `mtb_sale_type` (`id`, `name`, `sort_no`, `discriminator_type`) VALUES ('1', '通常商品', '0', 'saletype');

TRUNCATE TABLE `dtb_delivery`;
ALTER TABLE `dtb_delivery` AUTO_INCREMENT = 1;
INSERT INTO `dtb_delivery` (`id`, `creator_id`, `sale_type_id`, `name`, `service_name`, `description`, `confirm_url`, `sort_no`, `visible`, `create_date`, `update_date`, `discriminator_type`) VALUES (NULL, NULL, '1', '通常配送', '通常配送', NULL, NULL, '1', '1', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'delivery');

TRUNCATE TABLE `dtb_delivery_fee`;
ALTER TABLE `dtb_delivery_fee` AUTO_INCREMENT = 1;
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '1', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '2', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '3', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '4', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '5', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '6', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '7', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '8', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '9', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '10', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '11', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '12', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '13', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '14', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '15', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '16', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '17', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '18', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '19', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '20', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '21', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '22', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '23', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '24', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '25', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '26', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '27', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '28', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '29', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '30', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '31', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '32', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '33', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '34', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '35', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '36', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '37', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '38', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '39', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '40', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '41', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '42', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '43', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '44', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '45', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '46', '1000', 'deliveryfee');
INSERT INTO `dtb_delivery_fee` (`id`, `delivery_id`, `pref_id`, `fee`, `discriminator_type`) VALUES (NULL, '1', '47', '1000', 'deliveryfee');

TRUNCATE TABLE `dtb_payment`;
ALTER TABLE `dtb_payment` AUTO_INCREMENT = 1;
INSERT INTO `dtb_payment` (`id`, `creator_id`, `payment_method`, `charge`, `rule_max`, `sort_no`, `fixed`, `payment_image`, `rule_min`, `method_class`, `visible`, `create_date`, `update_date`, `discriminator_type`) VALUES (NULL, NULL, '代金引換', '0.00', NULL, '1', '1', NULL, '0', 'Eccube\\Service\\Payment\\Method\\Cash', '1', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'payment');

TRUNCATE TABLE `dtb_payment_option`;
ALTER TABLE `dtb_payment_option` AUTO_INCREMENT = 1;
INSERT INTO `dtb_payment_option` (`delivery_id`, `payment_id`, `discriminator_type`) VALUES ('1', '1', 'paymentoption');

UPDATE `dtb_tax_rule` SET `tax_rate` = '10' WHERE `dtb_tax_rule`.`id` = 1;

SET FOREIGN_KEY_CHECKS=1;

SQL が問題なく処理された後、管理画面にて商品などが消えていることが確認できます。
ただし、商品管理>カテゴリ管理についてはキャッシュが残っているので、一覧が表示されてしまいます。
これは、コンテンツ管理>キャッシュ管理からキャッシュ削除を実行すると、消すことができます。


※実行の前にバックアップをとってください。
※ご利用については自己責任でお願いいたします。

4系で開発中にキャッシュ削除を試みると、
PHP の Fatal error が出てしまうことが頻発しました。

結論から言うと、
composer.lock を削除していたのが原因でした。

EC-CUBE の圧縮フォルダを解凍したときに、
無駄だと思うファイルは消すようにしているのですが、
それが仇となりました。

Xampp などのローカル環境やエックスサーバーなどのレンタルサーバーでは、
app/
bin/
html/
src/
var/
vendor/
.htaccess
composer.json
composer.lock
index.php
maintenance.php
robots.txt
以外は削除しても今のところ動いています。
(これで大丈夫なのかは検証中...)

ルートにファイルがたくさんあるとわからなくなるので、
なるべくすっきりさせたいところです。

ちなみに composer.json を削除すると、
キャッシュ削除しなくても Fatal error で閲覧することができなくなります。

ここ1~2年くらいは3系を使ってましたが、
4系もリリースされて1年が経過しました。
その間に様々なプラグインも出てきて、動作も安定しているということから、
ついに4系を使ったお仕事も始めました。
管理画面が格段に見やすくなっていて、とてもいいと思います!!
さらに URL から html が標準でなくなっており、素晴らしく進化しているのでうれしい限りです!

不満点をあげるなら、
・情報がまだ少ない(エラー解消に時間がかかる)
・私の環境(Windows10 × Xampp)ではキャッシュ削除後からの最初のページ表示が非常に遅いこと(30秒くらいかかる...)
などなどと言ったところでしょうか。

そして記事タイトルの twig 関数なども結構探す羽目になりました...。

3系はこうでしたが
{{ url(app.config.user_data_route, {'route': 'hoge'}) }}
↓↓↓

4系はこう!
{{ url(eccube_config.eccube_user_data_route, {'route': 'hoge'}) }}
地味に記述が長くなりましたが、
これで無事に新規追加ページ(user_data)にも twig 関数を使ってリンクを貼ることができました!

4系の公式ドキュメントにも書いていないので、ちょっと辛いですね。
下記のフォーラムの投稿に救われました!

will-change や transform なども試してみてもダメな場合、
position: fixed; が足を引っ張っている可能性があります。

position: fixed; の使用の頻度を減らすか、
必要ない場合は display: none; で隠すかなどの処理をすることで、
負荷が軽減して改善することがあります。

または、アニメーションさせている要素の親要素を
overflow: hidden; すると解決することも。

本記事は EC-CUBE 3.0.17 でお送りいたします。

まずは株式会社U-Mebiusさんのこちらの記事を真似してみると、カスタマイズの仕組みがわかりやすかったです!
EC-CUBE3カスタマイズ - 管理画面に新規ページとメニューを追加する方法
https://umebius.com/eccube/insert_new_page_and_menu_in_admin_panel/

以下は追加・編集したファイルのただのメモ書きです。

設定>基本情報設定>ショップマスターを模倣して、
設定>基本情報設定>〇〇設定を作ります。

〇〇設定の英字は hoge で想定します。

■新規で追加したファイル
/app/template/admin/Setting/Shop/hoge.twig
/src/Eccube/Controller/Admin/Setting/Shop/HogeController.php
/src/Eccube/Entity/Hoge.php
/src/Eccube/Form/Type/Admin/HogeType.php
/src/Eccube/Repository/HogeRepository.php
/src/Eccube/Resource/doctrine/Eccube.Entity.Hoge.dcm.yml

■既存で編集したファイル
/src/Eccube/ControllerProvider/AdminControllerProvider.php
/src/Eccube/Event/EccubeEvents.php
/src/Eccube/Resource/config/nav.yml.dist
/src/Eccube/Resource/locale/message.ja.yml
/src/Eccube/ServiceProvider/EccubeServiceProvider.php

■データベース
dtb_hoge を追加


ファイル数が多くて、よくわかっていないとごちゃごちゃして難しいです... (><)

今回はショップマスターを模倣したので、それに使われている、
BaseInfo, base_info, shop_master あたりを grep 検索しては、
真似して真似して・・・という感じで、
/app/log/admin_site_日付.log に書き出されるエラーログを見ながら、
カスタマイズしていく流れです。

無事にできると、非常に嬉しい、楽しい!

本番環境にある EC-CUBE3 の環境を、
新しく作る開発環境へコピーしてくる、私的メモです。

@本番環境
・データベースをエクスポート
・商品画像 upload/ をダウンロード
・(本体カスタマイズをしているなら) src/Eccube/ をダウンロード
・プラグイン app/Plugin/ をダウンロード
・テンプレート app/template/ をダウンロード
・設定ファイル app/config/eccube/config.yml の auth_magic をメモっておく

@新しい開発環境
・まずは普通に EC-CUBE3 をインストール
・ダウンロードしたモノを各所に上書き
・設定ファイル app/config/eccube/config.yml の auth_magic をメモったモノにする
・データベースのテーブルを一度すべて削除して、エクスポートしたデータをインポート
・オーナーズストア>テンプレートから使用するテンプレートに選択し、コンテンツ管理のキャッシュを削除を実行
↑↑ ここまででとりあえずは見れるようになると思います。

(プラグイン)
・有効化になっているものの、認識がされていない状態です。
・上でダウンロードしたモノが入っている状態で、何か一つのプラグインを無効化→有効化すると、一括で認識されて使える状態になります。
・クレジットカードのプラグインは削除しておいたがいいかなと思います。
↑↑ これでプラグインも対応できます。


これで問題なく動作いたしました。
あとは、設定のメールアドレスを変えたりなどをお忘れなく。

開発環境→本番環境でも基本は同じだと思うので積極的に楽していければと思います!


↓↓ 今度はこれを試してみたい!

ビルトインウェブサーバーで簡単環境構築

このページのトップヘ