scottyrobinson/laravel-amazon-mws

用于Laravel的简单Amazon MWS API包

0.2.5 2021-04-29 09:23 UTC

This package is auto-updated.

Last update: 2024-09-29 05:49:40 UTC


README

Software License Latest Version on Packagist Build Status StyleCI Scrutinizer Code Quality

用于Laravel的简单Amazon Marketplace Web Service API包

该包处于开发中。目前我们只实现了我们正在使用的端点。欢迎添加您需要的端点(贡献)。您可以在端点路线图下查看所有可用的端点。

内容

链接到官方Amazon MWS文档

安装

此包需要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仍在开发中。我们只添加了我们当前正在使用的端点。我们决定在早期阶段发布它,这样您就可以帮助添加一些端点或使用现有的。

端点列表

测试

composer test

变更日志

请参阅《变更日志》以获取最近变更的更多信息。

贡献

欢迎提交拉取请求。对于重大更改,请先打开一个问题来讨论您想更改的内容。

请确保适当更新测试。

安全

如果您发现任何与安全相关的问题,请通过电子邮件dev@looxis.com联系,而不是使用问题跟踪器。

致谢

关于我们

LOOXIS GmbH,总部位于德国明登。

LOOXIS 是个性化礼品制造商,其产品在欧洲的(照片)专卖店和我们的在线商店 www.looxis.com 上销售。

许可证

MIT