PHP Tutorial for Quickbooks Web Connector

I hope to provide you with enough information to get you familiar with coding PHP to work with Quickbooks Web Connector. I am going to expand on the very useful php tutorial for Quickbooks Web Connector posted by the wonderful guys at ubercart. Please read what they have provided, and then come back here for a few things I thought to be helpful.

Where to put the Webservice

Initially, I just assumed I would put the webservice on one of my sites. I found out that when you create and try to add your QB Web Connector (QBWC) application, it will try to verify the security of your site. I ran into that problem so I decided to host my web service on the local machine that had QBWC installed on it. So I installed Wamp on the machine, then put my webservice on there as well, and it worked great because when your QWC app is looking on the localhost it ignores the security check. My action queue table has a few fields like: ID, orderNumber, isComplete, and a timestamp.

Since the Quickbooks Web Connector basically processes “batches”, I needed a way for an employee to request a single order to be processed. We used to use QB RDS server (remote data sharing server) which was an “on command” type of method. QBWC works backwards from that requests originate from QB instead of from an employee. So I added the functionality for an employee to add an order to the queue to be processed. This helped fill the void left from the RDS server that we no longer use. Its not immediate, but it works.

Action Queue?

It took me awhile to figure out how the action queue worked. I was used to making one call to the web service to process a list of orders or transactions or whatever. The QWC app makes one call though, and then your web service says back to it either, “Please make another call because I’ve got another order to process” or it’ll say, “I’m done so don’t make another call to this web service.” In the beginning I was hoping to just query what orders needed to be processed, process them, and then say back to the QWC app, “I’m done.” Since it makes seperate calls though, I created a table (an action queue table) that my web service could call at anytime and say things like: “Is there an order ready to be put into Quickbooks? If so, which one?”, “How many orders are left before I’m finished?”, and “Please mark this order as being processed so I don’t process it again.” Those turn into your functions that the ubercart guys have used in their code.

Conclusion

I know I didn’t cover everything, and I didn’t provide any code sample. The guys at Ubercart did provide code sample though that gave me a good enough idea of how the Quickbooks Web Connector works in PHP. If you have any questions, feel free to ask here by posting a comment and I’ll see if I can help. But know in advance, I’m no “Quickbooks know-it-all” kind of person so don’t expect a perfect answer.

15 Responses to “PHP Tutorial for Quickbooks Web Connector”

  1. Here is a QuickBooks Web Connector PHP framework that I wrote that uses some of the ideas I gathered from your little tutorial here:
    http://idnforums.intuit.com/messageview.aspx?catid=56&threadid=9164

    Maybe it’ll help some people out who are looking for help integrating QuickBooks with PHP applications.

    Thanks for writing this up, it was a big help to me in developing the framework!

    – Keith

  2. Hi,

    I am new in PHP. I tried to go to the website for tutorial but it says that the server has crashed. Do you has a copy of tutorial document?

    Regards,
    YB

  3. Hello,

    Can somebody out here help me for integrating quickbooks with magento.I have read the link posted by kieth but i m not getting any idea about how to start with.

    Awaiting for reply.

    Thanks And Regards,

    Abhijit

  4. Good piece of information.

    Thank you for sharing!!!

  5. [...] I found this tutorial for using the Web Connector with PHP. Doesn’t have a lot, but links to some code that should [...]

  6. Hi – I have been wrestling with the QB Web connector and Keiths framework for some time now. I have managed to get everything connected, authenticated and have also got it exporting customer accounts from our clients website into quickbooks. The client only requires two more objects to be imported – invoices and products ( the products im told mut be imported prior to referencing them in an invoice ). My issue is that I am finding it totally impossible to work out which database columns I map to the relevant qbXML tags – I have been trawling the internet for several hours looking for an example but have found none.

    The tags used in qbXML are using some bizarre names – names that I cannot figure out! I have looked at the SDK OSR but again, this does not explain very well what each tag is and what data I will need to map in.

    If you or anyone else for that matter has had any experience in “column to tag” mapping then I would very much appreciate some assistance as while Keiths framework is totally awesome and has saved us what equates to many hundreds of hours development time it does not give much help on the definitions of the tags – it only lists them as ‘optional’ or ‘required’ and then specifies the datatype that the tag is expecting.

  7. There are some interesting points in time on this article but I don’t know if I see all of them center to heart. There’s some validity however I’ll take maintain opinion until I look into it further. Good article , thanks and we want more! Added to FeedBurner as properly

  8. This is certainly excellent content, We’re below amazed read these people must have been a joy.

  9. Hi my name is Natosha and I think this is an interesting topic, where the opinions will be happy apart. Here you will find more about it http://www.connector24.info.

  10. Good read you received there. I concur with almost all of it, and am a giant admirer myself.

  11. This pessimist gripes around the blowing wind; a optimist should expect it to alter; as well as realist adjusts this sails. We must agree to only a certain frustration, nevertheless we need to under no circumstances eliminate limitless anticipation.

  12. Your post is the greatest I have seen for a long time!

  13. Great one article. Basic downside is G. transform ones own thoughts very frequently.

  14. “Exactly where you confused me was in all the particulars”

  15. Thank you a lot for giving everyone remarkably splendid opportunity to discover important secrets from here. It is often very nice and full of fun for me and my office mates to visit the blog at least 3 times in a week to see the new guides you have. And lastly, I’m certainly motivated with all the splendid inspiring ideas served by you. Some two areas on this page are truly the most suitable we’ve ever had.