ebay FindingAPI how to find items specified within a given day range
Asked Answered
K

1

6

I am using this code portion to find all items which are in Auction type using ebay FindingAPI . Now I want to filter those items which have been started within a specified day (e.g: 2 days) . How can I add this preference??

Check this link and preference type . Here is the code portion :

IPaginationInput pagination = new PaginationInput();

pagination.entriesPerPageSpecified = true;
pagination.entriesPerPage = 100;
pagination.pageNumberSpecified = true;
pagination.pageNumber = curPage;
request.paginationInput = pagination;

ItemFilter if1 = new ItemFilter();
ItemFilter if2 = new ItemFilter();
if1.name = ItemFilterType.ListingType;
if1.value = new string[] { "Auction" };




ItemFilter[] ifa = new ItemFilter[1];
ifa[0] = if1;
request.itemFilter = ifa;

FindItemsByKeywordsResponse response = client.findItemsByKeywords(request);


foreach (var item in response.searchResult.item)
{

    tw.WriteLine(item.viewItemURL.ToString());
    links.Add(item.viewItemURL.ToString());
}
Kendrick answered 13/5, 2012 at 20:22 Comment(2)
Dont think there is a filter for that. FilterType only has EndTimeFrom EndTimeTo not startTime developer.ebay.com/devzone/finding/callref/types/…Reticulum
Have you tried to use the ModTimeFrom-type? Sure, it takes all auctions that have changed status, but maybe you can filter down the auctions client-side when you have this.Voigt
N
1

This should get you roughly what you need. Set the two dates used to compare to whatever you want.

IPaginationInput pagination = new PaginationInput();

                    pagination.entriesPerPageSpecified = true;
                    pagination.entriesPerPage = 100;
                    pagination.pageNumberSpecified = true;
                    pagination.pageNumber = curPage;
                    request.paginationInput = pagination;

                    ItemFilter if1 = new ItemFilter();
                    ItemFilter if2 = new ItemFilter();
                    if1.name = ItemFilterType.ListingType;
                    if1.value = new string[] { "Auction" };




                    ItemFilter[] ifa = new ItemFilter[1];
                    ifa[0] = if1;
                    request.itemFilter = ifa;

                    FindItemsByKeywordsResponse response = client.findItemsByKeywords(request);


                    foreach (var item in response.searchResult.item)
                    {
                         // EDIT
                         if (item.listingInfo.startTime.CompareTo(DateTime.UtcNow) > -1) // -1 is earlyer; 0 is same; +1 is later then
                         {
                           if (item.listingInfo.startTime.CompareTo(DateTime.UtcNow.AddDays(-2)) == -1 )
                           {
                               // You have an Item that was started between now and two days ago.
                               // Do something

                           }
                        }
                        // END EDIT

                        tw.WriteLine(item.viewItemURL.ToString());
                        links.Add(item.viewItemURL.ToString());
                    }
Nylon answered 16/9, 2012 at 7:40 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.