Python × SP-API로 상품 판매 수수료 가져오기 | Amazon Selling Partner API

셀링 파트너 API(SP-API)는 Amazon의 셀링 파트너를 위한 자동화 기능의 차세대 API 스위트로, Amazon 마켓플레이스 웹 서비스(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
파라미터 설명
・asin: 수수료를 추정할 대상 상품의 ASIN
・price: 상품에 설정하려는 판매 가격
・currency: 통화 코드(일본이라면 JPY)
・shipping_price: 배송료. 포함하지 않으면 0
・is_fba: FBA(Amazon 배송)라면 True, 자체 배송이라면 False
실행 결과(샘플)
{
"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 셀러 센트럴의 요금 시뮬레이터와 비교해 보면 이해하기 쉽습니다
파라미터를 여러 가지로 설정해, 필요한 데이터를 가져올 수 있게 됩시다.



댓글