ECCUBE4はメール周りもカスタマイズしなければいけません。
はじめに
ECCUBE4では基本的に以下の内容はデフォルトではできません。
- 入金があった場合の連絡
- 送料などを変更した場合の注文確定メール
- キャンセルなどを承った際のメール
- 二個口以上の商品の発送のメール
思いついただけでも、これは出来ません。
また、上記カスタマイズをなんちゃらパートナーに依頼すると数十万円くらいは請求されるので覚悟してくださいw
注意事項
私の使用しているバージョンは4.0.5です。
サーバーはXサーバーを利用しています。
今回やりたい事
ECCUBE4のメール周りのカスタマイズをするにあたって以下の内容をしていきます。
- メールテンプレートを増やす
- 顧客情報から登録したメールテンプレートを全て選びたい
そうなんです。
デフォルトだと、メールテンプレートすら選ぶ事が出来ないのですw
カスタマイズ方法
Xサーバーでデータベース→phpmyadminをクリックしてログインします。
「dtb_mail_template」をクリックします
今回はご注文確定メールを作成するので、ベースとなる注文受付メールをコピーします。
コピーした情報を任意の情報に書き換え、実行します。
name | 注文確定メール(任意の名前) |
---|---|
file_name | Mail/order2.twig(任意のファイル名) |
mail_subject | ご注文が確定しました(メールのタイトル部分) |
discriminator_type | mailtemplate |
idが9で新しく登録されました。
次は先ほどデータベースに登録した「twig」ファイルをアップします。
order.twigをカスタマイズしていくので、まずはこのファイルを落とします。
/src/Eccube/Resource/template/default/Mail/
の中にあります。
order.twigをorder2.twigにリネームします。
そして、先ほどと同じ箇所に上げておきます。
次はPHPの修正です。
/src/Eccube/Form/Type/Admin/OrderMailType.php
を修正していきます。
55と56行目をコメントアウトします。
->andWhere('mt.id = :id') ->setParameter('id', $this->eccubeConfig['eccube_order_mail_template_id'])
こんな感じでOKです。
/* ->andWhere('mt.id = :id') ->setParameter('id', $this->eccubeConfig['eccube_order_mail_template_id']) */
「twig」ファイルをいじったので、キャッシュを削除しておきます。
メール設定→テンプレート編集を見ると、先ほど追加された「注文確定メール」が追加されています。
そして、クライアントのメール送信から先ほどと同じ画面を見ると、このようにメールテンプレートに登録している情報が全て出てくるようになりました。
ただ、会員登録関係のメールやパスワード関係など、必要のない情報も出てきているので長期的にみると、必要な物だけ出す形がベストでしょう。
$ids = array(1,8,9);//ここでメールテンプレートIDを指定 $qb = $er->createQueryBuilder('mt'); $qb->andWhere($qb->expr()->in('mt.id', ':ids')) ->setParameter('ids', $ids) ->orderBy('mt.name', 'ASC'); return $qb;
最初のidsで必要なメールテンプレートのIDを指定するので、増やせばここの数字も増やして行くイメージです。
すると、このようにスッキリになりました。
以上でECCUBE4でメールテンプレートを増やす方法の説明を終了致します。
さいごに
ECCUBEは利用者の事をあまり考えていない
ECCUBE2系から4系に移行しましたが、相変わらずデフォルトの状態では使いづらいと言うか、利用者がECCUBEに合わせないといけないって状況が当たり前って感じですね。