top of page

Python x SP-API で注文管理情報検索 | Amazon Selling partner API


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

OrdersのAPIを使うことによって、注文情報をプログラムから取得することができます。これらの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実行

getOrders 指定したパラメーターで示された時間帯に作成または更新された注文情報を返します。いろいろなフィルタリング条件を適用して、返される注文情報を絞り込むことができます。NextToken が存在する場合、他の条件ではなくNextTokenが注文情報の検索に使用されます。

getOrders 指定されたオーダーIDで示されるオーダーを返します。

getOrderBuyerInfo 指定された注文の購入者情報を返します。

getOrderAddress 指定された注文の配送先住所を返します。

getOrderItems 指定された注文IDで示される注文の詳細な受注項目情報を返します。NextTokenが指定された場合、次のページの注文項目を取得できます。

getOrderItemsBuyerInfo 指定された順番で注文された商品の購入者情報を返します。


getOrders (サンプル)

from sp_api.api import Orders
from sp_api.base.marketplaces import Marketplaces
def lambda_handler(event, context):
	#OrdersAPI利用のためのオブジェクト生成
	obj = Orders(marketplace=Marketplaces.JP,
	                   credentials=event['credentials'])
	#検索に必要な値を設定し財務イベント情報を取得
	result = obj.get_orders(CreatedAfter='2023-01-01T00:00:00',
	                        CreatedBefore='2023-01-31T23:59:59',
	                        FulfillmentChannels=["AFN"],
	                        OrderStatuses=["Shipped,Canceled"])
	return result.payload

もし、Orders APIからNextTokenを取得している場合は、パラメーターでNextTokenだけを渡してあげればOK

	result = obj.get_orders(NextToken=event['NextToken'])

パラメータの説明


実行結果(サンプル)


{
	"Orders": [
		{
			"BuyerInfo": {
				"BuyerEmail": "*****@****.***"
			},
			"AmazonOrderId": "***-******-******",
			"EarliestShipDate": "2023-01-04T14:59:59Z",
			"SalesChannel": "Amazon.co.jp",
			"OrderStatus": "Shipped",
			"NumberOfItemsShipped": 1,
			"OrderType": "StandardOrder",
			"IsPremiumOrder": false,
			"IsPrime": false,
			"FulfillmentChannel": "AFN",
			"NumberOfItemsUnshipped": 0,
			"HasRegulatedItems": false,
			"IsReplacementOrder": "false",
			"IsSoldByAB": false,
			"LatestShipDate": "2023-01-04T14:59:59Z",
			"ShipServiceLevel": "Expedited",
			"IsISPU": false,
			"MarketplaceId": "A1VC38T7YXB528",
			"PurchaseDate": "2023-01-03T07:21:21Z",
			"ShippingAddress": {
				"StateOrRegion": "◯◯県",
				"PostalCode": "000-0000",
				"CountryCode": "JP"
			},
			"IsAccessPointOrder": false,
			"SellerOrderId": "***-******-******",
			"PaymentMethod": "Other",
			"IsBusinessOrder": false,
			"OrderTotal": {
				"CurrencyCode": "JPY",
				"Amount": "2180.00"
			},
			"PaymentMethodDetails": [
				"Standard"
			],
			"IsGlobalExpressEnabled": false,
			"LastUpdateDate": "2023-01-05T09:02:23Z",
			"ShipmentServiceLevelCategory": "Expedited"
		},
		{
			"BuyerInfo": {},
			"AmazonOrderId": "***-******-******",
			"EarliestShipDate": "2023-01-05T14:59:59Z",
			"SalesChannel": "Amazon.co.jp",
			"OrderStatus": "Canceled",
			"NumberOfItemsShipped": 0,
			"OrderType": "StandardOrder",
			"IsPremiumOrder": false,
			"IsPrime": false,
			"FulfillmentChannel": "AFN",
			"NumberOfItemsUnshipped": 0,
			"HasRegulatedItems": false,
			"IsReplacementOrder": "false",
			"IsSoldByAB": false,
			"LatestShipDate": "2023-01-05T14:59:59Z",
			"ShipServiceLevel": "Expedited",
			"IsISPU": false,
			"MarketplaceId": "A1VC38T7YXB528",
			"PurchaseDate": "2023-01-03T11:51:29Z",
			"IsAccessPointOrder": false,
			"SellerOrderId": "***-******-******",
			"PaymentMethod": "Other",
			"IsBusinessOrder": true,
			"PaymentMethodDetails": [
				"Standard"
			],
			"IsGlobalExpressEnabled": false,
			"LastUpdateDate": "2023-01-03T11:53:35Z",
			"ShipmentServiceLevelCategory": "Expedited"
		}
	],
	"CreatedBefore": "2023-01-04T23:59:59Z"
}





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

0件のコメント

Comments


bottom of page