Help us understand the problem. What is going on with this article?

MWS 最新のInventoryレポートを取得するにはAPIを4回も叩く必要がある?

More than 1 year has passed since last update.

どういうこと

最新のInventoryレポートを取得するだけでも、なんとAPIを4回叩く必要がある。
セラーセントラルのInventoryマネージャーを使ったことがある人であればイメージできると思うけど、
セラーセントラルからレポートを取得する場合は
レポート作成リクエスト→完了を待つ→レポート取得
という流れ。

今回MWSからレポートを取得する場合は

  1. レポート作成リクエスト(RequestReport)

  2. 完了を待つ(GetReportRequestList)

  3. 最新のレポートの選定(GetReportList)

  4. レポート取得(GetReport)

こんな流れ!
各アクションがどんなものか簡単に紹介しておこうかと。

リクエスト詳細

RequestReport

項目
Action RequestReport
ReportType 出品レポート(_GET_FLAT_FILE_OPEN_LISTINGS_DATA_)
レスポンス XML

指定したReportTypeのレポートの作成リクエストを送信する。
RequestIdを取得できる。

GetReportRequestList

項目
Action GetReportRequestList
ReportRequestIdList RequestReportで取得したRequestId
レスポンス XML

色々な使い方があると思うけど、
今回はReportRequestIdListにRequestReportで取得したRequestIdを設定することで、レポート作成の進捗状況を確認する。
進捗状況を示すステータスは以下の種類がある。

  • _SUBMITTED_
  • _IN_PROGRESS_
  • _CANCELLED_
  • _DONE_
  • _DONE_NO_DATA_

数分に1回ステータスを見に行ってDONEになれば次へ進むって感じの実装になるかな。

※正確に最新じゃなくていいって場合は、
「RequestReportで作成リクエスト出して1時間待つ」みたいな実装でGetReportRequestListで状態を確認するフェーズをとばすことができる。

GetReportList

項目
Action GetReportList
ReportType 出品レポート(GET_FLAT_FILE_OPENLISTINGS_DATA_)
レスポンス XML

指定したReportTypeの作成済みレポートの一覧を取得できる。
一番上が最新なのでそこのReportIdを取得する。
ReportRequestIdListで指定できるけど、一番上が最新なので指定する必要はない。

GetReport

項目
Action GetReport
ReportId GetReportListで取得したReportId
レスポンス テキストタブ区切り

GetReportListで取得したReportIdを指定してInventoryレポートを取得。
テキストタブ区切りで返ってくる。CSVがよかったなあ

まとめ

まあでもそんなもんやろ

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away