今日はネクストエンジン(NE)APIを利用してみます。
下記を試してみます。
- NE API 認証
- 商品マスターデータをアップロード
- 受注データの取得
- 在庫(商品)データの更新
- モール連携
NE APIのドキュメントはこちらです
https://developer.next-engine.com/
1. NE API 認証
1-1. uid
state
の取得
APIを利用するに際にアクセストークンは必要となります。
そして、
アクセストークンを取得するために uid
state
という二つの値を先に取得する必要があります。
uid
state
を取得するには下記のエンドポイントをコールします
https://base.next-engine.org/users/sign_in/?client_id={client_id}
その後、NEのログインが求められ、
ログイン完了後下記のURLがNEからコールされるので、uid
と state
を保存します。
https://{redirect_url}?client_id={client_id}&uid={uid}&state={state}
1-2. access_token
の取得
uid
state
を取得したあとは、実際に access_token
を取得します、
下記のエンドポイントに対し
https://api.next-engine.org/api_neauth
uid
state
client_id
client_secret
を指定します。 一旦Postmanなどのツールを利用して試してみます。
curl --location --request POST 'https://api.next-engine.org/api_neauth' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'uid={uid}' \
--data-urlencode 'state={state}' \
--data-urlencode 'client_id={client_id}' \
--data-urlencode 'client_secret={client_secret}'
上記のリクエストに対して下記が出力されます(実際の値は除外しました)。
{
"access_token": "",
"company_app_header": "",
"company_ne_id": "",
"company_name": "",
"company_kana": "",
"uid": "",
"pic_ne_id": "",
"pic_name": "",
"pic_kana": "",
"pic_mail_address": "",
"refresh_token": "",
"result": ""
}
2. 商品マスターデータをアップロード
2.1. 商品マスターデータを準備
CSVはこちらにフォーマットがあるので予めダウンロードしておきます。
https://manual.next-engine.net/main/product/prd_shohin-touroku/8588/
2.2. 商品マスターデータをアップロード
商品マスターデータアップロードのドキュメントはこちら
https://developer.next-engine.com/api/api_v1_master_goods/upload
動作は商品マスタ予約一括登録と同じで、非同期でメイン機能に登録可能になった時に登録されます。
登録結果は、アップロードキューを検索して確認します。
とのことですので、アップロードを依頼したあとにキューを確認することにします。
商品マスターデータをアップロードする際には下記のエンドポイントを利用します。
https://api.next-engine.org/api_v1_master_goods/upload
マスターデータはCSVファイルであげます。その他にaccess_token
data_type
を指定します。
curl --location --request POST 'https://api.next-engine.org/api_v1_master_goods/upload' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'access_token={access_token}' \
--data-urlencode 'refresh_token={refresh_token}' \
--data-urlencode 'wait_flag=1' \
--data-urlencode 'data_type=csv' \
--data-urlencode 'data=syohin_code,sire_code,jan_code,maker_name,maker_kana,maker_jyusyo,maker_yubin_bangou,kataban,iro,syohin_name,gaikoku_syohin_name,syohin_kbn,toriatukai_kbn,genka_tnk,hyoji_tnk,baika_tnk,gaikoku_baika_tnk,kake_ritu,omosa,haba,okuyuki,takasa,yusou_kbn,syohin_status_kbn,hatubai_bi,zaiko_teisu,hachu_ten,lot,keisai_tantou,keisai_bi,bikou,daihyo_syohin_code,visible_flg,mail_tag,tag,location,mail_send_flg,mail_send_num,gift_ok_flg,size,org_select1,org_select2,org_select3,org_select4,org_select5,org_select6,org_select7,org_select8,org_select9,org_select10,org1,org2,org3,org4,org5,org6,org7,org8,org9,org10,org11,org12,org13,org14,org15,org16,org17,org18,org19,org20,maker_kataban,zaiko_threshold,orosi_threshold,hasou_houhou_kbn,hasoumoto_code,zaiko_su,yoyaku_zaiko_su,nyusyukko_riyu,hit_syohin_alert_quantity,nouki_kbn,nouki_sitei_bi,syohin_setumei_html,syohin_setumei_text,spec_html,spec_text,chui_jiko_html,chui_jiko_text,syohin_jyotai_kbn,syohin_jyotai_setumei,category_code_yauc,category_text,image_url_http,image_alt
TestP001,9999,,,,,,,,登録時必須,,0,0,120000,,150000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'
下記がアウトプットです。
{
"result": "success",
"que_id": "1",
"access_token": "{access_token}",
"access_token_end_date": "2020-10-07 22:24:32",
"refresh_token": "{refresh_token}",
"refresh_token_end_date": "2020-10-09 22:24:32"
}
実際にNEの管理画面で確認してみます。
3. 受注データの取得
では次は受注データの取得をしてみます。
受注データに関するドキュメントはこちらです。
https://developer.next-engine.com/api/api_v1_receiveorder_base/search
エンドポイントはこちら
https://api.next-engine.org/api_v1_receiveorder_base/search
こちらがリクエスト。
curl --location --request POST 'https://api.next-engine.org/api_v1_receiveorder_base/search' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'access_token={access_token}' \
--data-urlencode 'refresh_token=
{refresh_token}' \
--data-urlencode 'wait_flag=1' \
--data-urlencode 'fields=receive_order_shop_id, receive_order_id, receive_order_cancel_date'
下記がレスポンスです。
{
"result": "success",
"count": "0",
"data": [],
"access_token": "{access_token}",
"access_token_end_date": "2020-10-07 22:24:32",
"refresh_token": "{refresh_token}",
"refresh_token_end_date": "2020-10-09 22:24:32"
}
受注データがないのでなにも返ってきていません。そもそもテスト商品に対して在庫を更新していないので、受注データも作成できないですね・・ 次は在庫を追加します。
4. 在庫(商品)データの更新
先ほど商品マスターデータを作成した際に使ったAPIを使います。商品コードTestP001に対して在庫10個追加します。
下記リクエスト
curl --location --request POST 'https://api.next-engine.org/api_v1_master_goods/upload' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'access_token=2f03eb6996a247dfd562bde85c98b62b605e42838c9356359c1b05b237fabdab35e700cd82f5502b56e074e367ca86bb20c96e909cd24c1c1c21da6c1cacfc4e' \
--data-urlencode 'refresh_token=6ab30dc7e973c872c1fb1dda39994d1a85fa57fcf3791b7c5ee61f0e36cbdbf1368933dd06f7263f8d2dc49013a6deac332c83a1bab0b53c0b04c56a28cb333b' \
--data-urlencode 'wait_flag=1' \
--data-urlencode 'data_type=csv' \
--data-urlencode 'data=syohin_code,sire_code,jan_code,syohin_name,syohin_kbn,toriatukai_kbn,genka_tnk,baika_tnk,tax_rate,hachu_ten,lot,daihyo_syohin_code,zaiko_su,yoyaku_zaiko_su,nyusyukko_riyu
TestP001,,,,,,,,,,,,10,,'
下記がレスポンスです。
{
"result": "success",
"que_id": "2",
"access_token": "{access_token}",
"access_token_end_date": "2020-10-07 22:24:32",
"refresh_token": "{refresh_token}",
"refresh_token_end_date": "2020-10-09 22:24:32"
}
在庫数が変更されたかどうか確認します
次
次は実際にASP.NET C#でプログラムを書いていきます。