ノラプログラマーの技術メモ

ネットで調べても出てこなかった情報を載せていきたい技術系ブログ。

ECCUBE2系で発送完了メールを自動送信するように修正してみた

概要

EC-CUBEの2系で注文確認メールやお問い合わせメールは標準で送信されるようになっている。

でも管理画面から受注ステータスを「発送済」に更新しても、発送完了メールが送信されない。これでは不便だ。

なので商品発送メールが送れるように修正してみた。

環境

EC-CUBE version2.13.3

手順

1.メールテンプレートを追加する

システム設定>マスターデータ管理から「mtb_mail_template」を選択する。続いてIDを6として発送完了メールを追加する。

f:id:kawai_norimitsu:20150919213652p:plain

2.テンプレートパスを追加する

システム設定>マスターデータ管理から「mtb_mail_tpl_path」を選択する。続いてIDを6として「mail_templates/order_complete_mail.tpl」を追加する。

f:id:kawai_norimitsu:20150919213904p:plain

3.メールタイトルを設定する

基本情報管理>メール設定から「発送完了メール」のテンプレートを開く。メールタイトルを設定する。ここでは「商品を発送いたしました」としました。

f:id:kawai_norimitsu:20150919214840p:plain

4.テンプレートファイルを追加する

FTPツールなどで「/data/Smarty/templates/default/mail_templates」を開く。そこに「order_complete_mail.tpl」ファイルを作成してアップロードする。

f:id:kawai_norimitsu:20150919214228p:plain

order_complete_mail.tplファイルの中身はこんな感じにしました。

本日商品を発送いたしました。

それでは商品到着までしばらくお待ちください。

よろしくお願い致します。
5.メール送信プログラムを追加する

FTPツールなどで「/data/class/pages/admin/order」を開く。「LC_Page_Admin_Order_Edit.php」ファイルを開いて、次のプログラムを追加する。

$objQuery->commit関数の下、892行目の辺り。

// ----- 発送完了メール
if($arrValues['status'] == ORDER_DELIV) {
    $objMail = new SC_Helper_Mail_Ex();
    $objSendMail = $objMail->sfSendOrderMail($order_id, 6);
}
6.テストする

管理画面の受注管理>受注管理から、適当な注文のステータスを発送済にしてみましょう。発送完了メールが送信されるはずです。

でも今後はEC-CUBE3系に移行してくはずだからあんまりこの記事も意味ないかなあ。。