2017-10-20 404 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