AmazonMWSで注文された商品のコンディション・コメントを取得する方法

本記事では、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マーケットプレイス徹底活用

関連記事

コメントを残す

メールアドレスが公開されることはありません。