EC-CUBE3 住所に項目を追加する方法

既存のプラグインを入れたり、
自作プラグインを作る方法が一番良いのですが
今回、訳あって直接ソースを修正することにしましたので
とても悪い例ですが備忘録。

※管理画面でのオーダー情報の変更は、今回使用していないのでデバッグしていません。
管理画面につきましては「大体動いているんじゃないかな?」程度の確認だけです。

 

ゴリゴリの住所の項目の追加の仕方

EC-CUBE3住所項目追加の仕組み

「addr02」という項目があるので、「addr03」という項目を作って、そこに必要な情報を入れ込みます。

なので、既存プログラムの「addr02」の内容が記述してある部分すべてに、直前のaddr02に関する内容をコピペして
addr03のソースを追加していきます。

・やってみて慣れてきたら「asddr03」という名前でなくて、適切うな名前にしてもOKですが、ありがちなところで「Country」の名前は使用できません

・今回は住所欄に3項目連続して表示させています。
場所とかプレースホルダーの変更方法は、2のプログラム一覧部分を修正をしていくと、大体の修正場所がわかるので対応してください。

 

 

ざっくりとした手順

  1. データベースにaddr03を追加
  2. プログラムの修正
  3. レイアウトの修正

 

 

1.データベースにaddr03を追加します

●MySQLを開いてSQLで次の6個のクエリを実行します

ALTER TABLE `dtb_order` ADD `order_addr03` LONGTEXT NULL ;
ALTER TABLE `dtb_shipping` ADD `shipping_addr03` LONGTEXT NULL ;
ALTER TABLE `dtb_base_info` ADD `addr03` LONGTEXT NULL ;
ALTER TABLE `dtb_help` ADD `law_addr03` LONGTEXT NULL ;
ALTER TABLE `dtb_customer` ADD `addr03` LONGTEXT NULL ;
ALTER TABLE `dtb_customer_address` ADD `addr03` LONGTEXT NULL ;

 

 

2.プログラムの修正

●次のソースの中の「addr02」と「Addr02」を検索して、その部分をコピペして「addr03」「Addr03」にしたものを貼り付けていきます。

・細かい内容は勘や適時修正をしてください
・配列などの場所は「,」の位置や「)」などに注意してください

\src\Eccube\Resource\doctrine\Eccube.Entity.BaseInfo.dcm.yml
\src\Eccube\Resource\doctrine\Eccube.Entity.Customer.dcm.yml
\src\Eccube\Resource\doctrine\Eccube.Entity.CustomerAddress.dcm.yml
\src\Eccube\Resource\doctrine\Eccube.Entity.Help.dcm.yml
\src\Eccube\Resource\doctrine\Eccube.Entity.Order.dcm.yml
\src\Eccube\Resource\doctrine\Eccube.Entity.Shipping.dcm.yml

\src\Eccube\Form\Type\AddressType.php
\src\Eccube\Form\Type\Admin\OrderType.php
\src\Eccube\Form\Type\Admin\ShippingType.php
\src\Eccube\Form\Type\Admin\TradelawType.php
\src\Eccube\Entity\BaseInfo.php
\src\Eccube\Entity\Customer.php
\src\Eccube\Entity\CustomerAddress.php
\src\Eccube\Entity\Help.php
\src\Eccube\Entity\Order.php
\src\Eccube\Entity\Shipping.php
\src\Eccube\Controller\ContactController.php
\src\Eccube\Controller\ShoppingController.php
\src\Eccube\Controller\Admin\Order\EditController.php
\src\Eccube\Controller\Admin\Customer\CustomerEditController.php

\src\Eccube\Service\ShoppingService.php

\html\template\default\js\eccube.js

\src\Eccube\Resource\config\constant.yml.dist
↑これは「address2_len: 60」の部分

\src\Eccube\Resource\template\default\Shopping\index.twig
\src\Eccube\Resource\template\default\Form\form_layout.twig
\src\Eccube\Resource\template\admin\Order\edit.twig
\src\Eccube\Resource\template\admin\Form\form_layout.twig
\src\Eccube\Resource\template\admin\Customer\edit.twig
\src\Eccube\Resource\template\admin\Setting\Shop\shop_master.twig
\src\Eccube\Resource\template\admin\Setting\Shop\tradelaw.twig
\src\Eccube\Resource\template\default\Mail\order.twig

