0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PythonでSP-APIを使って商品の価格を取得する

Posted at

SP-APIを使う機会があったのでSKUを指定して簡単に商品の価格を取得するコードを残しておきます。

アクセストークン取得

SP-APIでアクセストークンが必要になりますが、有効期限があって使いまわせないので最初にアクセストークンを取得します。

SP-API.py
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などが間違っている可能性があるので確認してください。
それぞれ確認の仕方は以下の投稿で解説されてます。

価格を取得する

試しに以下の商品の価格を取得してみます。

セラー.png

callAccessTokenで取得したアクセストークンを使って以下のように書いていきます。
cinditionは中古であればUsed、新品であればNewを指定します。

SP-API.py
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に金額が載っています(一番下)。

レスポンス.png

まとめ

複雑なコードを書くことなく簡単にSP-APIを使うことができました。
SKUの部分をASINで試したら価格が出てこなかったので詳しい方いらっしゃいましたら教えていただきたいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?