top of page

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

7월 19일
2분 분량

셀링 파트너 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 셀러 센트럴의 요금 시뮬레이터와 비교해 보면 이해하기 쉽습니다

파라미터를 여러 가지로 설정해, 필요한 데이터를 가져올 수 있게 됩시다.

 
 
 

댓글


© Copyright ROBIN planning LLC.

bottom of page