Well I’ve been working hard for over three weeks now doing a complete rewrite of my Quickbooks Connector that transfers AbleCommerce 7 data electronically into Quickbooks using ASP.Net web services.

The first challenge was getting the entire Quickbooks API written into a strongly-typed ASP.Net class library.  I originally wrote some very basic classes that would serialize.  However it was a hack job as I was very new to XML, serialization etc.  Boy was it confusing. 

Plus none of the Quickbooks response messages were de-serialized back into strongly typed data classes.  I was actually doing a manual XML search on the response text to find any data needed from the responses.  Ugly doesn’t even begin to describe the code.  I never want to see another XML node search again.

Having such clumsy access to the response and query data meant the code was brutal to debug when something didn’t work right.

So I sat down and bit the bullet.  I built 26 strongly-typed objects that all correctly serialize and de-serialize the Quickbooks SDK requests and responses.  These are written exactly to the Intuit SDK specifications.  Testing serialization and de-serialization created some long nights but it was well worth it.

Now any response from the QB web connector can be quickly de-serialized into usable strongly-typed classes.  Responses are even typed correctly so dollar amounts are (double) and logical values are (bool).  Wow does this make things easier to program.

So now the sky’s the limit.  I’ve already implemented full support for sub-grouped GL accounts and sub-grouped inventory items.  This is becoming increasingly more popular with businesses using Quickbooks.

I’ve also vastly improved error reporting.  Troubleshooting has always been a nightmare with the QB module.  No longer though, I’ve got a solid handle on it now that I have strongly-typed responses.

Next I’m going fix another common problem: Inventory.  Many companies use Quickbooks inventory to track their stock levels.  Getting these values back into AbleCommerce is a manual process.  I am going to make this new version of the Quickbooks Web Connector for AbleCommerce 7 synchronize inventory stock levels from QuickBooks into AbleCommerce.

I’m also going to implement another inventory problem, selling in bulk.  Often an AC7 site will sell a case of something but inventory it indivdually in QuickBooks.  That poses a problem with the transfer because the quantity sold will be 1 yet the case contained 250 units.

The new version of the module will allow a "multiplier" value to be set to each product in AbleCommerce 7 so the Quantity 1 sold becomes Quantity 250 when it hits QuickBooks.

That’s all for now, more to follow.  As always, check out my http://www.Solunar.com site for all your solunar times and solunar table needs plus camping, hunting, marine equipment and yes, even boat anchors.