ECサイトのプロモーションに必須の「メールマガジン」。
もちろんMagentoにもメールマガジン配信機能が備わっているわけですが、日本語のドキュメントが少ないので、実際の配信はなかなか難しいものがあるんじゃないかと思います。
そこで、実際にメールマガジンを配信してみてわかったこととか、いろいろ書いてみたいと思います。
ちょっと長くなりますが、全部読めば、あなたもMagentoでメールマガジン配信ができるようになります。
※以下、Magento 1.6 を、Rack-JPエクステンションで日本語化したもので説明します。
※英語の情報を探すときは「newsletter」というキーワードで検索してください。
目次
cronの設定をしよう
メールマガジンを発行するためには、まず、サーバーで cron の設定をする必要があります。
Magentoインストールディレクトリにある cron.php を定期的に動かさないといけないからです。
実は私、これに気づかなくて1日くらい「なんでメールマガジンが送信されないんだろう?」と悩んでおりました。
MagentoがインストールされているWebサーバーで、下記のようにcronの設定をします。
*/5 * * * * /usr/bin/php /home/user-dir/public_html/magento/cron.php
この設定はMagento推奨のもので、5分ごとに cron.php を動かします。
時間設定は、サーバーに負荷がかからない程度に適宜変更してください。
/usr/bin/phpは、phpのあるディレクトリです。サーバーに合わせて指定してください。
/home 以下は、magentoがインストールされているディレクトリを指定してください。
cron.php は正常に動作した時は出力を出さないので、特に出力を捨てる設定はしなくてもいいでしょう。
(エラー出力は捨てないほうが良いと思います)
cronの設定は、sshが使えるサーバーなら、crontab で設定します。(crontabの使い方はググってください)
エックスサーバーやさくらなど、コントロールパネルからcron設定ができるサーバーもあります。
メールマガジンの設定をしよう
「システム」-「設定」-「セールス」-「メールマガジン」で、メールマガジンの設定をします。
説明の都合上先に書いてしまいましたが、実際には、次項のメールテンプレートを作成してから、メールテンプレートの割り当てを行ってください。
- メールマガジンの購読申込成功メール、購読解除メール、購読申込時の確認メールに使用するテンプレートと送信者の指定
- メールマガジン申込時に、メールアドレスの確認をするか?(申込メールアドレス宛てに、購読申込用リンクを通知します)
- ゲストへのメールマガジン配信を許可するか?
なお、ユーザーが購読申込/解除したときだけでなく、管理者が購読状態を変更した時も、ユーザーに通知メールが送信されます。
通知メールを送らないようにするためには、次のエクステンションを導入しましょう。
Facon_Newsletterrw
http://stackoverflow.com/questions/2844023/magento-store-dont-send-newsletter-success-email
このエクステンションはMagento Connectには対応していません。
上記URLからダウンロードして、解凍したものをサーバーにアップロードしてください。
すると、メールマガジン設定の一番下に、通知メールを送るかどうかのドロップダウンメニューが現れます。
「Yes」で送信しない設定になります。(逆なので注意!)
取引メールを作成しよう
通知メールを、ショップの取引メールに合わせたものに変更しておきましょう。
作成するのは下記の3つです。
- メールマガジン購読成功
- メールマガジン解除成功
- メールマガジン購読確認(購読確認をする場合)
やり方は、他の取引メールと同じです。
「システム」-「取引メール」で取引メール一覧を出して、「新しいテンプレートを追加」をします。
ここでいつもは「標準のテンプレートを読み込む」を行うのですが、標準のテンプレートは内容が「正常にニュースレターを購読しました。」だけで全然参考になりませんので、あえて読み込む必要はありません。
ショップですでに作成している他のテンプレートを読み込んで、本文部分を「メールマガジンご購読の申し込みありがとうございます」のように変更したほうがいいでしょう。
取引メールテンプレート作成では、一つ注意点があります。
他の取引メールで使用できるユーザー情報に関する変数が、メールマガジン関係のテンプレートで使えないのです。
まず、注文に関係ないので、{{var order.getCustomerName()}} のように、order、billing、などに紐づいたものは使えません。
また、{{var customer.name}} も使えません。これは、ゲストにもメールマガジン購読が可能だからです。
メールマガジン関連のテンプレートで使えるのは、下記のものになります。
- {{var subscriber.email}}:メールマガジン送信先メールアドレス
- {{var subscriber.CustomerFirstname}}:メールマガジン購読者の名
- {{var subscriber.CustomerLastname}}:メールマガジン購読者の姓
- {{var subscriber.SubscriberFullName}} :メールマガジン購読者のフルネーム(姓名が逆)
- {{var subscriber.getConfirmationLink()}}:メールマガジン購読申込リンク
- {{var subscriber.getUnsubscriptionLink()}}:メールマガジン購読解除リンク
これらは、app/core/Mage/Newsletter/Model/Subscriber.php のメソッドです。
従って、独自に拡張して使うこともできます。
テンプレートが作成出来たら、前項のメールマガジンの設定で、テンプレートを割り当てておくことを忘れないでください。
メールマガジンのテンプレートを作ろう
ようやく、本題のメールマガジンの制作に入ります。
「メールマガジン」-「メールマガジンテンプレート」で、「新しいテンプレートの追加」をクリックして、新規作成画面を表示します。
赤い*は必須項目です。
- テンプレート名 *:管理画面上のテンプレート名です
- テンプレート件名 *:メールマガジンのタイトル(subject)です
- 送信者名 *:送信者名(Fromの名前部分)です
- 送信者アドレス *:送信元メールアドレス(From)です
- テンプレートコンテンツ *:メールマガジンの本文です
- テンプレートスタイル:HTMLメールのheadタグ内に指定できるスタイルシートですが、受信メーラーによっては対応していないスタイルがあります。
新規作成時に、すでにテンプレートコンテンツには、購読解除のリンクが入っています。
文言は変えても構いませんが、このリンクは必ずメールマガジンに入れておくようにしましょう。
メールマガジンは、デフォルトでHTMLメールになっていますが、プレーンテキストで作成することもできます。
取引メールのように自動で挿入される項目はないので、プレーンテキスト化しやすいと思います。
しかし、最近は、楽天・AmazonなどからもHTMLメールが来るので、わざわざプレーンテキストのメールマガジンを作る必要はないでしょう。
HTMLメールの作成は、相当のコツが必要です。
私が参考にしているものをご紹介しますので、一読されてから作成されることをお勧めします。
意匠部@wiki BETA – CSS・XHTML/コーディングルール/メールマガジンを作る際に気をつけること
http://www37.atwiki.jp/k-designer/pages/41.html
誰でも作れる! “崩れない”HTMLメルマガ作成術 – @IT
http://www.atmarkit.co.jp/fwcr/design/tool/ichigeki12/01.html
なお私は、HTMLメールをMagento上で作成せず、Dreamweaverで作成してから、<body>~</body>の部分をMagentoにコピー&ペーストしています。
ソースコードでコピー&ペーストする場合は、「Show / Hide Editor」をクリックしてHTMLが入力できるモードに切り替えてからペーストしてください。
配信しよう
メールテンプレートが作成できたら、いよいよ配信です。
「メールマガジン」-「メールマガジンテンプレート」の画面で、配信したいメールマガジンの右にある「アクション」ドロップダウンメニューから「メールマガジンキューイング中」を選択します。
すると、「メールマガジンの編集」画面に切り替わります。
ここで一番上の「キュー開始日」を設定します。
入力ボックス右のアイコンをクリックするとカレンダーが表示されますので、日付と時間をクリックして設定します。時間は「クリックで進む/shift+クリックで戻る」 になっています。また、左右にドラッグすると大きく時間を変えることができます。
キュー開始日が設定出来たら、「メールマガジンの保存」をクリックします。
すると、「メールマガジンキュー」画面に切り替わり、配信がスタートします。
magentoでは、デフォルトで1回に20通のメールを送信する設定になっています。
cronを5分おきに起動する設定にしていた場合、100通送信するのに20分かかる計算になります。
送信数を変更するには、プログラムの修正が必要です。
送信中は、他の操作を行うことができます。
ログアウトしても問題ありません。
全てのメールマガジンの送信が完了すると、メールマガジンキューの状態が「送信済」になります。
私が試したところでは、cron.php が動作していないときは「未送信」になっているようです。(送信している最中のみ「送信中」になるみたいです)
購読状況を変更してみよう
「メールマガジン」ー「メールマガジン購読者」で、現在メールマガジン購読申し込みをしているユーザーを確認することができます。
購読解除するには、ユーザーにチェックして、アクションから「メールマガジン購読解除」を選択して送信します。
購読を開始させるには、「顧客」-「顧客管理」で設定します。
購読開始させたいユーザーにチェックして、アクションの「メールマガジン購読」を選択して送信します。
管理者による操作でも、ユーザーに通知メールが送信されることに注意してください。
(前の項にあるように、エクステンションを導入していれば、送信しないように設定できます)
新規アカウント登録時、デフォルトでメールマガジン購読にしたい
新規アカウント登録画面では、メールマガジン購読にはチェックが入っていません。
ショップ側としては、デフォルトでチェックを入れておきたいところです。
app/design/frontend/base/default/template/persistent/customer/form/register.phtml を、テーマのディレクトリにコピーして、修正を行います。
59行目当たりにチェックボックスがありますので、checked=checked を囲んでいるif文を削除します。
(もと)
<input type="checkbox" name="is_subscribed" title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1" id="is_subscribed" <?php if($this->getFormData()->getIsSubscribed()): ?> checked="checked"<?php endif; ?> class="checkbox" />
(修正)
<input type="checkbox" name="is_subscribed" title="<?php echo $this->__('Sign Up for Newsletter') ?>" value="1" id="is_subscribed" checked="checked" class="checkbox" />
顧客全員にメールマガジンを送りたい
購読していない顧客にもメールマガジンを送りたいということがあると思います。
残念ながら、これを実現するには、有償のエクステンションを導入するしかないようです。
エクステンションを導入しないでこれを行うには、下記の手順をとることになると思います。
- 1.顧客データをバックアップしておく(エクスポート)
- 2.購読設定を変更して、全員購読にする
- 3.メールマガジンを送信する
- 4.顧客データを元に戻す
しかし、この方法には大きな問題があります。
最後に顧客データを元に戻すので、2~4の手順の間に、ユーザーがアカウント情報を変更しないようにしなければなりません。
つまり、ショップ機能を一時止めなければならないのです。
仮に顧客が1000人いたら、5分で20通ずつ送信するとして約4時間止めなければなりません。
これは現実的な方法ではないと思います。
顧客全員にメールを送信したい場合は、他のメールマガジン配信サービスを利用することをお勧めします。
顧客データをエクスポートすれば、他のサービスを利用するのは難しくないと思います。
メールマガジンの機能に関しては、必要最低限の機能があるといった感じで、顧客に合わせて柔軟なプロモーションを行うには、有償のエクステンションが必要です。
とはいえ、そこまで細かいことをやらないのであれば、十分に使えると思います。
この記事を書いた人
-
FAシステムメーカー、国内最大手印刷会社製版部、印刷・ウェブ制作会社を経て、家庭の事情で実家に帰省して独立
現在はフリーランスと制作会社シニアディレクターのマルチワーク
ウェブ制作のほぼ全般を見渡せるディレクター業務が主だが、デザイン・コーディングも好き
1997年ブログ開設
WordPressコミュニティには2011年から参加
WordCamp Kansai 2016 セッションスピーカー
WordCamp Tokyo 2023 パネルディスカッションパネラー
WordBench京都、WordBench神戸、WordPress Meetup八王子など登壇多数
最新の投稿
ご質問・ご相談などありましたら
お気軽にお問い合わせください
資料請求・お問い合わせにはメールアドレスが必要です
コメントを残す