本記事では、Amazonのマーケットプレース大口出品者が利用できるMarketplace WebService API(AmazonMWS)で、注文された商品のコンディション・コメントを取得する方法を説明します。
注文に対する納品書の発行システムを作成する際には、コンディションやコメントの取得が必要となります。
注文データの取得方法
AmazonMWSで注文された商品は、ListOrdersと、ListOrderItemsのAPIを使用して取得します。ListOrders APIは注文の一覧を取得します。住所や合計金額は分かりますが、どの商品が購入されたかの内訳は本APIでは取得できません。商品明細は、ListOrderItems APIをコールする事で取得可能です。
ListOrderItemsでは、商品明細(SellerSKU,ASIN,Title等)を取得する事が可能となっています。ですが、残念ながら商品のコンディション・コメントまでは取得できません。
注文された商品のコンディション・コメントが欲しい場合は、予めダウンロードされた「出品詳細レポート」から出品者SKU(SellerSKU)をキーに、上記の情報を取得します。出品詳細レポートをMWSのAPIで取得する場合、RequestReport,GetReportのAPIを使用します。
RequestReport API
RequestReportは「出品詳細レポート」に限らず、大量の情報一覧をTSV形式のレポートとして取得可能なAPIです。RequestReportリクエストのAPIの呼び出し制限は30req/1時間となっています。RequestReport APIでは、どの種類のレポートが欲しいかをReportTypeで指定します。ReportTypeとして指定可能なのは以下の5つです。
_GET_FLAT_FILE_OPEN_LISTINGS_DATA_ _GET_MERCHANT_LISTINGS_DATA_ _GET_MERCHANT_LISTINGS_DATA_LITE_ _GET_MERCHANT_LISTINGS_DATA_LITER_ _GET_MERCHANT_CANCELLED_LISTINGS_DATA_ |
各レポートの情報はTSV形式で取得できます。取得できる情報の概要とTSVの列一覧は以下の通りです。
_GET_FLAT_FILE_OPEN_LISTINGS_DATA_
商品の価格と数量の一覧sku asin price quantity |
_GET_MERCHANT_LISTINGS_DATA_
最大50,000件までの詳細な出品中の商品レポート。商品名 出品ID 出品者SKU 価格 数量 出品日 商品IDタイプ コメント コンディション 国外へ配送可 商品ID 在庫数 フルフィルメント・チャンネル |
_GET_MERCHANT_LISTINGS_DATA_LITE_
在庫を持つ出品データの一覧(=出品数が1以上の商品一覧)。50,000件以上出品している場合に使用可能。
出品者SKU 数量 価格 商品ID |
_GET_MERCHANT_LISTINGS_DATA_LITER_
出品中商品のSKUと数量だけの一覧。LITERの文字通り_GET_MERCHANT_LISTINGS_DATA_LITE_よりさらに軽い情報のみが取得できる。
50,000件以上出品している場合に使用可能
出品者SKU 数量 |
_GET_MERCHANT_CANCELLED_LISTINGS_DATA_
注文のキャンセルが行われた商品一覧。商品名 出品者SKU 価格 数量 商品IDタイプ コメント コンディション 国外へ配送可 商品ID |
上記の一覧から分かるように、商品のコンディション・コメントを取得する場合は、ReportTypeに_GET_MERCHANT_LISTINGS_DATA_を指定します。
データはリアルタイムではなくバッチで作成されるので、リクエストのレスポンスで上記の情報を取得する事はできません。
レスポンスでは、以下の2点をチェックします。
ReportProcessingStatusが_SUBMITTED_になっているか?
受け付けられた要求のReportRequestIdの値(後で使います)
レポートが作成されたかを確認する
RequestReport APIで依頼したレポートが、Amazon側で準備できたかをGetReportRequestList APIを使用して確認します。パラメータとしてReportRequestIdを指定しますが、これはRequestReport APIのレスポンスとしてサーバからもらった値をそのままセットします。
レスポンスとして、ReportRequestInfoが返されるので、この値が_DONE_であれば、サーバ側でレポートの作成が完了した事になります。
作成されたレポートのレポートIDを取得する
レポートが作成された事が分かったので、早速ダウンロードしたいのですが、その前に作成されたレポートのIDを取得する必要があります。これは、GetReportList APIをコールする事で取得可能です。
ReportRequestIdを渡してあげると、ReportIdを取得できます。
レポートIDを指定して、作成されたレポートをダウンロードする
実際のレポートは、GetReport APIで取得します。パラメータとしてReportIdを指定します。(ReportRequestIdではないので注意)
結果として、TSV区切りのテキストが取得できます。
APIの呼び出し制限は60req/1時間です。
まとめ
というわけで、注文された商品のコメントを取得するためには複数のAPIをコールする必要があります。呼び出すべきAPIの順序と、各APIの主だったリクエストキー、レスポンス情報をまとめると以下の流れになります。
もちろん、実際には他にも必要なリクエストKeyや応答項目が有りますし、APIによっては検索キーとして下記以外の項目を使用することも可能ですが、ここでは流れを分かりやすくするため省略しています。
詳細はAPI仕様書を参照してください。
ListOrders [注文一覧の取得] リクエストKey: 日付範囲etc レスポンスVal: AmazonOrderId ListOrderItems [注文明細の取得] リクエストKey: AmazonOrderId レスポンスVal: SellerSKU RequestReport [出品一覧詳細レポートの作成を依頼] リクエストKey: SellerSKU レスポンスVal: ReportRequestId GetReportRequestList [レポート作成が完了したか] リクエストKey: ReportRequestId レスポンスVal: ReportRequestInfo GetReportList [作成されたレポートのIDは何か] リクエストKey: ReportRequestId レスポンスVal: ReportId GetReport [作成されたレポートの取得] リクエストKey: ReportId レスポンスVal: コメント、コンディションetcの情報 |
びっくりする事に、たかだかコメント/コンディション情報を取るだけの為に6つもAPIをコールする必要がありました。
せめて、SellerSKU指定で1品分の出品明細が取得できるシンプルなAPIが有れば便利なのに…と思うところです。
Amazonマーケットプレイス徹底活用
関連記事
コメントを残す