timotheus / ebaysdk-python

eBay API SDK for Python
https://developer.ebay.com/tools/sdks
Other
807 stars 326 forks source link

GetOrders #27

Closed whitebook closed 11 years ago

whitebook commented 11 years ago

I am reading the ebay docs located at.

http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/GetOrders.html

(Note these docs are for v833, and this API call looks like from v837) But I dont think this matters because the root Doc URL says rev 837, but if you click on the link for the call you get version 833

http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/index.html

It says the following in the first paragraph...

Executing a GetOrders call with no input filters returns all active (pending) and completed (paid) single and multiple line item orders. To limit the amount of orders that are returned, or to returned specific orders, the caller can use filters in the following ways:

when I call

api.execute('GetOrders',{})

I get an Error Response Back From Ebay.

I dont know if this is by virtue of the Library Sending The Wrong Request, or Poor Documentation by Ebay.

Here is the error.

{ "Ack": { "value": "Failure" }, "Build": { "value": "E837_INTL_APIXO_16317172_R1" }, "Errors": { "ErrorClassification": { "value": "RequestError" }, "ErrorCode": { "value": "10009" }, "ErrorParameters": { "ParamID": { "value": "0" }, "Value": { "value": "CreateTimeFrom" } }, "LongMessage": { "value": "Non esiste nessun oppure \u00e8 specificato come un tag vuoto nella richiesta " }, "SeverityCode": { "value": "Error" }, "ShortMessage": { "value": "Non esiste nessun oppure \u00e8 specificato come un tag vuoto." } }, "Timestamp": { "value": "2013-08-30T12:07:03.772Z" }, "Version": { "value": "837" } }

timotheus commented 11 years ago

I think the docs are confusing. Most fields are marked conditional, so some are required. I had to supply a date range and order info to a successful call.

api.execute('GetOrders', {
        "CreateTimeFrom": now - datetime.timedelta(days=60),
        "CreateTimeTo": now,
        "OrderRole": "Buyer",
        "OrderStatus": "Completed",
    })
whitebook commented 11 years ago

Ok I guess the docs are just mis-leading. Or it is referring to something else.

Thanks again. Sorry for the noise.

timotheus commented 11 years ago

turns out with a more recent API version number the getOrders call can be made with "NumberOfDays"

api.execute('GetOrders', {'NumberOfDays': 30})
whitebook commented 11 years ago

Strange. I just tried api.execute('GetOrders', {'DetailLevel':'ReturnAll', 'NumberOfDays':3});

But I get an Error Back From Ebay API

Did you test that call? I read what you read in the docs, but it fails.

timotheus commented 11 years ago

Yes, I did. You may need to increase the API version number if you have a custom one defined. Reinstalling the SDK should work to since I recently bump the API default value.

whitebook commented 11 years ago

Thanks. I see it worked. Didn't notice the change in the SDK.