ユーザーウェブの購入履歴画面等から可能な納品書のダウンロードを1度きりに制限したい場合のカスタマイズ例をご紹介します。
処理カスタマイズAPI
今回の例は受注ヘッダの自由項目に納品書をダウンロードしたかどうかのステータスを設定し、
受注番号から受注ヘッダを検索、すでにダウンロード済みのステータスの場合エラーを返すといったものになります。
納品書ダウンロード時チェック処理カスタマイズ は納品書をダウンロードする際にチェックを追加できるAPIになります。
本APIのリクエストには受注番号が含まれておらず、処理中のデータから取得する必要があるため、
受注番号が欲しい場合、次のような形で処理カスタマイズAPIを登録してください。
POST /customize_apis.json
[body内容例]
{
"NAME":"userweb/member/check_for_delivery_note_download/after",
"URL": "https://example.com/sample.json",
"OPTION_PARAMS":"object_data"
}
上記の形で登録された場合、送られてくるリクエストは次のようになります。
{
"context": {
~~~
"object_data": {
"data": {
"request": "nouhinsho",
"ORDER_NO": "1"
},
"list_data": []
},
~~~
}
}
上記の形で受注番号が取得できるので、 GET /orders/{id} を利用して判断用のフラグを格納する自由項目を取得できます。
取得した自由項目からダウンロードの可否を判断し、例えばダウンロード不可としたい場合、次のようなレスポンスを返すことで実現できます。
{
"messages": [
{
"level": 1,
"message": "すでにダウンロード済みのためダウンロードできません。"
}
],
"result":false
}
今回利用しているAPIですが、本来本APIへのリクエストには受注番号が含まれておらず、受注の情報を検索出来ません。
そこで、/customize_apis にて設定可能な項目のOPTION_PARAMSを利用しています。
OPTION_PARAMSは特定の文字列を設定すると、contextに追加で情報が送付されるようになるのですが、
ここで指定可能な値の中にobject_dataというものがあります。
object_dataを設定すると、現在ebisumartが処理中の情報がcontextに追加されるようになり、
本APIはこのobject_dataを設定すると基本的に受注番号を取得できるため、こちらを利用して受注を検索しています。
注意点として、すべての処理カスタマイズAPIが今回のような情報を取得できるわけでは無く、取得可能な値はAPIや処理によって異なります。
その為、どのような情報が取得できるかは都度お試しください。
そのほかの設定可能なOPTION_PARAMSについては こちら をご参照ください。