※「src\Eccube\Resource\template」は「app」に入っていることがあるので、そちらを優先します。

 

 

3.レイアウトを修正します

管理画面からでも良いですし、ソースをいじっても良いのでtwigファイルのレイアウトを修正します。

ここでも「addr02」の場所を真似てやっていけばなんとかなります。

※「src\Eccube\Resource\template」は「app」に入っていることがあるので、そちらを優先します。

src\Eccube\Resource\template\default\Shopping\nonmember.twig
src\Eccube\Resource\template\default\Shopping\shipping.twig
src\Eccube\Resource\template\default\Shopping\shipping_edit.twig
src\Eccube\Resource\template\default\Shopping\shipping_multiple_edit.twig
src\Eccube\Resource\template\default\Mypage\change.twig
src\Eccube\Resource\template\default\Mypage\delivery.twig
src\Eccube\Resource\template\default\Mypage\delivery_edit.twig
src\Eccube\Resource\template\default\Mypage\history.twig
src\Eccube\Resource\template\default\Mail\contact_mail.twig
src\Eccube\Resource\template\default\Mail\order.twig
src\Eccube\Resource\template\default\Help\about.twig
src\Eccube\Resource\template\default\Help\tradelaw.twig
src\Eccube\Resource\template\default\Entry\confirm.twig
src\Eccube\Resource\template\default\Entry\index.twig
src\Eccube\Resource\template\default\Contact\index.twig
src\Eccube\Resource\template\admin\Setting\Shop\shop_master.twig
src\Eccube\Resource\template\admin\Setting\Shop\tradelaw.twig
src\Eccube\Resource\template\admin\Order\search_customer.twig
src\Eccube\Resource\template\admin\Mail\order.twig
src\Eccube\Resource\template\admin\Customer\edit.twig

 

 

4.キャッシュを削除します

何がどうつながっているのかわからないので、全部にチェックを入れてキャッシュを削除します。

 

 

 

5.実行してみる

なんでもそうですが、大体一発でうまくいきません。

エラーが出たら、デバッグモードにして場所を特定して修正をしてください。

EC-CUBE3 エラーの場所がわかりやすいデバッグモードにする方法 →

 

 

管理画面からの操作でエラーが出るなら

についてはコチラを参考にして関数名に気を付けてください。
EC-CUBE3 「NoSuchPropertyException~」エラーでツボった

 

今回こちらの「住所項目の追加」では関数に「_」を使用しなかったので引っかかりませんでしたが、もし「_」をつかった名前だったら引っかかるかもしれないので、管理画面からの操作でエラーになったら参考してください。

 

 

もし、住所項目追加プラグインを作るなら?

コチラに「会員情報の項目を追加する方法」のプラグインがわかりやすく載っています。

プラグインに慣れていないなら、こちらの情報も便利です。

プラグインジェネレータ

大きく注意したいポイントとしては、こちらは会員情報に項目を追加します。
住所項目の追加の場合は

会員情報ー会員の住所ー追加項目
    ー発送先住所1-追加項目
    ー発送先住所2-追加項目

となるので、リレーションを「customer_id」でなく
「dtb_customer_address」の「customer_address_id」に関連付けないといけないのが気を付けいないといけないポイントになります。

 

 

 

 

 

EC-CUBE3注文・問い合わせメールを返信でお客様のアドレスに

EC-CUBE3の注文メール、お問い合わせのメールはお客様に送る内容と同じものをBCCで管理人に送っているので、マスター情報に入れてある管理人メールアドレスに届いたメールに返信をしても自分のところに戻ってきてしまいます。

これを返信したときにお客様へのメールにすぐできるようにする方法です。

 

速習!返信メールカスタム場所

\src\Eccube\Service\MailService.php

開いてみるとわかる通りお客様宛メールはここで一括管理しています。
適当にいじれば何とかなります。

 

返信メール宛先変更詳細

この3件のメールを修正します。

・お問い合わせ受付メール送信開始
・受注メール送信開始
・受注管理通知メール送信開始

どれも、管理人に送られてきたメールの宛先をお客様のメアドにするので、管理人がメールを開いて返信をすることで簡単にお客様にメールを送ることができます。

 

全体での概要

上記3つ以外のところでもカスタマイズしたい場合はこちらを参考に

