我正在使用" GetReportList" api,报告列表类型为" _GET_ORDERS_DATA"从亚马逊那里获取订单报告。但我想只拉新订单。我怎样才能使用"承认"确保我只提取新订单(以前没有拉过)的字段。我观察到"承认"默认情况下,field为true。如果有办法只提取新订单,请告诉我(我试图避免在这里使用时间戳)
由于
答案 0 :(得分:1)
您在提货时需要确认订单报告,然后您只会在下次通话时将订单报告设置为确认为假。
所以你需要运行这个操作:
$request1 = new MarketplaceWebService_Model_UpdateReportAcknowledgementsRequest();
$request1->setMerchant(MERCHANT_ID);
$idList1 = new MarketplaceWebService_Model_IdList();
$request1->setReportIdList($idList1->withId(/* SET THE REPORT ID YOU HAVE TAKEN */));
$request1->setAcknowledged(true);
invokeUpdateReportAcknowledgements($service, $request1);
function invokeUpdateReportAcknowledgements(MarketplaceWebService_Interface $service, $request1)
{
try {
$response = $service->updateReportAcknowledgements($request1);
} catch (MarketplaceWebService_Exception $ex) {
var_dump($ex);
在您拿到订单报告之后,您只需使用以下行请求下一个订单报告:
$request->setAcknowledged(false);
就像这样,只有第一次通话设置为已确认的报告才会显示在列表中。
第一个调用在php API中描述,我认为它叫做SetAcknowledgmentSample,第二个调用需要在getReportListSample文件中调用
答案 1 :(得分:0)
我认为你可以将它们设置如下,我从亚马逊报告的API样本中找到的示例代码中找到了
$parameters = array (
'Merchant' => MERCHANT_ID,
'AvailableToDate' => new DateTime('now', new DateTimeZone('UTC')),
'AvailableFromDate' => new DateTime('-6 months', new DateTimeZone('UTC')),
'Acknowledged' => false,
);
$request = new MarketplaceWebService_Model_GetReportListRequest($parameters);
$request = new MarketplaceWebService_Model_GetReportListRequest();
$request->setMerchant(MERCHANT_ID);
$request->setAvailableToDate(new DateTime('now', new DateTimeZone('UTC')));
$request->setAvailableFromDate(new DateTime('-3 months', new DateTimeZone('UTC')));
$request->setAcknowledged(false);