简介
做跨境外贸的朋友应该都比较熟悉亚马逊了,我就不多介绍了。
亚马逊的卖家平台最近开通了新的API,即SP-API。最近由于一些业务逻辑,需要调用这个API,费了很多周折,在此进行记录。
以往,卖家中心提供的都是MWS接口,不过这个接口年头已久,跟不上时代的节奏了,因此亚马逊开发了新版的基于REST的接口。不得不说,REST接口要比原有的MWS接口好用的多,不过相应的也变得复杂了。
亚马逊开发者中心现在完全不提供MWS的接口的申请了,新入门的开发者必须调用新版的SP-API接口了。这对于我们这些调包侠造成了很大的困扰。
在完成我的业务逻辑时,我发现目前网上开源的python的sp-api的客户端还没有,而亚马逊也只提供了一个基本是全英文版的文档,在这里,因此我就自己动手搞了一个,目前客户端已上传至pypi,各位如有需要可以随意使用。不过如果目前的客户端难以满足您的业务逻辑,需要额外的技术支持,可以联系panhaoyu.site@outlook.com获取付费技术支持。
客户端的配置使用
客户端的使用比较简单,根随亚马逊的文档进行一系列的配置就可以使用了。需要说明的是,这个文档提供了中文版本,不过中文版本的很多翻译和网站实际是对应不上的,因此建议参考英文文档进行配置。这个文档介绍的比较详细了,此处不赘述了。
我的这个客户端的使用应该也是比较简单的,如下所示。只要输入进去相应的配置项,就可以启动了。
这个客户端的一大亮点是,可以支持类型提示,也可以直接解析亚马逊返回的JSON字符串。在采用PyCharm等现代IDE进行开发的时候,可以省去不少的麻烦。
from datetime import datetime
import sp_api_clients
endpoint = "https://sellingpartnerapi-eu.amazon.com"
marketplace_id = "A1F83G8C2ARO7P"
refresh_token = ""
order_pk = 'xxx-xxxxxx-xxxxxxx'
role_arn = "arn:aws:iam::xxxxxxxxxxxx:role/wms_role"
aws_access_key = 'xxxxxxxxxxxx'
aws_secret_key = "xxxxx/xxxxxxxxxxxxxxxxxxxxx"
client_config = dict(
role_arn=role_arn,
endpoint=endpoint,
marketplace_id=marketplace_id,
refresh_token=refresh_token,
aws_access_key=aws_access_key,
aws_secret_key=aws_secret_key,
)
order_client = sp_api_clients.orders.OrdersClient(**client_config, use_cache=True)
orders = order_client.getOrders(
MarketplaceIds=[marketplace_id],
CreatedAfter=datetime(2000, 1