
日本のマーケットプレイス(マーケットプレイスID: A1VC38T7YXB528)で、競合価格情報を取得するためにAPIを使用しているのですが、いくつものASINに関する情報が期待通り取得できないという現象に遭遇しています。
実行環境: aws lambda
Runtime: python3.9
実行しているコードは以下の通り
from sp_api.api import Products
from sp_api.base.marketplaces import Marketplaces
def lambda_handler(event, context):
ASIN_LIST = ['B099RSQ9JR', 'B09SYMGWNM', 'B08ZHSWRJN', 'B0921SBWSY', 'B07QGSRCZD']
obj = Products(marketplace=Marketplaces.JP, credentials=event['credentials'])
result = obj.get_competitive_pricing_for_asins(ASIN_LIST)
return result.payload
対象のASIN['B099RSQ9JR', 'B09SYMGWNM', 'B08ZHSWRJN', 'B0921SBWSY', 'B07QGSRCZD']で実行すると、5つのASIN中2つの結果が得られます。
実行結果
対象のASIN['B099RSQ9JR']で指定すると、結果は得られます。
実行結果
対象のASIN['B09SYMGWNM']で指定すると、結果が得られません。
実行結果
結果が得られなかったASINは有効でありwww.amazon.co.jp上で存在していることは確認しています。今回サンプルで上げたASIN以外でも同様の事象は発生しています。
認証に使用しているクレデンシャルも、結果が得られている場合もあることから正確で必要な権限を持っていることを確認しています。
ドキュメンテーションを確認し、トラブルシューティングの手順も試みましたが、問題は解決しませんでした。
Amazonセリングパートナー開発者サポートや、https://developer.amazon.com/ja/のフォーラムに問題を相談しました。
サポートから回答を頂いた結果、
色を選択できる商品に関しましては、色をクリックした際のASINを指定してCallする必要がございます。
とのこと。カラーバリエーションやサイズなどのバリエーションがある商品については、詳細まで選択したasin情報を指定する必要がありました。
いやはや、回答をもらえば大したことではないにも関わらず、結構ハマってしまいました。
Comments