SP-APIを使う機会があったのでSKUを指定して簡単に商品の価格を取得するコードを残しておきます。
アクセストークン取得
SP-APIでアクセストークンが必要になりますが、有効期限があって使いまわせないので最初にアクセストークンを取得します。
import requests
callAccessToken():
refresh_token = 'refresh_token'
client_id = 'client_id'
client_secret = 'client_secret'
url = f'https://api.amazon.com/auth/o2/token?grant_type=refresh_token&refresh_token={refresh_token}&client_id={client_id}&client_secret={client_secret}'
response = requests.post(url).json()
token = response['access_token']
return token
response
を表示させると全部のjsonが確認できます。
アクセストークンはaccess_token
キーにあるのでtoken
に入れておきます。
エラーになった場合はリフレッシュトークンやクライアントIDなどが間違っている可能性があるので確認してください。
それぞれ確認の仕方は以下の投稿で解説されてます。
価格を取得する
試しに以下の商品の価格を取得してみます。
callAccessToken
で取得したアクセストークンを使って以下のように書いていきます。
cindition
は中古であればUsed
、新品であればNew
を指定します。
def getSkuPrice(acceess_token,condition,sku):
url = f'https://sellingpartnerapi-fe.amazon.com/products/pricing/v0/price?MarketplaceId=A1VC38T7YXB528&Skus={sku}&ItemType=Sku&ItemCondition={condition}'
#MarketplaceIdは日本であればA1VC38T7YXB528
headers = {
'x-amz-access-token':access_token,
'content-type':'application/x-www-form-urlencoded'
}
response = requests.get(url,headers=headers).json()
print (response)
condition = 'Used'
sku = 'E4CN0-SI-D230923-EK010-0080'
getSkuPrice(access_token,condition,sku)
結果
色々ありますが、Product
=>Udentifers
=>MarketplaceASIN
=>Offers
=>BuyingPrice
=>ListingPrice
=>Amount
に金額が載っています(一番下)。
まとめ
複雑なコードを書くことなく簡単にSP-APIを使うことができました。
SKUの部分をASINで試したら価格が出てこなかったので詳しい方いらっしゃいましたら教えていただきたいです。