開発者向けサポート

CASE.11 納品書のダウンロードを1度きりに制限したい

概要

ユーザーウェブの購入履歴画面等から可能な納品書のダウンロードを1度きりに制限したい場合のカスタマイズ例をご紹介します。

利用するAPI

処理カスタマイズAPI

カスタマイズ例

APPCASE_25フロー図

今回の例は受注ヘッダの自由項目に納品書をダウンロードしたかどうかのステータスを設定し、
受注番号から受注ヘッダを検索、すでにダウンロード済みのステータスの場合エラーを返すといったものになります。

納品書ダウンロード時チェック処理カスタマイズ

納品書ダウンロード時チェック処理カスタマイズ は納品書をダウンロードする際にチェックを追加できる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
}

OPTION_PARAMSのobject_dataについて

今回利用しているAPIですが、本来本APIへのリクエストには受注番号が含まれておらず、受注の情報を検索出来ません。

そこで、/customize_apis にて設定可能な項目のOPTION_PARAMSを利用しています。
OPTION_PARAMSは特定の文字列を設定すると、contextに追加で情報が送付されるようになるのですが、
ここで指定可能な値の中にobject_dataというものがあります。

object_dataを設定すると、現在ebisumartが処理中の情報がcontextに追加されるようになり、
本APIはこのobject_dataを設定すると基本的に受注番号を取得できるため、こちらを利用して受注を検索しています。

注意点として、すべての処理カスタマイズAPIが今回のような情報を取得できるわけでは無く、取得可能な値はAPIや処理によって異なります。
その為、どのような情報が取得できるかは都度お試しください。

そのほかの設定可能なOPTION_PARAMSについては こちら をご参照ください。