I am interested in finding a programmer for a project who has experience with the ChannelAdvisor APIs to create a program that can interact with the ChannelAdvisor APIs to (a) periodically retrieve new orders, and separate those orders into individual line items in a CSV (Comma Separated Value) file, and (b) upload ship tracking information for shipped orders from a provided CSV file back into ChannelAdvisor via their API.
The program can be written in any industry standard language (PHP, Lua, Python, etc). The program will be launched by another system (“outside system”). It is assumed that the program will be a stand-alone executable program that accepts as its inputs properly formatted CSV files from designated folders on a local hard drive. The program will write its outputs as CSV files to designated folders as well. Return values from the ChannelAdvisor API will also be written out as local files. A mechanism for the outside system to provide settings to the new program can be a simple ini file maintained by the outside system and read by the new program. Note that the outside system will likely include a function interface with the new program at some point in the future.
High level summary of (a) “retrieving new orders”: The stand-alone program will be launched by the outside system, and the program will periodically poll ChannelAdvisor for new, ready-to-ship (i.e. payment authorized and/or cleared) orders via the ChannelAdvisor API at intervals set by the outside system. If new orders are found, the new program will download and then write these orders in their native XML format to a designated folder. The program will then analyze each new XML order, separate into individual orders if present, and write these individual orders in a CSV format to a designated folder.
High level summary of (b) “uploading ship tracking numbers”: The stand-alone program will monitor a designated folder for new ship tracking CSV files placed by the outside system. If found, the program will read in these file(s), format them into the proper XML format, and send these across to the ChannelAdvisor API.
The code created in the project must be stable, reusable, extensible, verified usable in both in ChannelAdvisor’s production environments, must be free of any licensing fees and royalties, and must not infringe on any copyright or intellectual property rights globally. Exception handling must be included (e.g. an API call fails), and documentation for each function must be included. Instructions must be included as to how to customize the code for any given ChannelAdvisor account, though this need could be handled by an ini file available to the new program and maintained by the outside system. I will own unrestricted rights to the source code created for the project.