Quickbooks for AbleCommerce 7 rewrite in progress

by Joe Payne 20. March 2011 10:49

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.

Tags:

General News | Projects | QuickBooks Connector

Comments (6) -

Rick
Rick United States
10/25/2011 3:38:17 PM #

Hi Joe,
I just enabled AC7.0.6. for my site bridepower.com, now dev.bridepower.  I get in shipments of inventory, usually 10-100 items; wedding gowns actually. I am working with a developer to make it easy to enter these in but since there are 3 variants; fabric, color, size in a different table, they are having a nasty time making data entry smooth. I also want to keep an audit trail of what was entered for a particular session for inventory purposes. Most are new while some are existing item#s

Any idea on any plugins or methods to get data into the system for items I have (unique Bridepower #.)
Do you think I could use Dataport for this task if I have non-technical people doing entry. Is it too finicky?
Any ideas. Sorry for vaguery.
Thanks
Rick

jpayne@ablemods.com
jpayne@ablemods.com United States
10/25/2011 3:59:54 PM #

Rick, that's a tough one to resolve.  

Given the three complete variant options, you're looking a significant list of unique variations to address.  And you're dealing with clothing, so there's really no avoiding it either.

A pre-written 'plug-in' is going to be out of the question, your situation and your variant choices are unique to your setup.  Dataport is finicky on a good day Smile

One suggestion is to build one variant setup all the way through, and then export it with Dataport.  That will let you see what Dataport expects so far as the variant data format.  Then at least you can decide if that's a format you can work with in an ongoing fashion for your non-technical users.

I have another client in a similar situation.  They sell massive amounts of t-shirts with specific graphic images.  So they have to address Style, Color and Size creating tens of thousands of variant choices per product.

Their solution (written by a different developer) was a custom variant 'shirt page' that lets them construct the overall matrix with simple checkboxes.  It may be 12 columns across by 19 rows down, but having the checkboxes for a whole column or whole row eases the entry pain significantly.

Once the matrix is built, a button takes that single variant setup and populates it to all the other products in the same shirt group.  That way they're only building one setup for hundreds of products.  It can take 2-3 hours for the 'copy' operation to complete, but it's far quicker than anything by hand.

If your source information is coming electronically, then there is hope - you could have a custom import routine built that parses the import file, locates the correct variant and updates inventory/pricing all electronically.  Not a simple task given the complexity of how variants are stored in the database, but certainly doable nonetheless.

Hope that helps a little for you.  

Rick
Rick United States
10/25/2011 4:32:16 PM #

Okay, this was my idea. Please tell me you think it could work. I use Intuit's Quickbase and can quickly build databases altho I am not that technical. My idea was to create a database form where I could enter the data into the database quickly and then output it to xml, csv etc. Then what? Write an import routine that parses the data into its proper place. How hard would that be hours wise? Would I need dataport at all?

jpayne@ablemods.com
jpayne@ablemods.com United States
10/26/2011 8:07:21 AM #

That's probably the most effective route given your situation.  My personal preference would be Excel instead of a db program, but use what you're most comfortable with.

The import program would probably take several hours.  There's a lot of error-checking that will have to go on to make sure it's writing the correct options and choices to the correct product.

If you model your CSV after how Dataport dumps out variant data, you might be able to use Dataport to import your CSV and avoid a custom import routine altogether.  I've never used Dataport to import variants, so I don't know how well it works or how well documented it is.

Rick
Rick United States
12/17/2011 11:14:24 AM #

Quickbase worked great to accomplish this. Created csv output and then parsing routine. Just thought I would let you know.

jpayne@ablemods.com
jpayne@ablemods.com United States
12/19/2011 8:36:36 AM #

great to know, thanks for the feedback.  Never have used QuickBase before.

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

Month List