scottyrobinson / laravel-amazon-mws
用于Laravel的简单Amazon MWS API包
Requires
- php: ^7.3
- guzzlehttp/guzzle: ^7.0
- spatie/array-to-xml: ^2.11
Requires (Dev)
- dms/phpunit-arraysubset-asserts: ^0.2.0
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.3
README
用于Laravel的简单Amazon Marketplace Web Service API包
该包处于开发中。目前我们只实现了我们正在使用的端点。欢迎添加您需要的端点(贡献)。您可以在端点路线图下查看所有可用的端点。
内容
安装
此包需要PHP 7.3和Laravel 8.0或更高版本。对于较老的Laravel版本,请安装最新的0.1.x版本。
使用Composer安装包
composer require looxis/laravel-amazon-mws
该包将自动注册自己。
将MWS的环境变量添加到您的.env文件中。变量名称列在amazon-mws.php 配置文件中。
配置
要成功认证Amazon Marketplace Web Service,您需要将环境变量添加到您的.env文件中。变量名称列在amazon-mws.php 配置文件中。您还可以设置默认市场。
您可以选择使用以下命令发布配置
$ php artisan vendor:publish --provider="Looxis\LaravelAmazonMWS\AmazonMWSServiceProvider" --tag="config"
这将在您的配置目录中创建一个amazon-mws.php文件。
包含环境变量的配置文件内容
<?php return [ 'access_key_id' => env('MWS_ACCESS_KEY_ID'), 'secret_key' => env('MWS_SECRET_KEY'), 'seller_id' => env('MWS_SELLER_ID'), 'mws_auth_token' => env('MWS_AUTH_TOKEN'), 'default_market_place' => env('MWS_DEFAULT_MARKET_PLACE', 'DE'), ];
使用
认证
Amazon MWS通过规范化的查询字符串进行认证。Laravel Amazon MWS包为您处理此操作,并为每个请求添加字符串。您只需将您的卖家特定凭证添加到您的.env文件中(配置)。
市场
如果您需要更改市场,只需通过MWS外观在代码中设置国家/地区即可。出于简单起见,该包通过给定的国家选择正确的端点和市场ID。您无需自行设置。 (Amazon MWS端点和市场ID概述) 如果缺少某些内容,请不要犹豫,创建一个问题。
AmazonMWS::setMarketplaces('FR'); AmazonMWS::setMarketplaces('DE', 'FR'); //to append multiple marketplaces to your request query strings.
订单
检索您需要的订单信息。Amazon MWS订单文档概述
列出订单
返回在指定时间段内创建或更新的订单。MWS列出订单文档
$response = AmazonMWS::orders()->list([ 'CreatedAfter' => '2020-04-09T18:56:29+02:00' ]); // List Order By Next Token $response = AmazonMWS::orders()->list([ 'NextToken' => '27u07N+WSfaaJkJYLDm0ZAmQazDrhw3C...' ]);
限制
- 最大请求配额为六个,每分钟恢复一个请求。MWS限制算法
- 抛出带有
Request is throttled的ServerException
获取订单
根据您指定的AmazonOrderId值返回订单。MWS获取订单文档
$response = AmazonMWS::orders()->get("1234-1234-1234"); //get amazon order by id $response = AmazonMWS::orders()->get("1234-1234-1234", "123-123-123"); //get multiple orders
限制
- 最大请求配额为六个,每分钟恢复一个请求。MWS限制算法
- 抛出带有
Request is throttled的ServerException
列出订单项
根据您指定的AmazonOrderId返回订单项。MWS 列出订单项文档
$response = AmazonMWS::orders()->getItems("1234-1234-1234");
限制
- ListOrderItems和ListOrderItemsByNextToken共享相同的限流。
- 最大请求配额为30,每两秒恢复一个请求。MWS 限流算法
- 抛出带有
Request is throttled的ServerException
数据馈送
Feeds API 允许您将库存和订单数据上传到亚马逊。Amazon MWS 订单文档概述
提交数据馈送
上传一个数据源供亚马逊MWS处理。
您必须设置数据源类型和内容才能成功提交数据源。xml的内容取决于FeedType
$feedXmlContent = '<?xml version="1.0"?> ...'; $response = AmazonMWS::feeds() ->setType("_POST_ORDER_ACKNOWLEDGEMENT_DATA_") ->setContent($xml) ->submit();
限制
- 最大请求配额为15,每两分钟恢复一个请求。
- 每小时请求配额:30 MWS 限流算法
- 抛出带有
Request is throttled的ServerException
响应
亚马逊MWS的XML响应将被解析并转换为方便的数组结构。要检查数据源是否成功,您需要通过GetSubmissionFeedResult端点来检查结果。
SubmitFeedResponse 示例
[
"request_id" => "e86f7299-9712-43e3-b290-b659da85b527"
"data" => [
"FeedSubmissionId" => "2291326430"
"FeedType" => "_POST_ORDER_ACKNOWLEDGEMENT_DATA_"
"SubmittedDate" => "2020-03-04T14:54:14+00:00"
"FeedProcessingStatus" => "_SUBMITTED_"
]
]
获取数据馈送提交结果
返回数据源处理报告和Content-MD5头部。
将Feed提交ID作为参数传递以检索Feed结果亚马逊MWS描述 GetFeedSubmissionResult
$response = AmazonMWS::feeds() ->getFeedSubmissionResult($feedSubmissionId);
限制
- 最大请求配额为15,每分钟恢复一个请求。
- 每小时请求配额:60 MWS 限流算法
- 抛出带有
Request is throttled的ServerException
响应
Feed提交结果响应将被解析并转换为方便的结构。
SubmitFeedResponse 示例
[
"status_code" => "Complete",
"processing_summary" => [
"MessagesProcessed" => "2"
"MessagesSuccessful" => "2"
"MessagesWithError" => "0"
"MessagesWithWarning" => "0"
],
"result" => null
]
一般响应
响应格式文档 亚马逊MWS XML响应将被解析并转换为方便的数组结构。GetOrder响应示例
[
"request_id" => "be781aff-3c63-485a-aec8-951ed3be2ba4",
"data" => [
"AmazonOrderId" => "902-3159896-1390916",
...
]
]
异常
Laravel Amazon MWS包不会捕获guzzle返回的异常。例如,对于限制的ServerExceptions或缺失参数的ClientExceptions。
端点路线图
Laravel Amazon MWS仍在开发中。我们只添加了我们当前正在使用的端点。我们决定在早期阶段发布它,这样您就可以帮助添加一些端点或使用现有的。
端点列表
- 订单(MWS文档概述)
- ListOrders
- ListOrdersByNextToken
- GetOrder
- ListOrderItems
- ListOrderItemsByNextToken
- GetServiceStatus
- Orders数据类型
- Feeds(MWS文档概述)
- SubmitFeed
- GetFeedSubmissionList
- GetFeedSubmissionListByNextToken
- GetFeedSubmissionCount
- CancelFeedSubmissions
- GetFeedSubmissionResult
- Easy Ship(MWS文档概述)
- 财务(MWS文档概述)
- 履行入站运输(MWS文档概述)
- 履行库存(MWS 文档概述)
- 履行外发货件(MWS 文档概述)
- 卖家履行(MWS 文档概述)
- 产品(《MWS 文档概述》)
- 推荐(《MWS 文档概述》)
- 报告(《MWS 文档概述》)
- 卖家(《MWS 文档概述”)
- 发货发票(《MWS 文档概述”)
- 订阅(《MWS 文档概述”)
测试
composer test
变更日志
请参阅《变更日志》以获取最近变更的更多信息。
贡献
欢迎提交拉取请求。对于重大更改,请先打开一个问题来讨论您想更改的内容。
请确保适当更新测试。
安全
如果您发现任何与安全相关的问题,请通过电子邮件dev@looxis.com联系,而不是使用问题跟踪器。
致谢
关于我们
LOOXIS GmbH,总部位于德国明登。
LOOXIS 是个性化礼品制造商,其产品在欧洲的(照片)专卖店和我们的在线商店 www.looxis.com 上销售。