概要
ebisumartが動作するうえで必要な主要ロジックに対して、その処理前・処理後にAppsのインターフェースを呼び出すことができます。
カスタマイズする処理、および呼び出し先のインターフェースの情報は、事前にデータアクセスAPIを用いて設定しておく必要があります。
また、このAPIを利用した実例について Apps活用事例 にて掲載しておりますので、こちらの内容と併せてご覧いただけますと幸いです。
リクエスト
ebisumartからAPIを呼び出す時には、リクエストボディにJSON形式で以下の情報が送られます。
- arg
- 該当する処理に渡される引数を要素に持つ構造体です。
具体的な引数の名前とその意味は、下記一覧からたどれる各処理のドキュメントを参照してください。
- requestParams
- ブラウザから送付されたリクエストパラメーターが格納されます。
ただし、この情報が格納されるのは一部の処理カスタマイズAPIに限られます。対象となる処理カスタマイズAPIでは、
その詳細説明ページにて「ブラウザから送付されたリクエストパラメーターがrequestParamsに格納されて送られてきます。」と記載してあります。
- context
- 全処理共通で渡される引数を要素に持つ構造体です。
具体的な引数の名前とその意味は、共通パラメーターのドキュメントを参照してください。
- cart
- その時点でカートに入っている商品の情報です。
- session
- 同一セッション内にて、以前の処理カスタマイズAPI呼び出しのレスポンスで指定したセッション情報がある場合、その情報を表すマップが入ります。
- requestAttr
- 同一リクエスト内にて、以前の処理カスタマイズAPI呼び出しのレスポンスで指定したリクエストスコープの情報がある場合、その情報を表すマップが入ります。
- cookies
- nameが「Appsコード:」から始まるクッキー情報がある場合、その情報を表すリストが入ります。
- currentResult
- 処理後に呼ばれる場合にのみ含まれる内容です。ebisumartの標準ロジックによって処理した結果の値が入っています。
ただし、すでに他のAPI呼び出しによって上書きされている場合、その上書きされた値が入ります。
- originalArg
- argに含まれる引数の値が、他の処理カスタマイズAPI呼び出しによって既に書き換えられていた場合に、書き換え前の値が含まれます。
具体的に渡されてくるデータのサンプルは以下の通りです。
{
"arg": {
"parameter_1": "value_1"
"parameter_2": "value_2"
},
"cart": [
{
"ADD_POINT": null,
"ADD_POINT_RATE": null,
"CANCEL_SERIAL_HIKIATE_FLG": null,
"CART_COMMENT": null,
"DISCOUNT_FLG": null,
"HAISO_ID": null,
"HAISO_OMOMI": null,
"ITEMPROPERTY_LIST": "0",
"ITEM_CD": "ITEM02",
"ITEM_DOWNLOAD": null,
"ITEM_ID": "2",
"ITEM_IMAGE1": null,
"ITEM_ITEMPROPERTY_CD": "ITEM02",
"ITEM_NAME": "テスト商品2",
(省略)
}
],
"session": {
"error_count": "1"
},
"cookies": [
{
"name": "Appsコード:KEY1",
"value": "VALUE1"
},
{
"name": "Appsコード:KEY2",
"value": "VALUE2"
}
],
"currentResult": true,
"originalArg": {},
"request": {}
}
レスポンス
Appsでの処理を完了したのち、JSON形式で以下の内容をレスポンスボディに入れてください。
- result
- 処理結果です。ebisumart本体による標準ロジックの結果を上書きしたい場合に設定してください。
上書きしない場合はこの値を含めないでください。
処理前のAPIにてこの値が設定されていた場合、標準ロジックの呼び出しがスキップされこの値が結果として返されます。
処理後のAPIいてこの値が設定されていた場合、標準ロジックの実行結果がこの値で上書きされます。
いずれの場合も、後続のほかのAPI呼び出しによってさらに結果が上書きされる場合もあります。
- messages
- 画面に表示したいメッセージのリストです。ebisumart本体の標準ロジックにて設定されたメッセージに加えて、指定されたメッセージが表示されるようになります。
複数のAPI呼び出しにてそれぞれメッセージが指定されていた場合、そのすべてが画面に表示されます。
各メッセージは以下のフィールドを持つオブジェクトです。
- message
- メッセージ
- level
- メッセージのレベル(1:エラー、2:警告、3:情報)
なお、ここで設定したメッセージはテンプレート上で最初に呼び出されるメッセージ表示用のm:idによって表示されます。
その為、メッセージ表示用m:idを複数設定した場合、意図しない個所にメッセージが表示される可能性がある点にはご注意ください。
- errorColumns
- エラーがあった入力項目の名前です。
ebisumart標準のテンプレートを利用している場合、ここで指定された名前を持つinputタグの背景色が赤色に設定されます。
- overrideArgs
- 引数を上書きする情報。文字列型の引数のみ上書き可能です。
- session
- セッションに格納する情報。
ここで指定した情報は、同一セッション内で呼び出される処理カスタマイズAPI呼び出しのリクエストに格納されます。
- requestAttr
- リクエストスコープに格納する情報。
ここで指定した情報は、同一リクエスト内で呼び出される処理カスタマイズAPI呼び出しのリクエストに格納されます。
- cookies
- クッキーに格納する情報。nameは「Appsコード:」から始まるの文字列を指定してください。
- isHttpOnly
- httponly属性を付与する場合trueを指定してください。未指定の場合、httponly属性を付与しません。
- isSecure
- secure属性を付与する場合trueを指定してください。未指定の場合、secure属性を付与しません。
- maxAge
- Set-Cookieヘッダ > Expiresに指定するクッキーの残存時間を秒単位で指定してください。未指定の場合、Expiresを指定しません。
- name
- Cookieのnameを指定してください。どのAppsでセットされたCookieかを特定するために「Appsコード:」から始まる文字列を指定してください。
- value
- CookieのValueを指定してください。
レスポンスのサンプルは以下の通りです。
{
"result": true,
"messages": [
{
"message": "入力項目にエラーがあります。",
"level": 1
}
],
"session": {
"error_count": "1"
},
"requestAttr": {},
"cookies": [
{
"isHttpOnly": false,
"isSecure": false,
"maxAge": 3600,
"name": "Appsコード:KEY1",
"value": "VALUE1"
},
{
"isHttpOnly": true,
"isSecure": true,
"maxAge": 7200,
"name": "Appsコード:KEY2",
"value": "VALUE2"
}
],
"errorColumns": [
"error_column_name"
],
"overrideArgs": {}
}
よく利用されている処理カスタマイズAPIの一例
処理カスタマイズAPIの一例として、利用率の高い処理カスタマイズAPIをご紹介します。
処理カスタマイズAPIトレースログについて
ebisumartでは前項でご紹介した他にも多くの処理カスタマイズAPIをご用意しております。
お望みの処理カスタマイズAPIを探す足がかりとして、どのようなAPIがあるか調査するために 処理カスタマイズAPIトレースログ という仕組みをご用意しております。
こちらを有効化して頂くと、ショップ管理ツールやユーザーウェブで行った操作に対して動作した処理カスタマイズAPIを一覧化して確認することができます。
利用方法などについては上記ページにて掲載されておりますので、ぜひご確認ください。
免責事項
免責事項については こちら をご参照ください。