如何使用buyerPostalCode itemFilter param与npm的node-ebay模块

时间:2015-04-18 18:06:05

标签: node.js ebay-api

我正在使用npm's ebay module向Ebay的api请求符合特定条件的项目,主要是他们的关键字以及他们与邮政编码的距离。我想使用Ebay的api ItemFilterType来设置MaxDistance,这是过滤器类型之一以及文档状态

  

“指定与指定邮政编码的最大距离   (buyerPostalCode)搜索项目。请求还必须指定   buyerPostalCode“。

我正在设置params,正如ebay模块所述,只有我尝试添加itemFilterTYPE和MaxDistance过滤器,但它不起作用。如何将itemFilterType参数添加到我的调用中,以便过滤掉不在某个邮政编码中的项目?

我正在尝试以下内容:

var params = {
  'OPERATION-NAME': 'findItemsByKeywords',
  'keywords': 'shoes',
  'itemFilter': 'MaxDistance',    
  'buyerPostalCode': 94506
}

1 个答案:

答案 0 :(得分:0)

我最终将模块切换到ebay-api,这与我之前使用的模块略有不同,但与ebay api文档更加一致。

你告诉ebay buyerPostalCode(邮政编码)如下:

var params = {};

params.keywords = [ 'Harry Potter stuff' ];
params.buyerPostalCode = ['94101'];

要设置过滤器,特别是MaxDistance,请执行以下操作:

filters.itemFilter = [
  new ebay.ItemFilter("FreeShippingOnly", false),
  new ebay.ItemFilter('MaxDistance','5'),
  new ebay.ItemFilter('MinPrice','10'),
  new ebay.ItemFilter('MaxPrice','55')
];

您可以按照以下方式提出请求(这是straight from the docs example):

ebay.paginateGetRequest({
    serviceName: 'FindingService',
    opType: 'findItemsAdvanced',
    appId: '......................',      // FILL IN YOUR OWN APP KEY, GET ONE HERE: https://publisher.ebaypartnernetwork.com/PublisherToolsAPI
    params: params,
    filters: filters,
    pages: pages,
    perPage: perPage,
    parser: ebay.parseItemsFromResponse
  },
  // gets all the items together in a merged array
  function allItemsCallback(error, items) {
    if (error) throw error;

    console.log('Found', items.length, 'items from', pages, 'pages');

    for (var i = 0; i < items.length; i++) {
      console.log(items[i]);
    }  
  }
);