SOY CMS / SOY Shop

ブログトップ

SOY Shopプラグインの解説 メールビルダー

2014年02月17日

メールの文面ですが、ヘッダとフッタは管理画面で設定できますが、

注文詳細の自動出力部分は変更することができません。

注文時に送信されるメールの設定 | SOY Shopマニュアル


注文詳細の自動出力部分を変更したい時は、本体に直接手を加えるのではなく、soyshop.order.mailbuilder.phpという拡張ポイントを利用すると自動出力部分を上書きすることができるようになります。

SOY Shopプラグインの解説 拡張ポイントについて


今回は、1.13.4から同梱されるメールビルダープラグイン(ID:common_mailbuilder)をベースとして説明していきます。

メールビルダープラグイン





メールビルダーの構造は上のようになっています。

soyshop.config.phpとsoyshop.info.phpは省略します。

SOY Shopプラグインの解説 詳細画面の作成


まずは自動で出力される注文詳細の文面というのは、


-----------------------------------------
注文番号:22-0708-7046
注文日時:2014-01-31 (Fri) 10:42:38
-----------------------------------------

商品名        商品コード      数量      価格
------------------------------------------------------
大豆セット    soy-1       1 点  1,980 円

                          小計            1,980 円
                          合計            1,980 円

お届け先
-----------------------------------------
お名前    まめくらまめぞう 様
フリガナ  マメクラマメゾウ
郵便番号  6060000
住所      京都府京都市左京区
          SOYタウン
電話番号  012-3456-7890


ご注文者
-----------------------------------------
お名前              まめくらまめぞう 様
フリガナ            マメクラマメゾウ
メールアドレス      info@mamekura.oma.me
電話番号            012-3456-7890

次はsoyshop.order.mailbuilder.phpの拡張ポイントを確認すると


/soyshop/webapp/src/logic/plugin/extentions/soyshop.order.mailbuilder.php


class SOYShopOrderMailBuilder implements SOY2PluginAction,SOYShop_MailBuilder{

	function buildOrderMailBodyForUser(SOYShop_Order $order, SOYShop_User $user){

	}
	function buildOrderMailBodyForAdmin(SOYShop_Order $order, SOYShop_User $user){

	}

	function printColumn($str, $pos = "right", $width = 10){
		//カラムを調整する
	}
}

buildOrderMailBodyForUserとbuildOrderMailBodyForAdminの関数が用意されています。


これらの関数はプラグインがインストールされている場合はプラグインの方が優先して呼ばれ、

プラグインがインストールされていない場合はSOY Shopの標準で用意されているメールビルダーの方が呼ばれます。

(/soyshop/webapp.src/logic/mail/MailBuilder.class.phpのgetInstance)


ForUserの方がお客様宛てのメール、

ForAdminの方が管理者宛てのメールになります。


各関数では、文字列を返すとそのままメールの文面となります。


たとえば、


function buildOrderMailBodyForUser(SOYShop_Order $order, SOYShop_User $user){
	return "おまめ美味しいよ";
}

にすると、メール文面は


まめぞう 様

お豆のお店をいつもご利用頂きまことにありがとうございます。
注文内容を確認いたしました。

おまめ美味しいよ

支払方法 : 銀行振り込み
配送方法 : クール

-----------------------------------------
おまめのお店
http://www.soycms.net
お豆商事株式会社
info@omame.oma.ne
住所: 606-0000
    京都府京都市左京区下鴨おまめタウン
TEL : 012-3456-7890
FAX : 012-0987-6543

というように、管理画面で決めたヘッタ、プラグインから出力した文字列、各種プラグインから出力された文字列と管理画面で決めたフッタという文面になります。

SOY Shopプラグインの解説 メールの文面に追加


SOYShop_OrderとSOYShop_Userのオブジェクトを持っているので、

それらを組み合わせて文面を作ります。