会員毎に購入可能な商品を紐づけて購入可能な商品のみ表示をしたいが、会員情報の自由項目等に登録するのではなく、
専用のテーブルを用意し、そのテーブルを操作することによって表示可能な商品を編集・取得したい
というご要望があった際に利用されたAPIについての紹介になります。
こちらの例では管理画面カスタマイズAPIを利用することでご要望を実現しています。
管理画面カスタマイズAPI専用のテーブルを用意し、【/admin_screen_customizes】を利用することで
専用テーブルに対する操作が可能な画面を作成します。
"ADMIN_SCREEN_CUSTOMIZE_POINT"に対して、"admin_extra_screen/input"を指定したこの画面は
該当テーブルへのレコード登録、編集を行える画面になります。
管理画面カスタマイズAPIとは、本件のような店舗様専用のテーブルに対して、
レコードを登録、検索、CSVアップロード等の操作が可能な画面を作成・カスタマイズできる仕組みになります。
まず初めに、こちらの画面へアクセスを可能とするためにサイドメニューへ画面名を表示する必要があります。
こちらの作業はメニューマスタへ登録が必要なため、メニュー名を決定次第弊社サポートまでご依頼ください。
管理画面カスタマイズAPIの登録には /admin_screen_customizes を利用します。
今回の例のように、会員ID(MEMBER_ID)と商品コード(ITEM_CD)を保持するためのテーブルを
SAMPLE_APP_MEMBER_ITEMという名前で作成したとすると、登録画面は次のリクエストを送ることで生成されます。
POST /admin_screen_customizes.json
[
"ADMIN_SCREEN_CUSTOMIZE_POINT": "admin_extra_screen/input",
"DISP_NAME": "SAMPLE_会員毎表示商品新規登録",
"KEY1": "SAMPLE_APP_MEMBER_ITEM",
"OPTION_DATA": {
"description": "会員毎表示商品を設定します。",
"tableName": "SAMPLE_APP_MEMBER_ITEM",
"tableDispName": "会員毎表示商品設定マスタ",
"columnDefinition": [
{
"NAME": "MEMBER_ID",
"DISP_NAME": "会員ID",
"CHECK_PROPERTY": 2,
"CHECK_NEED": true,
"CHECK_INT_SIZE": 8,
"CHECK_DEC_SIZE": 0,
"CHECK_NEGATIVE_FLG":false,
"FORM_TYPE":1,
"FORM_SIZE":8,
"FORM_MAXLENGTH":8,
"FORM_TRIM": true,
"FORM_IME_MODE":2
},
{
"NAME": "ITEM_CD",
"DISP_NAME": "商品コード",
"CHECK_PROPERTY": 1,
"CHECK_NEED": true,
"CHECK_BYTE_SIZE": 50,
"FORM_TYPE":1,
"FORM_SIZE":20,
"FORM_MAXLENGTH":50,
"FORM_TRIM": true,
"FORM_IME_MODE":2
}
],
"inputColumnsList":["MEMBER_ID","ITEM_CD"],
"backForward": "search"
}
]
まず、OPTION_DATAを除き、それぞれの設定項目に設定した値は次のような内容になります。
次に、OPTION_DATAに関してですが、この要素には表示する画面をJson形式で記述します。
上記Jsonの内容を簡潔にまとめると、"inputColumnsList"に記載したカラムを入力フォームとする画面を作成する内容になります。
なお、上記のようなカラムを指定する要素を利用する場合、"columnDefinition"にてカラムの定義をする必要がある点はご注意ください。
その他Jsonの各要素に関しては、 管理画面カスタマイズAPIページ に記載されている内容をご参照ください。
関連する内容として、専用テーブルの操作を実施することが可能なデータアクセスAPIに /extra/{table_name} がございます。
また、管理画面カスタマイズAPIの検索画面、CSVアップロード画面ついては以下のページにて別途まとめております。
これらの記事についても併せて閲覧頂くことを推奨いたします。