①各部分で

 ->setBcc($this->BaseInfo->getEma~~~

をコメントアウト

 

②直近の

$count = $this->app->mail($message);

の下に、直上の$messageをコピペして

->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()))
->setTo(array($Order->getEmail()))
->setBcc($this->BaseInfo->getEmail01())
->setReplyTo($this->BaseInfo->getEmail03())

 

Bcc項目を削除

 

③次の項目の内容を入れ替えます

->setFrom()
->setTo()
->setReplyTo(
->setReturnPath()

 

④その下に1行追加

$count = $this->app->mail($message);

 

お問い合わせ受付メール送信

log_info(‘お問い合わせ受付メール送信開始’);
の場所を探します

次のように書き換えます

// 問い合わせ者にメール送信
$message = \Swift_Message::newInstance()
->setSubject(‘[‘ . $this->BaseInfo->getShopName() . ‘] お問い合わせを受け付けました。’)
->setFrom(array($this->BaseInfo->getEmail02() => $this->BaseInfo->getShopName()))
->setTo(array($formData[‘email’]))
//->setBcc($this->BaseInfo->getEmail02())
->setReplyTo($this->BaseInfo->getEmail02())
->setReturnPath($this->BaseInfo->getEmail04())
->setBody($body);

$event = new EventArgs(
array(
‘message’ => $message,
‘formData’ => $formData,
‘BaseInfo’ => $this->BaseInfo,
),
null
);
$this->app[‘eccube.event.dispatcher’]->dispatch(EccubeEvents::MAIL_CONTACT, $event);

$count = $this->app->mail($message);

//ここが追加部分—————
$message = \Swift_Message::newInstance()
->setSubject(‘[‘ . $this->BaseInfo->getShopName() . ‘] お問い合わせを受け付けました。’)
->setFrom(array($formData[‘email’]))
->setTo($this->BaseInfo->getEmail02())
->setReplyTo(array($formData[‘email’]))
->setReturnPath($this->BaseInfo->getEmail04())
->setBody($body);

$count = $this->app->mail($message);
//—————–

log_info(‘お問い合わせ受付メール送信完了’, array(‘count’ => $count));

 

 

受注メール送信

お客様から注文が入ったときに管理人あてにくるメールです

$message = \Swift_Message::newInstance()
->setSubject(‘[‘ . $this->BaseInfo->getShopName() . ‘] ‘ . $MailTemplate->getSubject())
->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()))
->setTo(array($Order->getEmail()))
//->setBcc($this->BaseInfo->getEmail01())
->setReplyTo($this->BaseInfo->getEmail03())
->setReturnPath($this->BaseInfo->getEmail04())
->setBody($body);

$event = new EventArgs(
array(
‘message’ => $message,
‘Order’ => $Order,
‘MailTemplate’ => $MailTemplate,
‘BaseInfo’ => $this->BaseInfo,
),
null
);
$this->app[‘eccube.event.dispatcher’]->dispatch(EccubeEvents::MAIL_ORDER, $event);

$count = $this->app->mail($message);

//ここが追加部分—————
$message = \Swift_Message::newInstance()
->setSubject(‘[‘ . $this->BaseInfo->getShopName() . ‘] ‘ . $MailTemplate->getSubject())
->setFrom(array($Order->getEmail()))
->setTo($this->BaseInfo->getEmail01())
->setReplyTo(array($Order->getEmail()))
->setReturnPath($this->BaseInfo->getEmail04())
->setBody($body);

$count = $this->app->mail($message);
//—————–

log_info(‘受注メール送信完了’, array(‘count’ => $count));

 

 

 

受注管理通知メール送信

ここは管理画面からお客様へ「発送しましたよ」とか「注文を受付しましたよ」的なメールを送る際に使用する場所です。

$message = \Swift_Message::newInstance()
->setSubject(‘[‘ . $this->BaseInfo->getShopName() . ‘] ‘ . $formData[‘subject’])
->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()))
->setTo(array($Order->getEmail()))
//->setBcc($this->BaseInfo->getEmail01())
->setReplyTo($this->BaseInfo->getEmail03())
->setReturnPath($this->BaseInfo->getEmail04())
->setBody($body);

$event = new EventArgs(
array(
‘message’ => $message,
‘Order’ => $Order,
‘formData’ => $formData,
‘BaseInfo’ => $this->BaseInfo,
),
null
);
$this->app[‘eccube.event.dispatcher’]->dispatch(EccubeEvents::MAIL_ADMIN_ORDER, $event);

