zaffar-saffee / laravel-5-amazon-mws-persistent

原版来自 Peron/laravel5-amazon-mws,实现用于通过 Laravel 5.x 使用亚马逊的 MWS 网络服务。重点在于使用持久设置而不是文件。(实际上用于 Laravel Spark 项目)

dev-master 2016-05-04 18:54 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:04:06 UTC


README

https://github.com/przemekperon/amazon-mws-laravel.git 分支而来

在我尝试完成一个需要持久数据库设置的 spark 项目时更新了这个仓库

此外,我还实现了亚马逊需要的 Auth_Token

这是一个用于以面向对象的方式连接到亚马逊的商贩网络服务(MWS)的 PHP 包,重点在于直观的使用。

这不是用于亚马逊网络服务(AWS)- 云计算服务。

安装

  1. composer require zaffar-saffee/laravel-5-amazon-mws-persistent

  2. 将服务提供者添加到 config/app.php 中的 providers 数组

Zaffar\AmazonMws\ServiceProvider::class,

config/app.php 中不需要添加门面

持久设置

我使用 anlutro/laravel-settings 作为持久设置,因为该项目提供了易于配置的选项来为每个用户保存设置。有关更多信息,请参阅 anlutro/laravel-settings 文档

    Setting::set("storeName","mystore"); // this will be key for store config, you pass this as an option in setstore() 
    Setting::set("authToken",""); // required back from 
    Setting::set("merchantId","");  
    Setting::set("marketplaceId","");  
    Setting::set("keyId","");  
    Setting::set("secretKey","");  
    Setting::set("amazonServiceUrl","https://mws.amazonservices.com/");  // set to valid node
    Setting::set("muteLog","false");  //dev purpose, make it true on production

请查看服务提供者和亚马逊核心,了解我如何将其转换为 Peron 的文件格式配置。计划进一步修改

使用方法

使用方法与原始作者(przemekperon/amazon-mws-laravel)完全相同

API 所需的所有技术细节都在幕后处理,因此用户可以轻松构建代码,向亚马逊发送请求,而无需跳过参数 URL 格式化和令牌管理等障碍。

使用一个对象的通用工作流程如下

  1. 为需要执行的任务创建一个对象。
  2. 使用 set____ 方法用参数填充它,具体取决于对象。
  3. 将请求提交给亚马逊。用于此目的的方法通常命名为 fetch____submit____,并且没有参数。
  4. 使用 get____ 方法引用返回的数据,无论是单个值还是批量。
  5. 使用内置的日志系统监控库的性能。

请注意,如果您要针对多个亚马逊商店采取行动,则需要为每个商店创建一个单独的对象。

请注意,当对象不被视为可重用时,它们的表现最佳。否则,如果新的请求失败,您可能会获取旧的反应数据。

示例用法

以下是一些库的使用示例。API 所需的所有技术细节都在幕后处理,因此用户可以轻松构建代码,向亚马逊发送请求,而无需跳过参数 URL 格式化和令牌管理等障碍。

以下是一个示例函数,用于获取过去 24 小时内更新的所有仓库履行的订单

use Zaffar\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 Zaffar\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();
}