[magento]メールマガジン配信のノウハウ

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設定ができるサーバーもあります。

メールマガジンの設定をしよう

「システム」-「設定」-「セールス」-「メールマガジン」で、メールマガジンの設定をします。
説明の都合上先に書いてしまいましたが、実際には、次項のメールテンプレートを作成してから、メールテンプレートの割り当てを行ってください。 

20120616-01.jpg

  • メールマガジンの購読申込成功メール、購読解除メール、購読申込時の確認メールに使用するテンプレートと送信者の指定
  • メールマガジン申込時に、メールアドレスの確認をするか?(申込メールアドレス宛てに、購読申込用リンクを通知します)
  • ゲストへのメールマガジン配信を許可するか?

 

なお、ユーザーが購読申込/解除したときだけでなく、管理者が購読状態を変更した時も、ユーザーに通知メールが送信されます。
通知メールを送らないようにするためには、次のエクステンションを導入しましょう。

Facon_Newsletterrw
http://stackoverflow.com/questions/2844023/magento-store-dont-send-newsletter-success-email

このエクステンションはMagento Connectには対応していません。
上記URLからダウンロードして、解凍したものをサーバーにアップロードしてください。
すると、メールマガジン設定の一番下に、通知メールを送るかどうかのドロップダウンメニューが現れます。
「Yes」で送信しない設定になります。(逆なので注意!)

取引メールを作成しよう

通知メールを、ショップの取引メールに合わせたものに変更しておきましょう。

作成するのは下記の3つです。

  • メールマガジン購読成功
  • メールマガジン解除成功
  • メールマガジン購読確認(購読確認をする場合)

 

やり方は、他の取引メールと同じです。
「システム」-「取引メール」で取引メール一覧を出して、「新しいテンプレートを追加」をします。

20120616-02.jpg

ここでいつもは「標準のテンプレートを読み込む」を行うのですが、標準のテンプレートは内容が「正常にニュースレターを購読しました。」だけで全然参考になりませんので、あえて読み込む必要はありません。
ショップですでに作成している他のテンプレートを読み込んで、本文部分を「メールマガジンご購読の申し込みありがとうございます」のように変更したほうがいいでしょう。

取引メールテンプレート作成では、一つ注意点があります。
他の取引メールで使用できるユーザー情報に関する変数が、メールマガジン関係のテンプレートで使えないのです。
まず、注文に関係ないので、{{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 のメソッドです。
従って、独自に拡張して使うこともできます。

テンプレートが作成出来たら、前項のメールマガジンの設定で、テンプレートを割り当てておくことを忘れないでください。

メールマガジンのテンプレートを作ろう

ようやく、本題のメールマガジンの制作に入ります。

「メールマガジン」-「メールマガジンテンプレート」で、「新しいテンプレートの追加」をクリックして、新規作成画面を表示します。

20120616-03.jpg

20120616-04.jpg赤い*は必須項目です。

  • テンプレート名 *:管理画面上のテンプレート名です
  • テンプレート件名 *:メールマガジンのタイトル(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が入力できるモードに切り替えてからペーストしてください。

20120616-05.jpg

配信しよう

メールテンプレートが作成できたら、いよいよ配信です。

「メールマガジン」-「メールマガジンテンプレート」の画面で、配信したいメールマガジンの右にある「アクション」ドロップダウンメニューから「メールマガジンキューイング中」を選択します。

20120616-06.jpgすると、「メールマガジンの編集」画面に切り替わります。

20120616-07.jpgここで一番上の「キュー開始日」を設定します。
入力ボックス右のアイコンをクリックするとカレンダーが表示されますので、日付と時間をクリックして設定します。時間は「クリックで進む/shift+クリックで戻る」 になっています。また、左右にドラッグすると大きく時間を変えることができます。

キュー開始日が設定出来たら、「メールマガジンの保存」をクリックします。
すると、「メールマガジンキュー」画面に切り替わり、配信がスタートします。

magentoでは、デフォルトで1回に20通のメールを送信する設定になっています。
cronを5分おきに起動する設定にしていた場合、100通送信するのに20分かかる計算になります。
送信数を変更するには、プログラムの修正が必要です。

送信中は、他の操作を行うことができます。
ログアウトしても問題ありません。

全てのメールマガジンの送信が完了すると、メールマガジンキューの状態が「送信済」になります。
私が試したところでは、cron.php が動作していないときは「未送信」になっているようです。(送信している最中のみ「送信中」になるみたいです)

購読状況を変更してみよう

「メールマガジン」ー「メールマガジン購読者」で、現在メールマガジン購読申し込みをしているユーザーを確認することができます。

20120616-08.jpg購読解除するには、ユーザーにチェックして、アクションから「メールマガジン購読解除」を選択して送信します。

購読を開始させるには、「顧客」-「顧客管理」で設定します。
購読開始させたいユーザーにチェックして、アクションの「メールマガジン購読」を選択して送信します。

20120616-09.png管理者による操作でも、ユーザーに通知メールが送信されることに注意してください。
(前の項にあるように、エクステンションを導入していれば、送信しないように設定できます) 

新規アカウント登録時、デフォルトでメールマガジン購読にしたい

新規アカウント登録画面では、メールマガジン購読にはチェックが入っていません。
ショップ側としては、デフォルトでチェックを入れておきたいところです。 

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. 1.顧客データをバックアップしておく(エクスポート)
  2. 2.購読設定を変更して、全員購読にする
  3. 3.メールマガジンを送信する
  4. 4.顧客データを元に戻す

 

しかし、この方法には大きな問題があります。
最後に顧客データを元に戻すので、2~4の手順の間に、ユーザーがアカウント情報を変更しないようにしなければなりません。 
つまり、ショップ機能を一時止めなければならないのです。
仮に顧客が1000人いたら、5分で20通ずつ送信するとして約4時間止めなければなりません。
これは現実的な方法ではないと思います。

顧客全員にメールを送信したい場合は、他のメールマガジン配信サービスを利用することをお勧めします。
顧客データをエクスポートすれば、他のサービスを利用するのは難しくないと思います。

 


 

メールマガジンの機能に関しては、必要最低限の機能があるといった感じで、顧客に合わせて柔軟なプロモーションを行うには、有償のエクステンションが必要です。

とはいえ、そこまで細かいことをやらないのであれば、十分に使えると思います。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です