EC-CUBE は、オープンソースで高機能なECサイト構築システムです。 株式会社ロックオンが提供する「日本初のECオープンソース」で、自由にカスタマイズすることにより、ASPではできなかった独自性の高いECサイトを無料作れるというのが売りです。しかも、デフォルトから3キャリアのモバイルサイトにも完全対応しています。 さて、この EC-CUBE には、無料会員登録したユーザーにメルマガを配信する...
EC-CUBE は、オープンソースで高機能なECサイト構築システムです。
株式会社ロックオンが提供する「日本初のECオープンソース」で、自由にカスタマイズすることにより、ASPではできなかった独自性の高いECサイトを無料作れるというのが売りです。しかも、デフォルトから3キャリアのモバイルサイトにも完全対応しています。
さて、この EC-CUBE には、無料会員登録したユーザーにメルマガを配信する機能がついていますが、このメルマガ機能に不具合があったときの緊急の代替手段として、フリーソフトの同報メール配信ソフト「Mail Distributor」を使ってみよう、というお話です。
なお、ご利用は自己責任でお願いします。
「Mail Distributor」を使うには、.NET Framework 2.0 以上が必要です。
そこで、次のサイトから、最新版の .NET Framework 3.5 Service Pack 1 をダウンロードします。
上記サイトの「今すぐインストール」をクリックします。
「ダウンロード」をクリックします。
ダウンロードしたファイルを開き、「実行」でインストールを開始します。
後は流れに沿って行けばOKです。
次に以下のいずれかのサイトから「 Mail Distributor 」をダウンロードします。
ダウンロードしたファイルを開き、インストールを開始します。流れに沿って行けばOKです。
インストールが完了したら「Mail Distributor」を開いてみましょう。.NET Framework をインストールしていないとエラーが出ますので、忘れずに .NET Framework をインストールしましょう。
次に、EC-CUBE からメルマガ購読者の一覧をCSVでダウンロードします。
EC-CUBE では、「顧客管理」で検索した顧客の一覧をCSVでダウンロードできるようになっています。しかし、残念ながら、この検索条件を指定する画面にはメルマガに関する項目がなく、メルマガ購読の有無や購読の種類で顧客を絞り込むことができません。
また、「メルマガ管理」では、メルマガの「配信形式」や「配信メールアドレス種別」で顧客を絞り込むことが可能ですが、ここではその絞り込んだ顧客の一覧をCSVでダウンロードすることができません。
しかし、EC-CUBE には SQL の SELECT文を書いて、データベースから欲しい情報をCSVでダウンロードできる便利な機能があります。
そこで、この機能を使って、以下のような手順でメルマガ購読者一覧をCSVでダウンロードすることにします。
まず、「コンテンツ管理 > CSV出力項目設定 > 高度な設定」を開き、「新規SQL作成」をクリックします。
一般的なメルマガで必要な項目は「メールアドレス」と「名前」です。したがって今回は、EC-CUBE で「メールアドレス」と「名前」をダウンロードして、それを Mail Distributor にインポートすることにします。
ここで、インポート先の Mail Distributor のアドレス帳の項目を見てみましょう。
「メールアドレス」には何の問題もありませんが、「名前」がちょっと問題です。
上の一覧を見て分かるとおり、Mail Distributor のインポート項目の「名前」は、「苗字」と「名前」が別々ではなく一つの項目となっています。しかし、EC-CUBE では、「苗字」と「名前」は別々のフィールドに登録されています。
Mail Distributor のインポート項目を増やすことも可能ですが、作業をできるだけ簡単にするために、今回は、EC-CUBE 側の「苗字」と「名前」のフィールドを結合した形で一覧をダウンロードすることにします。
話を EC-CUBE に戻し、先ほどの「新規SQL作成」をクリックしたところから始めます。
「名称」欄に、今回設定する SQL の名前を入力します。ここでは「メルマガ購読者一覧」としました。
次に、「SQL文」欄に、以下のような SELECT文を入力します。SELECT文とは言っても、この機能においては「SELECT」は記述しないようにしてください。
CONCAT(name01 , name02) , email
FROM dtb_customer
WHERE mailmaga_flg IN (1,2)
AND del_flg = 0;
これを言葉で説明すると以下のようになります。
「データベース内の dtb_customer テーブルから、mailmaga_flg が1か2で、かつ del_flg が0である name01 フィールドと name02 フィールドと email フィールドを取得する。name01 フィールドと name02 フィールドは結合して取得する。」
name01 , name02 , mailmaga_flg , del_flg はフィールド名、dtb_customer はテーブル名です。EC-CUBE 内のテーブルやフィールドは、ページ下部にある一覧表で確認できます。左のカラムの「テーブル一覧」をクリックすると、そのテーブル内のフィールドが右の「項目一覧」に表示されます。また、それぞれの項目をダブルクリックすると、その項目名が上のテキストエリアの末尾に入力されます。
SQLを入力したら必ず「確認ページへ」をクリックし、書いた SQL 文に間違いがないか確認しましょう。
エラーがないことを確認したら「この内容で登録する」をクリックします。上段の「SQL一覧」に登録したSQLの名前が表示されればOKです。
この一覧の「CSV出力」をクリックすると、書いたSQL文の結果をCSVでダウンロードできます。
あとは、このCSVを Mail Distributor のアドレス帳にインポートし、実際にメルマガを配信するだけです。それらの手順は、Mail Distributorのページの「Mail Distributor ドキュメント」で丁寧に説明されているので、ここでは割愛します。
メルマガ購読者の数が多い場合、メールサーバーに負担がかかってしまったり、エラーが出る可能性があります。そのような場合は、以下のようにSQL文の最後に顧客ID(customer_id)での条件を追加して SQL文を複数作成すれば、分割して購読者一覧のCSVをダウンロードすることができます。
CONCAT(name01 , name02) , email
FROM dtb_customer
WHERE mailmaga_flg IN (1,2)
AND del_flg = 0
AND customer_id <= 500;
CONCAT(name01 , name02) , email
FROM dtb_customer
WHERE mailmaga_flg IN (1,2)
AND del_flg = 0
AND customer_id > 500;
当然のことですが、EC-CUBE 内の顧客データは刻一刻と変化しています。したがって、この方法で行う場合は、メルマガを配信する直前に毎回「メルマガ購読者一覧」のCSVをダウンロードして Mail Distributor にインポートする必要があります。
以上です。