top of page
検索

Python x SP-API で商品情報検索 | Amazon Selling partner API

更新日:2023年5月30日


セリングパートナー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 Catalog Items

Catalog-Itemsの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実行

CatalogItems APIは以下の操作を提供しています。

searchCatalogItems Amazon カタログ アイテムと関連情報のリストを検索して返します。

getCatalogItems Amazon カタログ内のアイテムの詳細を取得します。


searchCatalogItems

from sp_api.api import CatalogItems
from sp_api.base.marketplaces import Marketplaces
def lambda_handler(event, context):
	#CatalogItems API利用のためのオブジェクト生成
	obj = CatalogItems(marketplace=Marketplaces.JP,
	                   credentials=event['credentials'])
	#検索に必要な値を設定し商品情報を取得
	result = obj.search_catalog_items(keywords='test',
                                    pageSize=1,
                                    brandNames=None,
                                    includedData='images,summaries',
                                    classificationIds='')
	return result.payload

パラメータの説明



実行結果(例)

{
	"numberOfResults": 682495,
	"refinements": {
		"brands": [
			{
				"numberOfResults": 31634,
				"brandName": "DFV mobile"
			},
			{
				"numberOfResults": 11337,
				"brandName": "HM&CL"
			},
			{
				"numberOfResults": 10035,
				"brandName": "Yise Knight"
			},
			{
				"numberOfResults": 9922,
				"brandName": "House Of Candles"
			},
			{
				"numberOfResults": 7716,
				"brandName": "Independently Published"
			},
			{
				"numberOfResults": 7040,
				"brandName": "QIAOMEL"
			},
			{
				"numberOfResults": 5546,
				"brandName": "Routledge"
			},
			{
				"numberOfResults": 5153,
				"brandName": "XXXXXbrand"
			},
			{
				"numberOfResults": 5070,
				"brandName": "Jpp"
			},
			{
				"numberOfResults": 4890,
				"brandName": "Createspace Independent Publishing Platform"
			}
		],
		"classifications": [
			{
				"numberOfResults": 236985,
				"displayName": "洋書",
				"classificationId": "52231011"
			},
			{
				"numberOfResults": 132804,
				"displayName": "家電&カメラ",
				"classificationId": "3210991"
			},
			{
				"numberOfResults": 53667,
				"displayName": "ファッション",
				"classificationId": "2229203051"
			},
			{
				"numberOfResults": 43870,
				"displayName": "ホーム&キッチン",
				"classificationId": "3839151"
			},
			{
				"numberOfResults": 39640,
				"displayName": "産業・研究開発用品",
				"classificationId": "3445394051"
			},
			{
				"numberOfResults": 31742,
				"displayName": "DIY・工具・ガーデン",
				"classificationId": "2016930051"
			},
			{
				"numberOfResults": 27062,
				"displayName": "車&バイク",
				"classificationId": "2017305051"
			},
			{
				"numberOfResults": 23699,
				"displayName": "DVD",
				"classificationId": "562002"
			},
			{
				"numberOfResults": 23013,
				"displayName": "パソコン・周辺機器",
				"classificationId": "2127210051"
			},
			{
				"numberOfResults": 18235,
				"displayName": "本",
				"classificationId": "465610"
			}
		]
	},
	"items": [
		{
			"asin": "1260470350",
			"images": [
				{
					"marketplaceId": "A1VC38T7YXB528",
					"images": [
						{
							"variant": "MAIN",
							"link": "https://m.media-amazon.com/images/I/41kSp18z0gL.jpg",
							"height": 500,
							"width": 389
						},
						{
							"variant": "PT01",
							"link": "https://m.media-amazon.com/images/I/41W8uD-hSoS.jpg",
							"height": 311,
							"width": 500
						},
						{
							"variant": "PT02",
							"link": "https://m.media-amazon.com/images/I/41RJrpym0US.jpg",
							"height": 309,
							"width": 500
						}
					]
				}
			],
			"summaries": [
				{
					"marketplaceId": "A1VC38T7YXB528",
					"brandName": "McGraw-Hill Education",
					"browseNode": "97801011",
					"itemName": "The Official Guide to the TOEFL iBT Test (Official Guide to the TOEFL Test)",
					"manufacturer": "McGraw-Hill"
				}
			]
		}
	]
}


getCatalogItems Amazon カタログ内のアイテムの詳細を取得します。

from sp_api.api import CatalogItems
from sp_api.base.marketplaces import Marketplaces
def lambda_handler(event, context):
	#CatalogItems API利用のためのオブジェクト生成
	obj = CatalogItems(marketplace=Marketplaces.JP,
	                   credentials=event['credentials'])
	#検索に必要な値を設定し商品情報を取得
	result = obj.get_catalog_item(asin='B09JFLJTZG')
	return result.payload

パラメータの説明



実行結果(例)

{
	"asin": "B09JFLJTZG",
	"summaries": [
		{
			"marketplaceId": "A1VC38T7YXB528",
			"brandName": "Amazon",
			"browseNode": "2285132051",
			"colorName": "BLACK",
			"itemName": "Fire TV Stick 4K Max - Alexa対応音声認識リモコン(第3世代)付属 | ストリーミングメディアプレーヤー",
			"manufacturer": "Amazon",
			"modelNumber": "K2R2TE"
		}
	]
}



パラメータをいろいろ設定し、必要なデータを取得できるようになりましょう。

0件のコメント

最新記事

すべて表示

Comentarios


© Copyright ROBIN planning LLC.

bottom of page