georanma / lumen-amazon-mws
使用Lumen 5.x与亚马逊MWS网络服务。基于sonnenglas/amazon-mws-laravel包,并修改以兼容最新的Lumen版本(+错误修复)。
Requires
- php: >=7.2
- ext-curl: *
- illuminate/support: ^7.0
Requires (Dev)
- phpunit/phpunit: 5.*
This package is auto-updated.
Last update: 2024-09-24 09:31:08 UTC
README
注意
为Lumen框架创建分支,以调整配置加载方式。
这是一个PHP包,用于以面向对象的方式连接到亚马逊的商家网络服务(MWS),重点关注直观的使用。
目前正针对Lumen框架进行优化。
这不是亚马逊网络服务(AWS)- 云计算服务。
版本4.0的重大变更
如果您没有使用Lumen Framework >=7.0,请查看版本标签 <4.0。4.0以下版本与Lumen 5.5兼容,但我无法确认4.0以下标签与5.5到6.0之间的兼容性。这取决于您Lumen版本所需的illuminate\support版本。
安装
-
composer require georanma/lumen-amazon-mws
-
将服务提供者添加到config/app.php中的providers数组中
Sonnenglas\AmazonMws\ServiceProvider::class,
在config/app.php中没有要添加的门面
- 将src/config/amazon-mws.php配置文件从src/config复制到Lumen的配置目录。
使用方法
API所需的所有技术细节都在幕后处理,因此用户可以轻松构建发送请求到亚马逊的代码,而无需跳过诸如参数URL格式化和令牌管理等障碍。使用其中一个对象的一般工作流程如下
- 为需要执行的任务创建一个对象。
- 使用set____方法根据对象加载数据。
- 向亚马逊提交请求。通常使用fetch____或submit____方法进行此操作,且没有参数。
- 使用get____方法引用返回的数据,无论是单个值还是批量值。
- 使用内置的日志系统监控库的性能。
请注意,如果您要操作多个亚马逊商店,则需要为每个商店创建一个单独的对象。
还请注意,当对象不被视为可重用时,它们的表现最佳。否则,如果新的请求失败,您可能会获取旧响应数据。
示例用法
这里有几个库在使用的示例。API所需的所有技术细节都在幕后处理,因此用户可以轻松构建发送请求到亚马逊的代码,而无需跳过诸如参数URL格式化和令牌管理等障碍。
以下是一个示例函数,用于获取过去24小时内更新的所有由仓库完成的亚马逊订单
use Sonnenglas\AmazonMws\AmazonOrderList; function getAmazonOrders() { $amz = new AmazonOrderList("myStore"); //store name matches the array key in the config file $amz->setLimits('Modified', "- 24 hours"); $amz->setFulfillmentChannelFilter("MFN"); //no Amazon-fulfilled orders $amz->setOrderStatusFilter( array("Unshipped", "PartiallyShipped", "Canceled", "Unfulfillable") ); //no shipped or pending $amz->setUseToken(); //Amazon sends orders 100 at a time, but we want them all $amz->fetchOrders(); return $amz->getList(); }
以下是一个示例函数,用于将先前创建的XML数据发送到亚马逊以更新库存数量
use Sonnenglas\AmazonMws\AmazonOrderList; function sendInventoryFeed($feed) { $amz = new AmazonFeed("myStore"); //store name matches the array key in the config file $amz->setFeedType("_POST_INVENTORY_AVAILABILITY_DATA_"); //feed types listed in documentation $amz->setFeedContent($feed); $amz->submitFeed(); return $amz->getResponse(); }