**Could have saved me a lot of time if the docs for FindProducts stated this.** You seem to blame the docs for most of your issues. You need to read them to get a clear understanding. The first paragraph of the FindProducts docs points to findItemsByProduct, which is a shorthand version of findItemsAdvanced for products. As for your non-working URLs, the problem there is that you are adding random parameters to the request and expecting them to work. The documentation exists to tell you what parameters (arguments) are available. Your FindProducts call didn't accept Category=Vintage because Category isn't a parameter. CategoryID is the parameter and the docs clearly explain that you have to pass the category ID number. And on your findItemAdvanced (fIA) example is also using invalid parameters. AvailableItemsOnly=true is available on FindProducts but not on fIA. Likewise MaxEntries should be the paginationInput.entriesPerPage. There is a sample section in the docs for each call. If you're going to skip over the rest of the docs, at least look at that.
Shopping API GetSingleItem and the Finding API find calls return productID when it is available. Search by itemID. You can find out which calls use/return a particular field using the field index on the documentation pages. Domains are deprecated as of Oct 2014.
&categoryId(0)=550&categoryId(1)=20081 does not seem to work. Did you try it? Can you post the URL? &categoryId(0)=550 does not work either. ,Thanks very much for replying, clickprime. I really appreciate it. But if Domains are deprecated, and so are Categories, how do I search for a product in, for example, the Antiques department? (I'm saying department for lack of another word, I don't mean it technically. But I do need to search on what the site GUI defines as "Categories".)
Thanks @clickprime it seems like everything, or almost everything is in the docs. But they are not great, and the API is kind of convoluted. For example why available items only is possible for Find Items, but not for the advanced version? Also, the docs for Advanced Items state that you can do the search in multiple categories: "categoryId Specifies the category from which you want to retrieve item listings. This field can be repeated to include multiple categories. Up to three (3) categories can be specified." But when I repeat this field I get the "Input data is invalid" error message. This is ridiculous. String findProducts = "
http://open.api.ebay.com/shopping?callname=findItemsAdvanced&responseencoding=XML&appid=" + APPID + "&siteid=0&version=525&" + "&QueryKeywords=" + keywords + "&categoryId=" + "550" + "&categoryId=" + "20081"
The solution for finding items in a category is to use findItemsAdvanced. Could have saved me a lot of time if the docs for FindProducts stated this. Anyway this is the URL for finding products in category (you can obviously change the category number):
http://open.api.ebay.com/shopping?callname=findItemsAdvanced&responseencoding=XML&appid=" + APPID + "&siteid=0&version=525&" + "&AvailableItemsOnly=true" + "&QueryKeywords=" + keywords + "&categoryId=" + "550" + "&MaxEntries=50
In the Java API it says that you can't use both search keywords and categories together, but you can use domains. Maybe I got confused. So how do I find a product in a category? What's the correct modification of this URL? String findProducts = "
http://open.api.ebay.com/shopping?callname=FindProducts&responseencoding=XML&appid=" + APPID + "&siteid=0&version=525&" + "&AvailableItemsOnly=true" + "&QueryKeywords=" + keywords + "&Category=" + "Vintage" + "&MaxEntries=10"; This completely ignores the Category param, no matter what I put there. I also tried categoryId, with no luck. What am I missing?