【PHP】Amazon MWSで全ての出品者情報を取得する方法

おはようございます。

今日は、「Amazon MWSで全ての出品者情報を取得する方法」についてです。

せっかちな人のために、結論は

Amazon MWSで全ての出品者情報を取得する方法」はありません。

です。

なので、Amazon MWSで掲題のことを実行しようと思っている人は、違う方法を考える必要があります。
※例外的にAmazon MWS Subscriptions APIを利用すれば取れることは取れます。(後で触れます)

この結論に至るまで、6時間もの時間を費やしたので今日はその経緯等を踏まえながら説明していきたいと思います。
/*————————————————————————————————————*/
この前のブログでも書いたように、Amazon MWSのAPIを使ったツールを現在作成しています。

その中で、入力したASINの商品の最低価格から誤差5%以内の出品者数をカウントするという内容が必要となりました。

で、自分がまず採用したのは、商品APIの中の

「GetLowestOfferListingsForASIN」

でした。

このAPIのレスポンス要素のなかの「LowestOfferListings」のデータを加工すればいいのではと思い、サンプルプログラムを基にプログラムを作成しました。

無事にそのプログラムも動作し、いくつかの商品でテストしてもきっちり出来ているように見えたので、実際に使ってみてもらったところ、いくつかの商品で実際に目視で数えた場合とで違いがあるケースが発見されました。

自分の作ったプログラムにミスがあったのかなと思い、いくらチェックしても自分が見る範囲では正常に見えます。

なので、あとはGoogle先生に聞くのみです。

ひたすら、聞き続けた結果が「GetLowestOfferListingsForASIN」では不可という結論でした。
【以下、参考サイト】

Get a list of ALL offereings for an ASIN - Amazon Seller Forums(英語)

Amazon’s New Pricing Information through the MWS Products API | BookScouter.com(英語)

New Amazon API Could Change Repricing Game(英語)

これがわかりやすい
ver3.0.0へのバージョンアップに伴う変更点:価格改定君-Amazonマーケットプレイス価格改定ソフト(日本語)

つまりは、Amazonが指定しているグループを代表するオファーしか表示されないということ。
なので、「GetLowestOfferListingsForASIN」を実行しても誤差が生じる場合があるということだったのです。

※ここまで、約4時間程度経過。。。

ここで、自分のミスではなくて、そもそも無理であったということがわかったのでようやく次へ進むことができます。
(原因がわからないと次にも進めないですしね。。。)

ではどうすればよいのか。

「価格改定君」さんの情報をみると、

「これにつきましては、MWSの仕様ですので、何卒ご了承のほどお願いいたします。」

とあり、ここが限界だとおっしゃっています。

しかし、自分が作成しているツールについては「ご理解の程、、、」としてしまっては、信用性が著しく失われてしまうため、代替案が必要でした。
(MWSではおっしゃる通り、全ての出品者情報を取得する方法はありません)

で、さらにGoogle先生に聞き続けた結果、サブスクリプションAPIを利用すればTOP20の出品者情報を取得することができることが分かりました。
/*————————————————————————————————————*/
【代替案】
SubscriptionsAPIを利用すればOKか?

【参考サイト】(全部日本語)
サブスクリプションAPIがご利用可能となりました - Amazon セラーディスカッションフォーラム

サブスクリプションAPIの特徴について - Amazon マーケットプレイスWebサービス(MWS) 日本公式ブログ

「これを利用すればいけるんじゃないか!!」

と思ったのでさらに、利用方法を調べていきました、

【完成イメージ】
Amazon MWS ラボ - トップページ

上記のAmazon MWS ラボ様が公開している「他社価格情報取得ページ 」が自分の求める機能をカバーしていたので、これがどうやって動いているかを検証。

簡単なステップ
Amazon MWS ラボ - トップページ

AmazonMWS Subscription APIの設定について
サブスクリプションAPI 設定方法について - Amazon マーケットプレイスWebサービス(MWS) 日本公式ブログ

どうやら、Subscription APIを利用して、Amazon SQSにデータを蓄積して、そこからデータを引っ張ってきてTop20の出品者情報を取得するという仕組みということがわかる。

仕組みが分かったので意気揚々とAmazon SQSの設定登録やSubscription APIのプログラムの作成に取りかかろうとしたところ AmazonMWS SubscriptionAPIは

「出品している商品のサブスクリプションしかできない」

という事実を知る。
(違ったらこっそり教えてください。。。)

自分が作っているツールは出品前のリサーチの為のツールなので、これではダメだとわかる。
※全ての商品に対してSubscription APIを利用してデータを蓄積しておいて、そこへ入力したASINコードを基に検索するということをすれば、できなくはないが、膨大なデータ数となるため、今回は見送り。。。

というここまでで約6時間を費やし、分かったことは

Amazon MWSで全ての出品者情報を取得する方法」はありません。

ということでした。

方法がないのであればこのブログは意味ないじゃん。と思われるかもですが、自分はなかなか「方法が無い」ということがわかるまでかなりの時間を費やしてしまったので、自分と同じ疑問を持った人が少しでも早く回答にたどり着けるよう、筆を取らせて頂きました。

※自分ではこれでもかと調べたつもりですが、情報に誤り等があればご教示頂ければ幸いです。

ご一読頂きまして、ありがとうございました。