承认订单报告亚马逊mws

时间:2014-12-29 06:38:04

标签: amazon-web-services amazon-mws

我正在使用" GetReportList" api,报告列表类型为" _GET_ORDERS_DATA"从亚马逊那里获取订单报告。但我想只拉新订单。我怎样才能使用"承认"确保我只提取新订单(以前没有拉过)的字段。我观察到"承认"默认情况下,field为true。如果有办法只提取新订单,请告诉我(我试图避免在这里使用时间戳)

由于

2 个答案:

答案 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);