Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way to programmatically reset exported orders in the Volusion API?

Tags:

api

volusion

I have a small python script that repeatedly makes requests to the Volusion API to extract columns from the Orders table.

I repeatedly send my HTTP request, because Volusion only returns the first 200 records each time. I send until I receive an empty XML response -- telling me that I've gotten all the records.

Now in order to run this same query again I have to manually login into Volusion and "reset" the run in "Volusion API: Run Generic\Orders". Do you know how to reset this through their API?

like image 319
Ashutosh Priyadarshy Avatar asked Dec 27 '22 09:12

Ashutosh Priyadarshy


1 Answers

To clarify this question a little... I think volusion actually only returns 100 records at a time. Each call to their api, gives you the next 100 records making the previous 100 records unavailable. Eventually, you will get to the end of the recordset and the api will just not return anything. To start getting results again from the api call which is generated and saved in their product/import-export/api section, you have to manually login and reset the export. NOTE: Resetting does not actually delete any records. This made me cringe the first time I reset my api.

To answer your question, I have contacted Volusion about this and have been told "no". I am not sure I have ever spoken to anyone who knows. Each person seemed to be on the lower end of tech support. But, if new records are added via more sales through the Volusion store front, they will be returned the next time your code makes the api call. Soooo, though this is not ideal, it works for the initial import.

Workaround: You can make api calls with a condition (e.g. where orderID = 2344, 2345 and so on) all day long. So, import your orderID's in a local database, using these to loop through and make your api calls with a condition. It is slow. I set up a job which runs at night and updates my local database getting some returned item information and other order modifications.

Be Aware: Volusion routinely brings their site down at night for maintenance(to be expected). Their API integration is slow(also to be expected). It does not make all the data that is available through manual export available through the API calls (e.g. quantity returned.) I think this is serious. Sales data without return details, in my opinion, is incomplete. I would say that the Volusion's API integration is lacking essential documentation and really re-word their advertisement of their API integration.

They have partners who are able to make calls to data not made available to the public through the api. I don't know the exact details. I am not sure if Volusion makes custom schemas for partners or if they have figured out a URL hack. I would really appreciate information on how to get returned item quantity through Volusion's api.

like image 181
dcary Avatar answered May 29 '23 15:05

dcary