2017-10-20 166 views
1

我是使用FBA的亚马逊卖家。我开始玩MWS。亚马逊MWS PHP API(订单)

1日的问题是:

哪个API是最好的(订单或报告) “亚马逊报告/配送/所有订单” 和报告/支付/日期范围的报告”

第二

我下载PHP库 “订单” 从 https://developer.amazonservices.co.uk/gp/mws/api.html?ie=UTF8&group=orders&section=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); 

这些文件看起来像 enter image description here

,我测试文件 “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"; 

我应该改变的日期?

我需要一个小的工作示例来启动。

非常感谢您

回答

0
  1. 这取决于你所要完成的任务。我认为订单API是有利的,如果你需要做一些可操作的订单,例如自己发货(商家履行而不是FBA)。
    如果您主要使用数据进行报告,则报告API更有用。我使用的主要报告之一是_GET_AMAZON_FULFILLED_SHIPMENTS_DATA_,因为它在销售数据实际发货后提供。只是因为某人点了点东西并不意味着他们真的会得到这个东西。有时订单因信用卡被拒绝而失败,或者他们很快取消,等等。

  2. 日期是您使用的API的版本。这将保持2013-09-01。我强烈推荐使用暂存器来查看为每种请求返回的数据类型。它还有助于可视化您需要提供的参数类型。获得预期的结果。编码之前,我总是从这里开始。 https://mws.amazonservices.co.uk/scratchpad/index.html(更改co.uk为任何你想要的,.de等)

+0

嗨。谢谢。便笺本工作正常。你对我应该使用报告API。你能告诉我你是如何准备你的文件的?我想我错过了什么。这与我使用的API无关。如果我让它工作,我可以轻松地跳到另一个。你能否建议你让“模拟”工作,至少是因为它对我没有好处:)。对我来说,从简单和小事开始很重要。完美的将是“亚马逊/所有订单的报告/履行”,因为我每天都在使用它。问候 – awariat