andrewyj/amazon-sp-api

本软件包最新版本(0.0.1)没有可用的许可证信息。

亚马逊销售合作伙伴SDK

0.0.1 2021-07-15 07:22 UTC

This package is auto-updated.

Last update: 2024-09-15 14:23:43 UTC


README

SP-API是卖家及其代理在亚马逊市场上高效销售产品的新一代API功能套件。亚马逊市场网络服务(Amazon MWS)API先于SP-API,并且已经广泛使用超过十年。亚马逊在其文档中声明,SP-API是未来,并且SP API将接收所有新的更新和增强。然而,可以预期在新的系统稳定并提供与现有MWS API相匹配之前,将从MWS过渡到SP-API。

更多信息请访问:https://github.com/amzn/selling-partner-api-docs

安装

composer require andrewyj/amazon-sp-api

基本用法

1. 定义认证信息

$auth = [
    'refresh_token' => '', // Aztr|...
    'client_id' => '', // App ID from Seller Central, amzn1.sellerapps.app.cfbfac4a-......
    'client_secret' => '', // The corresponding Client Secret
    'region' => \AmazonSellingPartnerAPI\Client::REGION_NORTH_AMERICA, 
    'access_key' => '', // Access Key of AWS IAM User, for example AKIAABCDJKEHFJDS
    'secret_key' => '', // Secret Key of AWS IAM User
    'role_arn' => '', // AWS IAM Role ARN for example: arn:aws:iam::123456789:role/Your-Role-Name
];

2. 使用refresh_token交换access_token

$oAuth = new \AmazonSellingPartnerAPI\OAuth($auth['client_id'], $auth['client_secret']);
$auth['access_token'] = $oAuth->getAccessToken($auth['refresh_token'])->access_token;

3. 选择签名版本(v4)

$sign = new \AmazonSellingPartnerAPI\Signature\V4Signature();

4. 获取角色信息

$assumedRole = new \AmazonSellingPartnerAPI\AssumeRole($auth['region'], $auth['access_key'], $auth['secret_key'], $sign);
$credentials = $assumedRole->assume($auth['role_arn']);
$auth['access_key'] = $credentials['AccessKeyId'];
$auth['secret_key'] = $credentials['SecretAccessKey'];
$auth['session_token'] = $credentials['SessionToken'];

5. 发送请求

$client = new \AmazonSellingPartnerAPI\Client($sign);
$client->setAuth($auth);
var_dump($client->get('/orders/v0/orders/XXX-XXXXXX-XXXXXXX'));

模块使用

1. 定义认证信息

定义认证信息

2. 选择模块

$sign = new \AmazonSellingPartnerAPI\Signature\V4Signature();
$cache = new Cache();
$order = new \AmazonSellingPartnerAPI\Module\Order($auth, $cache, $sign);

Cache()用于缓存角色凭据和access_token。它必须具有get()set()函数。如果您没有,则需要创建一个适配器。

3. 发送请求

# route param
var_dump($order->getOrder('XXX-XXXXXX-XXXXXXX')->send());

# query param
var_dump($order->getOrders()->withQuery([
  "CreatedAfter" => "2020-04-13T06:28:08Z",
  "MarketplaceIds" => [
      "XXXXXX",
  ]
])->send());