tags:

views:

645

answers:

3

We have a Linux box with Apache, running PHP. We have a regular Desktop computer in the network running Quickbooks Enterprise Edition 9.0.

I am trying to build a custom web application hosted on the Linux box that would be able to talk to Quickbooks.

I'm new to Quickbooks, which makes it hard for me. While looking around I found many technologies, none of them looked simple. Before I go ahead deep into it, I wondered if anyone has experience with this and could advise me on that first step.

I heard of Quickbooks SDK, QODBC, Web Connector, etc... Clarifications on those technologies and other availables would be very nice. Also keeping in mind that the PHP code will be running in a different computer (linux).

Thanks

PS. I know there are already other posts related to Quickbooks, but they were either not clear enough, or involved the web code running on the same machine as Quickbooks.

A: 

when installing quickbooks does it create a database with tables and stuff? if it does that will be an easy access. but let me know.

SarmenHB
No, it does not. QuickBooks desktop editions do not use an SQL database. QuickBooks enterprise/online editions do, but it's locked down so you can't actually view the schema or issue queries against it.
Keith Palmer
+2  A: 

First, some links and terms for you...

QuickBooks SDK - This has all of the QuickBooks related documentation for integrating with other applications, whether that be by COM, SOAP, RPC requests, etc. etc. etc. It also has several very useful testing and validation tools. You're going to want to go download this no matter what route you choose. http://developer.intuit.com/

QuickBooks OSR - This is the main reference point which shows you all of the requests you can send to QuickBooks, and the responses that QuickBooks sends back. https://developer.intuit.com/qbsdk-current/Common/newOSR/index.html

QuickBooks PHP Framework - This is a framework designed specifically for PHP to communicate with QuickBooks. Disclaimer: I'm the author. It's designed to work with the QuickBooks Web Connector (more on that later): https://idnforums.intuit.com/messageview.aspx?catid=56&threadid=9164

QuickBooks Integration Wiki - Wiki that talks about QuickBooks integration. Disclaimer: I'm the author. Here: http://consolibyte.com/wiki/doku.php/quickbooks

QODBC - This is a wrapper around the QuickBooks SDK XML requests which provides an ODBC driver to QuickBooks data. It's a commercial product, but supposedly works pretty darn well. I hear there are some concerns with performance sometimes, so I would try it before you commit to it.

AccessBooks - This might be another alternative for you, it provides a way to mirror QuickBooks data to an SQL database. It's a commercial product, and I've heard mixed things about how well it actually works.

QuickBooks Web Connector - This provides a way to use SOAP and qbXML to send requests to QuickBooks and receive responses from QuickBooks. This is what you should be using to link your Apache/PHP set up with QuickBooks. It is the only Intuit-supported method of linking websites to QuickBooks.

QBFC - This is the Windows COM/DCOM way to communicate with QuickBooks. Not applicable to you since you're on a separate computer and using Linux.

RDS - Remote Data Sharing for QuickBooks. This is not applicable to you as it's mean for use only within a LAN.

IDN Forums - The Intuit Developer Forums are a great place to post for help: http://idnforums.intuit.com/

Now some additional thoughts/information:

Keep in mind that although QuickBooks is backed by an SQL database, it does not allow you any direct access to it's internal SQL database. So, you can't just query it using SQL.

Instead, Intuit provides an XML-based request/response thing that lets you send XML requests to QuickBooks and get back XML responses. It's pretty comprehensive and covers most (but not all) of the things you can do in the GUI.

To talk to QuickBooks from another machine, you need to use RDS, the Web Connector, or build something yourself. RDS is a security nightmare and not really meant for integrating web applications. The Web Connector is exactly what you're looking for, and what you should be looking into. The entire point of the Web Connector is to link QuickBooks on one machine with a web application on another. It uses a combo of XML and SOAP requests to get it's work done.

QuickBooks integration is not simple. It can be complex to implement certain things for a number of reasons: lots of foreign keys, dependencies, tax rules, picky XML parser, strange field lengths, etc. However, it's definitely do-able, and you don't need to be an accountant or really have a super-strong QuickBooks background to be able to do most things.

My PHP-specific recommendations: - Use the PHP code linked to above - Get familiar with the XML Validator tools in the QuickBooks SDK - Turn PHP error logging to a file ON - Get familiar with the QuickBooks OSR

Keith Palmer
A: 

Thank you very much for yet another first-rate post. I am always searching for original tips to suggest to my

readers. Thanks for creating this article.

Quickbooks hosting