我正在使用eBay的Java SDK为我当前的项目,我们需要通过eBay API做各种任务。很多API调用都运行良好。然而,GetSellingManagerSoldListings
请求根本没有返回售出的历史记录,即使调用响应没有指示任何错误。下面是请求XML(我使用eBayAuthToken
的生产令牌)
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header>
<ebl:RequesterCredentials xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ebl="urn:ebay:apis:eBLBaseComponents" SOAP-ENV:mustUnderstand="0">
<ebl:eBayAuthToken>MY_AUTH_TOKEN</ebl:eBayAuthToken>
</ebl:RequesterCredentials>
</S:Header>
<S:Body>
<GetSellingManagerSoldListingsRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<Version>967</Version>
<Archived>true</Archived>
<Pagination>
<EntriesPerPage>200</EntriesPerPage>
<PageNumber>1</PageNumber>
</Pagination>
<SaleDateRange>
<TimeFrom>2016-08-14T00:00:00.124+08:00</TimeFrom>
<TimeTo>2016-08-29T11:50:07.125+08:00</TimeTo>
</SaleDateRange>
</GetSellingManagerSoldListingsRequest>
</S:Body>
</S:Envelope>
,响应XML为:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<GetSellingManagerSoldListingsResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2016-08-29T03:50:12.672Z</Timestamp>
<Ack>Success</Ack>
<Version>967</Version>
<Build>E967_CORE_APISELLING_17965876_R1</Build>
</GetSellingManagerSoldListingsResponse>
</soapenv:Body>
</soapenv:Envelope>
我在这里做错了什么吗?为什么响应中没有SalesRecord
?
我尝试添加Search
以通过添加itemID
<Search>
<SearchType>ItemID</SearchType>
<SearchValue>MY_ITEM_ID</SearchValue>
</Search>
但是没有,仍然没有SalesRecord
另外,我想知道是否有其他调用方法来检索eBay销售历史。
好了,我终于明白问题出在哪里了…原来我把存档设置为True,我只得到过去15天的销售历史记录。我的问题的解决方案是根本不设置存档选项。
来自eBay Trading API文档,它说
列出超过90天的记录的请求。记录在创建后90到120天之间存档,之后存档只能使用此标签进行检索。
我不知道如何将存档设置为true将导致API调用不返回我需要的信息,即使在我的测试用例中,我只获得不到90天的销售历史记录,但至少我现在弄清楚了问题,并最终可以继续下一步!