MWS 最新のInventoryレポートを取得するにはAPIを4回も叩く必要がある?
どういうこと
最新のInventoryレポートを取得するだけでも、なんとAPIを4回叩く必要がある。
セラーセントラルのInventoryマネージャーを使ったことがある人であればイメージできると思うけど、
セラーセントラルからレポートを取得する場合は
レポート作成リクエスト→完了を待つ→レポート取得
という流れ。
今回MWSからレポートを取得する場合は
レポート作成リクエスト(RequestReport)
完了を待つ(GetReportRequestList)
最新のレポートの選定(GetReportList)
レポート取得(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_OPEN_LISTINGS_DATA) |
レスポンス | XML |
指定したReportTypeの作成済みレポートの一覧を取得できる。
一番上が最新なのでそこのReportIdを取得する。
ReportRequestIdListで指定できるけど、一番上が最新なので指定する必要はない。
GetReport
項目 | |
---|---|
Action | GetReport |
ReportId | GetReportListで取得したReportId |
レスポンス | テキストタブ区切り |
GetReportListで取得したReportIdを指定してInventoryレポートを取得。
テキストタブ区切りで返ってくる。CSVがよかったなあ
まとめ
まあでもそんなもんやろ
Author And Source
この問題について(MWS 最新のInventoryレポートを取得するにはAPIを4回も叩く必要がある?), 我々は、より多くの情報をここで見つけました https://qiita.com/ayies128/items/425313a25e7ef2d35bc4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .