Package: amazon-sp-api-clients
amazon-sp-api-clientsThis is a package generated from amazon selling partner open api models.The package is tested in many situations, with fully type hint supported. Enjoy it!AttentionV1.0.0 changes many api, compared with v0.x.x!注意！V1.0.0相较于v0.x.x更改了大量的API！Featuresready to use;provide code to generate clients, in case that amazon update models;type hint;orders api, feed api, report api, and all other apis;automatically manage tokens.Installationpipinstallamazon-sp-api-clientsNoteFor technical support, please contactpanhaoyu.china@outlook.com.Previously this lib is only open access but not open source, and now it's time to make it public to serve more developers.If there's any bug, please fell free to open an issue or send a pr.UsageFor saving time, I just paste part of my test code here as a demo.For better understanding, all the fields are the same length of actual fields, and some readable information are kept.fromdatetimeimportdatetimeimportamazon_sp_api_clientsendpoint="https://sellingpartnerapi-eu.amazon.com"marketplace_id="XXXXXXXXXXXXXX"refresh_token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx""xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"role_arn="arn:aws:iam::123456789012:role/xxxxxx"aws_access_key='XXXXXXXXXXXXXXXXXXXX'aws_secret_key="XXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"client_id='amzn1.application-oa2-client.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'client_secret='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'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,lwa_client_key=client_id,lwa_client_secret=client_secret,)clients=amazon_sp_api_clients.AmazonSpApiClients(**client_config)orders=clients.orders_v0.getOrders(MarketplaceIds=[marketplace_id],CreatedAfter=datetime(2000,1,1).isoformat()).payload.Ordersfororderinorders:print(order.AmazonOrderId,order.LastUpdateDate)ConfigurationThe client configuration can be set both at the initiation and as environment variables.SP_API_ROLE_ARNSP_API_ENDPOINTSP_API_REGIONSP_API_MARKETPLACE_IDSP_API_REFRESH_TOKENSP_API_AWS_ACCESS_KEYSP_API_AWS_SECRET_KEYSP_API_LWA_CLIENT_KEYSP_API_LWA_CLIENT_SECRETBuildThe client is generated in the following steps:download amazon open api repository;copy open api 2 json files from the amazon repository to a single directory;convert open api 2 json files to open api 3 json files;convert open api 3 json files to py clients.The main script of generation is thetest_mainpython file.When convert open api to py clients, I separated the process into 6 steps, which are defined in
theswager_client_generator.stagesmodule.If my build is not suitable for your demand, or amazon api model updates but my build do not follow, you can clone this
repo, modify theapi.pyttemplate and build it by yourself, and please push a PR, thanks!AcknowledgementThe auth method is partially frompython-amazon-sp-api.NoteIf this library helps you, please give me a star, thanks!如果这个库对您有用，请为我点亮Star，谢谢！