この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
スマレジとは iPhone/iPad 等の端末から利用できる高機能クラウド POS サービスです。レジ機能、予算管理、顧客管理、スタッフ管理、在庫管理など、幅広い用途で利用することができます。
本記事ではスマレジ Developersを利用してサンドボックス環境の作成から POS 機能と API 連携する一連の流れをまとめました。
本記事の流れ
- スマレジ Developers アカウントを作成
- サンプルアプリを登録
- サンプルデータを作成
- API からサンドボックス環境のデータを取得・更新
スマレジ Developers アカウントを作成
スマレジ Developersでアカウントを作成します。
サンプルアプリを登録
API を利用するのに必要なクライアント ID とクライアントシークレットを払い出すため、サンプルアプリを登録します。
スコープタブで利用したい API を有効にします。今回は会員情報を取得する API を利用したいので参照・更新を有効化しています。
基本情報は必須マークがついているもののみ入力すれば OK です。環境設定の認可情報のクライアント ID とクライアントシークレットを後に利用します。
サンプルデータを作成
コンソール右上の Bento メニューからサンドボックス環境を開くことができます。
POS を選択し、会員<新規登録 から会員データの登録を行います。データの量が多い場合は CSV でインポートすることも可能ですが、今回は手動で登録を行います。
二件の会員データを以下の内容で登録しました。後ほど会員ポイント一覧を取得する API も利用するため、それぞれポイントも付与しています。
API からデータを取得
Postmanを利用して API からデータを取得します。
アクセストークンの取得
全ての API コールに必要なアクセストークンを取得します。必要な情報は以下です。
項目 | 値 |
---|---|
契約 ID | スマレジDevelopersポータル右上に表示される”契約 ID” |
クライアント ID | 登録したサンプルアプリの”環境設定”ページの認可情報からで確認できる |
クライアントシークレット | 登録したサンプルアプリの”環境設定”ページの認可情報からで確認できる |
以下の内容でリクエストを送信します。
項目 | 値 |
---|---|
リクエスト種別 | GET |
リクエスト URL | https://id.smaregi.dev/app/<契約ID>/token |
Authorization | Basic Auth を選択し、UserName にクライアント ID、Password にクライアントシークレットを指定します。 |
Headers | Content-Type にapplication/x-www-form-urlencoded を指定します |
Body | x-www-form-urlencoded を選択し、grant_type にclient_credentials 、scope にアプリの環境変数で指定した API を半角スペース区切りで指定します。今回はpos.customers:read pos.customers:write を指定しています。 |
トークンが返るので、クリップボードに保存しておきます。
参考: スマレジ・プラットフォーム API 共通仕様書 アクセストークン
会員登録
先ほど取得したトークンを使ってスマレジ API から新規会員を追加します。
項目 | 値 |
---|---|
リクエスト種別 | POST |
リクエスト URL | https://api.smaregi.dev/<契約ID>/pos/customers |
Authorization | Bearer Token を選択し、Token に取得したトークンを指定します |
以下の内容で新規会員を作成します。
{
"customerCode": "003",
"customerNo": "003",
"firstName": "一郎",
"lastName": "佐々木",
"firstKana": "イチロウ",
"lastKana": "ササキ",
"sex": "1",
"mailReceiveFlag": "1",
"status": "0",
"storeId": "2"
}
レスポンス
Status: 200
{
"customerId": 3,
"customerCode": "003",
"customerNo": "003",
"rank": null,
"staffRank": null,
"firstName": "一郎",
"lastName": "佐々木",
"firstKana": "イチロウ",
"lastKana": "ササキ",
"postCode": null,
"address": null,
"phoneNumber": null,
"faxNumber": null,
"mobileNumber": null,
"mailAddress": null,
"mailAddress2": null,
"mailAddress3": null,
"companyName": null,
"departmentName": null,
"managerialPosition": null,
"sex": "1",
"birthDate": null,
"pointExpireDate": null,
"lastComeDateTime": null,
"entryDate": null,
"leaveDate": null,
"pointGivingUnitPrice": null,
"pointGivingUnit": null,
"pinCode": null,
"passportNo": null,
"nationality": null,
"alphabetName": null,
"mailReceiveFlag": "1",
"note": null,
"note2": null,
"favoriteList": null,
"browsingList": null,
"status": "0",
"storeId": "2",
"insDateTime": "2021-03-29T13:39:41+09:00",
"updDateTime": "2021-03-29T13:39:41+09:00"
}
会員情報を取得
会員の一覧データを取得してみましょう
項目 | 値 |
---|---|
リクエスト種別 | GET |
リクエスト URL | https://api.smaregi.dev/<契約ID>/pos/customers |
Authorization | Bearer Token を選択し、Token に取得したトークンを指定します |
レスポンス
[
{
"customerId": "1",
"customerCode": "001",
"customerNo": "001",
"rank": null,
"staffRank": null,
"firstName": "花子",
"lastName": "山田",
"firstKana": "ハナコ",
"lastKana": "ヤマダ",
"postCode": null,
"address": null,
"phoneNumber": null,
"faxNumber": null,
"mobileNumber": null,
"mailAddress": null,
"mailAddress2": null,
"mailAddress3": null,
"companyName": null,
"departmentName": null,
"managerialPosition": null,
"sex": "2",
"birthDate": null,
"pointExpireDate": null,
"lastComeDateTime": null,
"entryDate": "2021-03-29",
"leaveDate": null,
"pointGivingUnitPrice": "100",
"pointGivingUnit": "10.00",
"pinCode": null,
"passportNo": null,
"nationality": null,
"alphabetName": null,
"mailReceiveFlag": "1",
"note": null,
"note2": null,
"favoriteList": null,
"browsingList": null,
"status": "0",
"storeId": "2",
"insDateTime": "2021-03-29T10:53:26+09:00",
"updDateTime": "2021-03-29T11:31:21+09:00"
},
{
"customerId": "2",
"customerCode": "002",
"customerNo": "002",
"rank": null,
"staffRank": null,
"firstName": "太郎",
"lastName": "佐藤",
"firstKana": "タロウ",
"lastKana": "サトウ",
"postCode": null,
"address": null,
"phoneNumber": null,
"faxNumber": null,
"mobileNumber": null,
"mailAddress": null,
"mailAddress2": null,
"mailAddress3": null,
"companyName": null,
"departmentName": null,
"managerialPosition": null,
"sex": "1",
"birthDate": null,
"pointExpireDate": null,
"lastComeDateTime": null,
"entryDate": "2021-03-29",
"leaveDate": null,
"pointGivingUnitPrice": null,
"pointGivingUnit": null,
"pinCode": null,
"passportNo": null,
"nationality": null,
"alphabetName": null,
"mailReceiveFlag": "1",
"note": null,
"note2": null,
"favoriteList": null,
"browsingList": null,
"status": "0",
"storeId": "2",
"insDateTime": "2021-03-29T10:54:02+09:00",
"updDateTime": "2021-03-29T11:31:34+09:00"
},
{
"customerId": "4",
"customerCode": "003",
"customerNo": "003",
"rank": null,
"staffRank": null,
"firstName": "一郎",
"lastName": "佐々木",
"firstKana": "イチロウ",
"lastKana": "ササキ",
"postCode": null,
"address": null,
"phoneNumber": null,
"faxNumber": null,
"mobileNumber": null,
"mailAddress": null,
"mailAddress2": null,
"mailAddress3": null,
"companyName": null,
"departmentName": null,
"managerialPosition": null,
"sex": "1",
"birthDate": null,
"pointExpireDate": null,
"lastComeDateTime": null,
"entryDate": null,
"leaveDate": null,
"pointGivingUnitPrice": null,
"pointGivingUnit": null,
"pinCode": null,
"passportNo": null,
"nationality": null,
"alphabetName": null,
"mailReceiveFlag": "1",
"note": null,
"note2": null,
"favoriteList": null,
"browsingList": null,
"status": "0",
"storeId": "2",
"insDateTime": "2021-03-29T13:54:52+09:00",
"updDateTime": "2021-03-29T13:54:52+09:00"
}
]
会員ポイント一覧取得
項目 | 値 |
---|---|
リクエスト種別 | GET |
リクエスト URL | https://api.smaregi.dev/<契約ID>/pos/customers/point |
Authorization | Bearer Token を選択し、Token に取得したトークンを指定します |
レスポンス
[
{
"customerId": "1",
"mile": null,
"point": "1001",
"pointExpireDate": null,
"insDateTime": "2021-03-29T10:53:26+09:00",
"updDateTime": "2021-03-29T11:31:21+09:00"
},
{
"customerId": "2",
"mile": null,
"point": "200",
"pointExpireDate": null,
"insDateTime": "2021-03-29T10:54:02+09:00",
"updDateTime": "2021-03-29T11:31:34+09:00"
},
{
"customerId": "4",
"mile": null,
"point": null,
"pointExpireDate": null,
"insDateTime": "2021-03-29T13:54:52+09:00",
"updDateTime": "2021-03-29T13:54:52+09:00"
}
]
あとがき
本記事では スマレジDeveloper アカウント作成、トークンの取得、APIとの疎通までの一連の流れをご紹介しました。今回は会員 API を試しましたが、他にもいろんな API が用意されているので引き続き触ってみようかなと思います。何かの参考になれば幸いです。