2013-03-13 112 views
1

我试图让所有产品的价格在12.50和11.50之间。我正在使用Node-APAC来处理对Amazon产品API的请求。以下是我的代码:亚马逊产品API不尊重ResponseGroups

exports.search = function(req, res){ 

    OperationHelper = require('apac').OperationHelper; 

    var opHelper = new OperationHelper({ 
     awsId: process.env.AMZ_ACCESS_KEY_CODE, 
     awsSecret: process.env.AMZ_SECRET_ACCESS_KEY, 
     assocId: process.env.AMZ_ASSOCIATE_ID 
    }); 

    opHelper.execute('ItemSearch', { 
     'SearchIndex': 'All', 
     'Keywords': ' ', 
     'MaximumPrice': 12.50, 
     'MinimumPrice': 11.50, 
     'ResponseGroup': 'Medium' 
    }, function(error, results) { 
    res.send(results); 
    }); 
}; 

该响应不会将结果限制为Medium ResponseGroup。你可以看到一些完整的回应here(这是巨大的)。结构如下:

{ 
    ItemSearchResponse: { 
     $: {...}, 
     OperationRequest: [...], 
     Items: [ 
      { 
       Request: [...], 
       TotalResults: [...], 
       TotalPages: [...], 
       MoreSearchResultsUrl: [...], 
       Item: [ 
        { 
         ASIN: [...], 
         DetailPageURL: [...], 
         ItemLinks: [...], 
         SmallImage: [...], 
         MediumImage: [...], 
         LargeImage: [...], 
         ImageSets: [...], 
         ItemAttributes: [...], 
         OfferSummary: [...] 
        }, 
        {...}, 
        {...}, 
        {...}, 
        {...} 
       ] 
      } 
     ] 
    } 
} 

它没有返回文档所说的应包含在Medium ResponseGroup中。它会返回一些其他不必要的东西。任何帮助表示赞赏!


注意:它也返回不符合价格范围的产品。这些问题可能有关。任何提示将有所帮助。

回答

2

根据Amazon Product Advertising doc for the ItemSearch operation,MinimumPrice(或MaximumPrice)“指定要返回的项目的最小(或最大)价格。价格以最低货币面额表示,例如,便士,例如3241代表32.41美元。“

因此,如果您更改值以下两个参数:

'MaximumPrice': 12.50, 
'MinimumPrice': 11.50, 

'MaximumPrice': 1250, 
'MinimumPrice': 1150, 

价格过滤应该工作。至于ResponseGroup,我建议你通过“Small,OfferSummary”(根据我对你的问题"How to specify what Amazon Product API returns"的回答)。

+0

工作就像一个魅力!谢谢! – kentcdodds 2013-03-17 01:56:04