2017-05-19 46 views
1

我試圖從亞馬遜mws獲得所有訂單。我知道我一次只能獲得100次,並且需要使用「nextToken2」來分頁瀏覽數據。 但是,我沒有得到的是如何設置setCreatedAftersetCreatedBefore的請求..我覺得很混亂,MWS期望這兩個值的設置。亞馬遜MWS/PHP /獲取所有訂單

,我發現這個代碼片段:

$t1 = date("c", time()-2*24*60*60); 
$t2 = date("c", time()-1*24*60*60); 
$request = new MarketplaceWebServiceOrders_Model_ListOrdersRequest(); 
$request->setSellerId(MERCHANT_ID); 
$request->setMarketplaceId(marketplace_id); 
$request->setCreatedAfter($t1); 
$request->setCreatedBefore($t2); 

它會得到在過去30天內的所有訂單。 但我如何獲得所有訂單?

回答

0

要通過ListOrders獲取所有訂單,請將setCreatedAfter日期設置爲最早的訂單之前的日期。將setCreatedBefore日期設置爲當前日期/時間。這僅僅是您希望返回訂單的一系列日期。您需要創建一個足夠覆蓋所有訂單的範圍。

第一次通話後,請檢查NextToken。如果它存在,你有更多的訂單,所以開始一個循環,直到NextToken爲空。一旦它是空的,你有所有的訂單。

注意限制問題。你可能不得不放慢你的操作。

另一種方法是使用Reports API,它避免了節流問題,但有額外的步驟來設置。