亚马逊MWS PHP API(订单)
问题描述:
我是使用FBA的亚马逊卖家。我开始玩MWS。亚马逊MWS PHP API(订单)
1日的问题是:
哪个API是最好的(订单或报告) “亚马逊报告/配送/所有订单” 和报告/支付/日期范围的报告”
第二
我下载PHP库 “订单” 从 https://developer.amazonservices.co.uk/gp/mws/api.html?ie=UTF8&group=orders§ion=orders&version=latest
...当然亲和blems
在config.inc.php中我成立了所有的数据和额外的:
//set_include_path(get_include_path() . PATH_SEPARATOR . '../../.');
$path = 'http://MYWEBSITE/amazon-mws/';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
,我测试文件 “ListOrdersSample1”
<?php
/**
* List Orders Sample
*/
require_once('.config.inc.php');
/************************************************************************
* Instantiate Implementation of MarketplaceWebServiceOrders
*
* AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY constants
* are defined in the .config.inc.php located in the same
* directory as this sample
***********************************************************************/
// More endpoints are listed in the MWS Developer Guide
// North America:
//$serviceUrl = "https://mws.amazonservices.com/Orders/2013-09-01";
// Europe
$serviceUrl = "https://mws-eu.amazonservices.com/Orders/2013-09-01";
// Japan
//$serviceUrl = "https://mws.amazonservices.jp/Orders/2013-09-01";
// China
//$serviceUrl = "https://mws.amazonservices.com.cn/Orders/2013-09-01";
$config = array (
'ServiceURL' => $serviceUrl,
'ProxyHost' => null,
'ProxyPort' => -1,
'ProxyUsername' => null,
'ProxyPassword' => null,
'MaxErrorRetry' => 3,
);
$service = new MarketplaceWebServiceOrders_Client(
AWS_ACCESS_KEY_ID,
AWS_SECRET_ACCESS_KEY,
APPLICATION_NAME,
APPLICATION_VERSION,
$config);
/************************************************************************
* Uncomment to try out Mock Service that simulates MarketplaceWebServiceOrders
* responses without calling MarketplaceWebServiceOrders service.
*
* Responses are loaded from local XML files. You can tweak XML files to
* experiment with various outputs during development
*
* XML files available under MarketplaceWebServiceOrders/Mock tree
*
***********************************************************************/
$service = new MarketplaceWebServiceOrders_Mock();
/************************************************************************
* Setup request parameters and uncomment invoke to try out
* sample for List Orders Action
***********************************************************************/
// @TODO: set request. Action can be passed as MarketplaceWebServiceOrders_Model_ListOrders
$request = new MarketplaceWebServiceOrders_Model_ListOrdersRequest();
$request->setSellerId(MERCHANT_ID);
// object or array of parameters
invokeListOrders($service, $request);
/**
* Get List Orders Action Sample
* Gets competitive pricing and related information for a product identified by
* the MarketplaceId and ASIN.
*
* @param MarketplaceWebServiceOrders_Interface $service instance of MarketplaceWebServiceOrders_Interface
* @param mixed $request MarketplaceWebServiceOrders_Model_ListOrders or array of parameters
*/
function invokeListOrders(MarketplaceWebServiceOrders_Interface $service, $request)
{
try {
$response = $service->ListOrders($request);
echo ("Service Response\n");
echo ("=============================================================================\n");
$dom = new DOMDocument();
$dom->loadXML($response->toXML());
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
echo $dom->saveXML();
echo("ResponseHeaderMetadata: " . $response->getResponseHeaderMetadata() . "\n");
} catch (MarketplaceWebServiceOrders_Exception $ex) {
echo("Caught Exception: " . $ex->getMessage() . "\n");
echo("Response Status Code: " . $ex->getStatusCode() . "\n");
echo("Error Code: " . $ex->getErrorCode() . "\n");
echo("Error Type: " . $ex->getErrorType() . "\n");
echo("Request ID: " . $ex->getRequestId() . "\n");
echo("XML: " . $ex->getXML() . "\n");
echo("ResponseHeaderMetadata: " . $ex->getResponseHeaderMetadata() . "\n");
}
}
我尝试用于测试
$service = new MarketplaceWebServiceOrders_Mock();
但没有任何反应。 配置中的路径是否正确? 我不明白这
$serviceUrl = "https://mws-eu.amazonservices.com/Orders/2013-09-01";
我应该改变的日期?
我需要一个小的工作示例来启动。
非常感谢您
答
这取决于你所要完成的任务。我认为订单API是有利的,如果你需要做一些可操作的订单,例如自己发货(商家履行而不是FBA)。
如果您主要使用数据进行报告,则报告API更有用。我使用的主要报告之一是_GET_AMAZON_FULFILLED_SHIPMENTS_DATA_
,因为它在销售数据实际发货后提供。只是因为某人点了点东西并不意味着他们真的会得到这个东西。有时订单因信用卡被拒绝而失败,或者他们很快取消,等等。日期是您使用的API的版本。这将保持2013-09-01。我强烈推荐使用暂存器来查看为每种请求返回的数据类型。它还有助于可视化您需要提供的参数类型。获得预期的结果。编码之前,我总是从这里开始。 https://mws.amazonservices.co.uk/scratchpad/index.html(更改co.uk为任何你想要的,.de等)
嗨。谢谢。便笺本工作正常。你对我应该使用报告API。你能告诉我你是如何准备你的文件的?我想我错过了什么。这与我使用的API无关。如果我让它工作,我可以轻松地跳到另一个。你能否建议你让“模拟”工作,至少是因为它对我没有好处:)。对我来说,从简单和小事开始很重要。完美的将是“亚马逊/所有订单的报告/履行”,因为我每天都在使用它。问候 – awariat