開発者向けサポート

CASE.07 ショップ管理ツールから受注が作成された場合のみ送信されるメールを切り替えたい

概要

受注作成時に送信されるメールの種類を、ショップ管理ツールの受注新規登録画面から受注が作成された場合にのみ
別のものに切り替えたいといった場合のカスタマイズ例をご紹介します。

利用するAPI

データアクセスAPI

処理カスタマイズAPI

カスタマイズ例

APPCASE_21フロー図

処理カスタマイズAPIではAPI登録時にFLOW_NAMEカラムに処理フロー名を合わせて登録することで、
登録された処理フロー名に該当する処理から呼ばれた場合のみ該当のAPIを実行する、という制御が可能になっています。

今回の例はショップ管理ツールの受注新規登録画面から受注を作成し、メール種別カスタマイズ用カットポイントが呼ばれる際に
経由する処理フロー名をFLOW_NAMEカラムに登録することで、ショップ管理ツールからAPIが実行されたタイミングのみ
メール種別を切り替える、といった形のカスタマイズ例になります。

処理フロー名について

前述の通り、処理カスタマイズAPIでは処理フロー名を利用して特定の処理時のみAPIを実行するという制御が可能です。
このような制御がしたい場合に処理フロー名を特定する方法として、処理カスタマイズAPIトレースログという仕組みをご用意しております。

こちらを有効化して画面を操作すると、その操作に対して実行される可能性のある処理カスタマイズAPIが
リクエストパスと処理フロー名を含めて記録されるようになります。
上記のログから利用したい処理カスタマイズAPIを検索して頂くことで、
ヒットした内容から制御したいタイミングの処理フロー名をピックアップできます。

今回の例でいうと、ショップ管理ツールの受注新規登録画面から受注を登録した場合と
ユーザーウェブで受注を作成した場合に、それぞれ実行された処理カスタマイズAPIの内容は次のような形でログに記載されます。
トレースログ出力内容 今回はショップ管理ツールの受注新規登録画面から受注が登録された場合のみ実行する形で動作を制御したいので、
上記の内容からFLOW_NAMEカラムに登録が必要な処理フロー名はadmin/order/inputであることが判別できます。

メール種別カスタマイズ用カットポイントについて

メール種別カスタマイズ用カットポイント(common/mail/customize_mail_kind_by_order_no/{name})
{name}部分に指定したメール種類ID(MAIL_KIND)のメールが送信されるタイミングでメール種類を切り替えるために利用できます。

今回の例でいうと、メール種類IDが3の注文確定時送信メールが送信されるタイミングで利用したいので次のような形でAPIを登録します。

POST /EBISU_TEST/dataaccess/customize_apis.json

body:
{
	"FLOW_NAME": "admin/order/input", 
	"NAME": "common/mail/customize_mail_kind_by_order_no/3/after",
	"URL": "https://example.com/sample.json"
}

例えば、切り替え先として利用されるメール種類IDを2000としたい場合、
次のようなレスポンスを返すことで、メールフォーマットを指定できます。

{
	"result":"2000"
}

また、今回のようにAppsから返す値が変わることが無い場合は、次のような形でRETURN_VALUEを設定することで
Appsとの通信は行わずにRETURN_VALUEの値を返す形で処理をカスタマイズすることも出来ます。

POST /EBISU_TEST/dataaccess/customize_apis.json

body:
{
	"FLOW_NAME": "admin/order/input", 
	"NAME": "common/mail/customize_mail_kind_by_order_no/3/after",
	"RETURN_VALUE": "result:\"2000\""
}

なお、メールフォーマットを追加したい場合 POST /mail_formats をご利用ください。
メールフォーマットをデータアクセスAPIにて追加した場合、メール種類IDは2000番より自動採番されます。
具体的な設定方法は上記リンクにてご紹介しておりますので、ご参考になれば幸いです。

メールフォーマット機能の詳細については こちら をご確認ください。