This is the first of several posts which overviews the automation I have started to put in place to deal with book orders placed with Paradoxal Press. If I were to only deal with orders from books I published (that is Practical .NET 2 and C# 2 and The COMPLETE Effect and HLSL Guide), such an automation would not be needed. But since I have opened a more general online store, demand has been soaring and such automation is required so I can focus on the core of my business, which is publishing books. This post serves as a general summary of the steps involved in creating such an automation. Over the next few weeks, I will post more specific details as well as some code samples that are relevant to that I have discovered.

To the left is a quick and simple diagram of the architecture that I have taken so far for my store organization.

The first thing of interest is the fact that as you can see, I sell books both on eBay (under sebbyretail) and on ParadoxalPress.com. To make the rest of the pipeline as easy as possible, I needed a centralized source to store all the order data so that from an ordering and shipping point of view, it did not really matter whether the original order originated from eBay or from ParadoxalPress.com.

As as central repository, I could have use one of the numerous book centric inventory and order management software packages our there (such as Publisher's Assistant or Jaya) but obted for something more generic since I also sell software on ParadoxalPress.com and a few misc nick-nacks on eBay. For this, I decided to use QuickBooks as it is a standard in the industry and they offer a comprehensive SDK which allows the integration of applications directly with QuickBooks.

To deal with data from eBay, I could have written my own tool but eBay offers a tool named Accounting Assistant which serves this exect purpose and will pull sales and fee data from eBay and import it into Quickbooks.

To deal with orders placed on ParadoxalPress.com, I had to come up with my own solution. Due to hosting restrictions, I opted early on to not use a database for the online store. Book and category information is stored in static data files which are loaded from an ASPX page while orders that are placed are stored in XML files that are placed in a secure location.

The following posts will go over some of the approaches i've taken to populate the online store, store orders and automate their processing.