LoginSignup
4
2

More than 3 years have passed since last update.

[ネクストエンジン] API Part 1 認証、商品マスターの更新

Posted at

今日はネクストエンジン(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からコールされるので、uidstate を保存します。

https://{redirect_url}?client_id={client_id}&uid={uid}&state={state}

こちにフローをまとめた図をコピペします。
image.png

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の管理画面で確認してみます。

image.png

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"
}

在庫数が変更されたかどうか確認します

image.png

次は実際にASP.NET C#でプログラムを書いていきます。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2