概要
EC-CUBEのメールマガジン機能で旧サイトから移行してきたお客様にメールを送ろうとしたら、dtb_customerのmailmaga_flagが有効になっていない*1 と送れない*2 ことに気付いてガッカリ。。orz
既存のお客様はデフォルトでメール受け取らない設定にしちゃったんだよなぁ?TT
で、どうしようかと。
方法
1.現在のメール設定を一時的に保存しておいて、その後一括でメール送信設定を変更。メール送信後また元にもどす。
2.管理画面を修正してmailmaga_flagをチェックしないような検索条件を追加する。
この二つの方法で悩んでます。
1の方法は一見面倒くさそうですが、厄介なEC-CUBE側のソースをいじらずに済むし、すでにcakephpで書いた自前の管理ページがあるのでわりかし簡単に実装できます。が、スマートじゃない。
2の方法はスマートで、本来はここに入れるべきって思うんですが、ソースを追うとウンザリ。
パッと見SC_CustomerList.phpのコンストラクタを修正しなきゃならないみたいなんだけど、直感的じゃないんだよ!なんで、わざわざこのファイルなんだよと。LC_Page_Admin_Mail.phpに書いてくれれば後で見直すのも楽なのに。
あと、バージョン上げるとき大変だからできるだけEC-CUBE側をいじりたくないっていう理由もあるんですけども。
後は、最後の手段として旧サイトからのお客様はデフォルトでメール受け取る設定にして、お客様に最初に送るメールで「無効にできますよ」とアナウンスするという手も…無くはないな。
時間、労力とその効果を量るに、
最後の手段をとることに決めた。
[付録]mailmaga_flgの値
mailmaga_flagの値はmtbテーブルになっていないし、ソースにハードコーディング*3 されているのでメモしておきます。
- value
- 意味
- 1
- HTMLメール
- 2
- TEXTメール
- 3
- なし
- 4
- 仮登録HTMLメール(かな?)
- 5
- 仮登録TEXTメール(かな?)
- 6
- 仮登録なし(かな?)