$count = $this->app->mail($message);

//追加するところ—————
$message = \Swift_Message::newInstance()
->setSubject(‘[‘ . $this->BaseInfo->getShopName() . ‘] ‘ . $formData[‘subject’])
->setFrom(array($Order->getEmail()))
->setTo($this->BaseInfo->getEmail01())
->setReplyTo(array($Order->getEmail()))
->setReturnPath($this->BaseInfo->getEmail04())
->setBody($body);

$count = $this->app->mail($message);

//—————–

log_info(‘受注管理通知メール送信完了’, array(‘count’ => $count));

 

 

 

注意点

ここで修正する全部のところに共通しますが

->setBcc(

をコメントアウトすることを忘れないように。
コメントアウトしないと、管理人までメールが来てしまいます。

 

EC-CUBE3会員登録関係を管理人にメールしない

会員登録関係でとっても便利な機能を持っているEC-CUBE3

でも、会員登録の認証メールとかも管理人に通知が来るのでとても邪魔です。会員登録は勝手にこっそりやってほしい場合のカスタマイズです。あと、お客様に送った通知メールも管理人に来てややこしくなるのでSTOPさせます。

速習!動作概要

\src\Eccube\Service\MailService.php

ここでBCCで管理人にメールを送っているので修正すればOK

全体でメールのタイトルや、Bccを他に追加したいときもここをいじるとOKです。

 

会員登録系メールを管理人に送らないする方法

この4つが該当します。
・仮会員登録メール
・会員登録完了メール
・退会手続き完了メール
・仮会員登録再送メール

\src\Eccube\Service\MailService.php
ここでログを履きさす部分に上記の4項目が書いてあるので検索してその場所を特定します。

その付近にある

 ->setBcc($this->BaseInfo->getEmail01())

をコメントアウト

 

 

エディタは「Terapad」を使用しています。
デフォルトでこんな感じに色がつくからわかりやすくて便利です

EC-CUBE3下書きサイトから本番サイトへ移動するポイント

 

いきなり本番のURLで作りこむ猛者はいないと思います。
とりあえずどこか適当なURLで作ってから、本番へ移行ということが多いので、
その時の引っ越しのポイントです。

 

普通は簡単にできる

普通だと

  1. データベースの移動
  2. ファイル全てを移動
  3. app/config/eccubeフォルダの中を新しい環境に変える
    (データベースとかパスを新しい環境に変更する)

という感じだけ動くのですが、

それでもなぜか動かない場合の方法の一例です。

 

引越しでのハマりやすいポイント

app/config/eccube/path.yml
を修正するときに、上の方の「tpl」下の方の「admin_urlpath」あたりが、下書きサイトが第二階層で引越しサイトが第一階層だと、文字の変換でうまくいかないので手作業で確認と修正が注意が必要です。
とくにCSSがうまく読み込めていないなどはココが影響します。

良くわからない場合は、一度EC-CUBEをインストして、自動生成されたpath.ymlを参考にしてください。

 

よくあるEC-CUBE3の引越しの失敗

  • 下書きサイトから本番サイトに移動したときログインできない
  • ログイン画面が表示されない
  • なんだかわからないけど動かない

 

下書きサイトの準備のポイント

httpsサイトの場合の注意

もし本番サイトがhttpsサイトの場合には
下書きサイト自体でhttps環境で作り
 システム設定 > セキュリティ管理 > サイトセキュリティ設定で
 □SSLを強制にチェックを入れて作っておく。

次項目で「3.本番環境に自動インストール」の後にログインして
同じように□SSLを強制にしておくとスムーズに以降できます。

(ロリポップだと無料で独自ドメインをsslにできるので便利!)

 

phpバージョンなどの注意

phpバージョンやCGI版・モジュール版などは同じものにしておいた方が良いです。
というよりも私だったら「絶対に同じにしておく!」
同じような環境が準備できない場合には本番サイト下層もしくはマルチドメインで同じサーバーに作ると安心です。

 

EC-CUBE3引越し方法

下書きサイトのデータをFTPですべてダウンロード

  1. 下書きサイトのデータベースを次の3つを抜かしてエクスポート
    mtb_authority
    mtb_work
    dtb_menber
    このとき「詳細」「Add DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT statement」でダウンロード
  2. 本番環境にEC-CUBE3をインストール
  3. ダウンロードした\app\config\以外のファイルを上書きUPロード
  4. 本番サイトのデータベースで上記3テーブル以外を削除
  5. 下書きサイトのデータベースをアップロード

 

外国向けECサイトはMagento2かEC-CUBE3か?

【このページは時短ページ】要点は緑色の太文字だけ読めばわかると思います

 

今までは外国向けECサイトをhtmlでやっていた老舗の会社から
「ショッピングカートと会員登録とメルマガが機能がほしい」
と言われてEC系のCMSを導入することになりました。

そこで候補として挙がったのが
「外国産で外国では超有名な安心のMagento2」

「国産で日本では有名だけど外国は微妙なEC-CUBE3」

 

実際に導入する際の比較検討です。
もし悩んでいる方がいましたら参考にしてください。

結局Magento2とEC-CUBE3どっちを選んだか

EC-CUBE3を選びました。
理由はレンタルサーバーを使用しているので、Magento2を使えるほどのスペックがなかったからです。
サーバーのスペックが許されればmagento2を使いたかったです。

サーバーの機能不足でMagento2は使えない

「Magento2をインストールする際に最低でも512MB欲しい」
一時だけPHPのメモリを増やしたいんですが…って問い合わせたら
大変丁寧に「ダメ」って言われました^^;

それと「imagemagick」を使用しているので、このあたりもチェックポイントになります。

  • レンタルサーバーではXサーバーはなんとか動かせるような感じのことが書いてありました
    XサーバーMagento2インストール(公式)

  • ロリポップは不可(imagemagick有りだけどメモリ足りず)
  • さくらはVPSなら可能

この3つのサーバーってナウでヤングなので好きです。
新しい機能とかガンガン取り入れるからいいですよ。
古いところだとPHPもMySQLも古いし、機能少ないし、問い合わせてもトンチンカンな返事が来たりとか多いので…

実際、高スペックなVPSで動かすならMagento2のが良いと思います。

 

Magento1を使えばいいじゃん!

Magento2の容量がすさまじいので断念しましたが、Magento1ならレンタルサーバーでも十分動きます。
でもphp5.5までの環境でしか動かないので、新しくサイトを作る場合にphp5.5で使わせてくれるサーバーなんてないのでダメでした。
一応php5.6で動くとは言われていますが、Magento1は2016年以降プラグイン系が一切動かないので使えないと断言できます。

 

 

翻訳の手間はMagento2推し

Magento2の場合は英語→日本語に
EC-CUBE3の場合日本語→英語に
どちらも同じような手作業で翻訳する必要があります。

実際、どっちが楽かというと「英語→日本語」の方が楽です。

片言の英語が読めたり、Google翻訳を使えばニュアンスがわかるのでネイティヴな日本語で翻訳することができます!

 

あと、デザインや操作なども世界向けなのでMagento2のが安心です。
特に電話番号や郵便番号はEC-CUBE3では国内向けガチガチなので、結構カスタマイズしないと使えません。
電話番号が+の国番号から始またったり、名前にスペースが入ったり、住所の長さや書き方などは世界標準に合っている方が便利です。

それに「英語→日本語」だと、ちょっとくらい英語が残ってても大丈夫。逆にカッコいいじゃん?

 

 

ノウハウの多さはどっちもどっち

フォーラムや改造テクで日本語が多いのがEC-CUBE3。

でも世界的にみると使用している人数が少ないので、Magento2の方が情報は沢山あります!しかし全部英語です!
でもカタコトの英語ができればなんとかなるレベルです。

日本公式さんも頑張って欲しいところです…

 

 

EC-CUBE3で作って思った点

根性入れればなんとかなります。
一応軽くですが越境EC-CUBE3変更した点をまとめましたのでご参考に。
あと、「ファイルの中を探すツールの作り方」も公開しているので、これを使えばどこのファイルを修正すればいいかわかるので作っておいた方がいいと思います。

 

 

EC-CUBE3で外国向けサイトを作る最低限の変更箇所

越境ECサイト…日本以外の外国向けの通販サイトを検討していて、EC-CUBE3を使用する場合に、最低限変更をしたポイントです。

 

越境EC-CUBE3制作公式

お金がたくさんあるのならプロに頼みましょう!

こちらは自力で頑張る人向けのゴリゴリ系カスタマイズです。

 

このサイトは英語サイトという通知の設定

言語設定/src/Eccube/Resource/template/default/default_frame.twig

  1. <html lang=”ja”>の lang=”ja” を削除
  2. <head>の下に<meta http-equiv=”Content-Language” content=”en”>を追加
    英語だったらenです。他の国だったらほかの文字になります。
    一覧は「meta Content-Language」でググると出てきます。

 

外国では使われない入力項目の対応

郵便番号は使わないし、カナも使いません。
電話番号も名前の入力も変えないとです。

郵便番号〒と都道府県項目の削除

都道府県はどうしても消すことができない項目なので2通りの方法があります。
1つは、送料計算で使用しているので、発送する場所すべての国や地域を都道府県ではなく国やエリア名にする方法
もう1つは使用しない方法…送料無料にし空文字を入れて実質無効化する方法。

私の場合は、どの国から来るのかわからないので後者を使用しています。

 

mdb_prefを削除したり適当にやったら送料計算のところで動かなくなっちゃいました。
奥の方まで直すのも面倒なので、一番最初の項目を” “(半角スペース)にして住所の確認などの画面や自動メールで表示させないようにします。
さらにユーザーが入力するフォームでは「都道府県」項目を非表示にしつつ、Javascriptで強制的に最初の” ”を選択しておきます。

世界を相手にするには送料は自動計算できないくらいの情報量になるので送料無料または固定にするのがベストです。

 

①「自作プラグイン」もしくは「src\Eccube\Form\Type\**.php」の部分で必須を外す

・ファイルを直す場合

src\Eccube\Form\Type\**.php

        ->add(‘zip’, ‘zip’, array(
            ‘required’ => false  <========この行をを追加
        ));

 

 

プラグイン初心者(EC-CUBE3初心者)でもできたのでオススメです!
・自作プラグインの場合にはこちらを参照
 https://a-zumi.net/eccube3-custom-entry/
【EC-CUBE3】会員登録フォームの電話番号を必須項目から除外する方法)

