Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Connecting remote PHP/Apache server to Quickbooks/Windows

Tags:

php

quickbooks

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.

like image 631
Nathan H Avatar asked Jun 04 '09 21:06

Nathan H


1 Answers

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

Updated link: https://developer-static.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

Updated link: https://github.com/consolibyte/quickbooks-php

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/

Updated link: https://intuitpartnerplatform.lc.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 its 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 its 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
like image 62
Keith Palmer Jr. Avatar answered Sep 21 '22 14:09

Keith Palmer Jr.