セリングパートナーAPI(SP-API)は、Amazonのセリングパートナー向けの自動化機能の次世代APIスイートで、AmazonマーケットプレイスWebサービス(MWS)APIが進化したものです。MWSはAmazonの重要な機能へのプログラムによるアクセスを10年以上提供してきました。SP-APIが公開されれば、現在MWSをサポートしているすべてのAmazonの店舗において本番環境で利用できるようになります。
現在、MWSを利用している開発者の方は、2024年4月1日までにSP-APIに移行する必要があります。(2023年1月23日時点の情報)
Selling Partner API for Product Fees
Product FeesのAPIを使うことによって、商品販売における手数料の推定をプログラムで取得することができます。手数料を考慮し商品の価格を設定をする際に、役立てられます。
環境準備
PythonでSP-APIを利用するためには、python-amazon-sp-apiライブラリをインストールする必要があります。私はaws lambdaでpythonを実行するので、lambdaの対象プロジェクトにライブラリをインストールするために「-t .」のオプションをつけています
pip install python-amazon-sp-api -t .
SP-APIの実行には資格情報が必要です。資格情報は、credentialsにまとめて格納しておくと便利です。それぞれの値の取得方法は別記事で紹介します。
credentials : {
"refresh_token":リフレッシュトークン,
"lwa_app_id":クライアントID,
"lwa_client_secret": クライアント秘密情報,
"aws_access_key":AWSアクセスキー,
"aws_secret_key":AWSシークレットキー
}
API実行
getMyFeesEstimateForSKU 指定したマーケットプレイスで、指定された販売者 SKU に関するアイテムの商品販売推定手数料を取得することができます。対象商品に設定したい金額をリクエストに含めることによって、商品に価格を設定する前に、商品販売の推定手数料を知ることができるので、販売価格の設定に役立てることができます。
getMyFeesEstimateForASIN 指定したマーケットプレイスで、指定された販売者 ASIN に関するアイテムの商品販売推定手数料を取得することができます。対象商品に設定したい金額をリクエストに含めることによって、商品に価格を設定する前に、商品販売の推定手数料を知ることができるので、販売価格の設定に役立てることができます。
getMyFeesEstimateForASIN (サンプル)
from sp_api.api import ProductFees
from sp_api.base.marketplaces import Marketplaces
def lambda_handler(event, context):
#ProductFees利用のためのオブジェクト生成
obj = ProductFees(marketplace=Marketplaces.JP,
credentials=event['credentials'])
#検索に必要な値を設定し商品手数料取得イベント情報を取得
result = obj.get_product_fees_estimate_for_asin(asin='B01LYKJUX6',
price=1500,
currency='JPY',
shipping_price=0,
is_fba=True)
return result.payload
パラメータの説明
実行結果(サンプル)
{
"FeesEstimateResult": {
"Status": "Success",
"FeesEstimateIdentifier": {
"MarketplaceId": "A1VC38T7YXB528",
"IdType": "ASIN",
"SellerId": "***********",
"SellerInputIdentifier": "B01LYKJUX6",
"IsAmazonFulfilled": true,
"IdValue": "B01LYKJUX6",
"PriceToEstimateFees": {
"ListingPrice": {
"CurrencyCode": "JPY",
"Amount": 1500
}
}
},
"FeesEstimate": {
"TimeOfFeesEstimation": "2023-02-15T01:52:23.000Z",
"TotalFeesEstimate": {
"CurrencyCode": "JPY",
"Amount": 554
},
"FeeDetailList": [
{
"FeeType": "ReferralFee",
"FeeAmount": {
"CurrencyCode": "JPY",
"Amount": 120
},
"FinalFee": {
"CurrencyCode": "JPY",
"Amount": 120
},
"FeePromotion": {
"CurrencyCode": "JPY",
"Amount": 0
}
},
{
"FeeType": "VariableClosingFee",
"FeeAmount": {
"CurrencyCode": "JPY",
"Amount": 0
},
"FinalFee": {
"CurrencyCode": "JPY",
"Amount": 0
},
"FeePromotion": {
"CurrencyCode": "JPY",
"Amount": 0
}
},
{
"FeeType": "PerItemFee",
"FeeAmount": {
"CurrencyCode": "JPY",
"Amount": 0
},
"FinalFee": {
"CurrencyCode": "JPY",
"Amount": 0
},
"FeePromotion": {
"CurrencyCode": "JPY",
"Amount": 0
}
},
{
"FeeType": "FBAFees",
"FeeAmount": {
"CurrencyCode": "JPY",
"Amount": 434
},
"FinalFee": {
"CurrencyCode": "JPY",
"Amount": 434
},
"FeePromotion": {
"CurrencyCode": "JPY",
"Amount": 0
},
"IncludedFeeDetailList": [
{
"FeeType": "FBAPickAndPack",
"FeeAmount": {
"CurrencyCode": "JPY",
"Amount": 434
},
"FinalFee": {
"CurrencyCode": "JPY",
"Amount": 434
},
"FeePromotion": {
"CurrencyCode": "JPY",
"Amount": 0
}
}
]
}
]
}
}
}
取得できる各項目が何を表すかはAmazon Seller Centralの料金シミュレーターと見比べてみるとわかりやすいです
パラメータをいろいろ設定し、必要なデータを取得できるようになりましょう。
Comments