3ファイルを作成したらフォルダ情報を含まずtar.gzで圧縮し管理画面の「オーナーズストア」「プラグイン」「プラグイン一覧」からアップロードして「有効」で使えるようになります。

 

②マスターデータ管理「mtb_pref」でID1のNameを半角スペースに(半角スペースがダメならDBを直接編集

③全ての表示を行っているページでcssを使って非表示****部分は各ページごとに違うので注意

<style type=”text/css”>
<!–
#****__quantity { display:none !important; }
–>
</style>

④javaでprefの1を強制選択&非表示
<script>
   document.getElementById(“pref”).value = “1”;   
 document.getElementById(“pref”).style.display = “none”;
</script>

 

カナなどを削除

〒の場合③と同様にCSSで非表示

<style type=”text/css”>
<!–
#*****__kana { display:none !important; }
–>
</style>

 

文章の翻訳

管理画面からの翻訳

内容の日本語部分をすべて英語にする・会社案内関係などもすべて翻訳
特に重要だったき気づきにくい点はこちらです。

  • コンテンツ管理 -> ページ管理 -> 「ページ名」「ページ名」
  • コンテンツ管理 -> ブロック管理 -> 「ページ名」「ブロック名」
  • ショップ設定 -> メール管理 -> メールテンプレート編集
  • マスターデータ mtb_order_status
  • マスターデータ mtb_custmer_order_status
  • 利用規約は管理画面から行わないでデータベースを直接編集(詳しくは次のリスト内)

「ページ名」「ブロック名」を変えないとサイトのソースを見たときに日本語が残っちゃうのと、ページの対突が日本語になるので忘れないように。
基本的にはファイル名と同じで大丈夫です。

 

FTPで直接ファイルを編集しないといけないものリスト

管理画面で変更できるのはほんの一部分なので、特に「~確認」ページやメッセージアFTPでファイルを直接いじります。

 

【重要なポイント】twigファイルは基本的に「app/template」以降のファイルを修正もし「app/template」以降に無かったら「src/Eccube/Resource/template/」にあるので修正

 

  • お問い合わせ確認
    src/Eccube/Resource/template/default/Contact/confirm.twig
  • お問い合わせ完了
    src/Eccube/Resource/template/default/Contact/complete.twig
  • 非会員購入確認
    src/Eccube/Resource/template/default/Shopping/index.twig
  • 非会員購入完了
    src/Eccube/Resource/template/default/Shopping/complete.twig
  • 「必須」を*に
    src/Eccube/Resource/template/default/Form/form_layout.twig
  • メッセージとか(修正後にキャッシュクリア)src/Eccube/Resource/locale/message.ja.yml
  • 公式メールマガジンプラグイン

    ※「公式メールマガジンプラグイン(無料)」を導入済みで運営しています。

    app/Plugin/MailMagazine/Resource/template/entry_add_mailmaga.twig
    app/Plugin/MailMagazine/Form/Extension/EntryMailMagazineTypeExtension.php
    app/Plugin/MailMagazine/Form/Extension/CustomerMailMagazineTypeExtension.php

  • 会員登録のパスワード「半角英数字~」の部分src/Eccube/Form/Type/RepeatedPasswordType.php
  • エラーメッセージ(修正後にキャッシュクリア)vendor/symfony/validator/Resources/translations/validators.ja.xlf
  • 会員登録確認
    src/Eccube/Resource/template/default/Entry/confirm.twig
  • 会員登録のメニューバー(ナビバー)src/Eccube/Resource/template/default/Mypage/navi.twig
  • 会員登録->退会確認src/Eccube/Resource/template/default/Mypage/withdraw_confirm.twig
  • 住所を削除したときの「削除してよろしいですか?」
    /trialsite/design_eng/html/template/default/js/function.js
  • 404
    src/Eccube/Application.phpsrc/Eccube/Resource/template/default/error.twig
  • メール
    src/Eccube/Resource/template/default/Mail/contact_mail.twig
    src/Eccube/Resource/template/default/Mail/order.twig
    src/Eccube/Resource/template/default/Mail/customer_withdraw_mail.twig
    src/Eccube/Resource/template/default/Mail/entry_complete.twig
    src/Eccube/Resource/template/default/Mail/entry_confirm.twig
    src/Eccube/Resource/template/default/Mail/forgot_mail.twig
    src/Eccube/Resource/template/default/Mail/reset_complete_mail.twig
    src/Eccube/Service/MailService.php
  • ユーザー登録で「既に利用されているメールアドレスです」のエラーメッセージ
    src/Eccube/Entity/Customer.php
  • 利用規約
    app/template/default/Help/agreement.twig
  • 利用規約の内容
    管理メニューから全部英語を入れるとエラーになるのでデータベースを直接たたきます
    dtb_help
  • 外国には「特定商」がないので、TOPとかにリンクがあったらリンクを消す
  • ページの次へ、前へ
    \src\Eccube\Resource\template\admin\pager.twig
    \src\Eccube\Resource\template\default\pagination.twig
  • 商品一覧のソートの件数「5件」の件部分
    mtb_product_list_max

 

 

動作の調整

名前、住所、電話の長さを大きくする

名前で一番長いのは30文字と言われていますが、ほかのサイトでもそんなに長いものは対応していないと思うので20文字くらい。
住所は1行あたり40文字くらい。
電話は1項目あたり10文字。[10文字]-[10文字]-[10文字]
で良いかと思います、国によって適時対応してください。

src/Eccube/Resource/config/constant.yml.dist

電話番号に記号入力可能にする

電話の国番号に+の文字が入るのと、中間にスペースや-、()を入れる人がいるため

src/Eccube/Form/Type/TelType.php’numeric’を’string’にする

 

名前にスペースを入力可能にする

Jr. とか書いちゃう人やスペースが入る人もいたりするので記号OKにしておく

src/Eccube/Form/Type/NameType.php
‘pattern’周辺の
new~あたりの設定を全て削除
(4行くらい? name01とname02の両方対応)

 

 

電話番号の項目を大きく

現在のままだと入力する場所のサイズが小さいので大きく。

html/template/default/css/style.css

.input_tel{
のmax-width:5emを値を大きく

 

 

入力エラーのポップアップメッセージ

会員登録などで何も入力しないで、いきなり次へボタンを押すとでる小さなメッセージはブラウザなので勝手に現地の言葉になるので対応しなくてOK

確認したい場合は使用しているブラウザの言語設定を変更してメッセージの確認ができます。

 

 

 

手入力でできる国名などの追加

元々は「Country」でいくつかのドロップダウンリストの項目があるのですが
「発送においてはも手入力をしてもらった方が確実」と、クライアントからの要望がきましたので、参考までに…

なので住所にCountryの項目を作ります。

コチラを参考にして入れ込んでください。

EC-CUBE3 住所に項目を追加する方法 ⇒