0
votes

I'm working with the QuickBooks PHP DevKit (thanks Keith!), and am working on an integration between quickbooks desktop and my site. My goal is to import their invoices into my database in order to run reports off of them.

I ran into a problem when QBWC was taking far too long to transfer all the invoices (there are several years worth). The 'obvious' solution was to put a filter in the qbXML request to only get those that have recently been modified (say, within the last year). This worked wonderfully for a while, however a problem has come up.

My client is looking to import invoices based on the invoice date itself (aka the ShipDate, I believe), not when the invoice was created or modified. However, the OSR (onScreen reference) from intuit doesn't list many more fields that are available for filtering on an InvoiceQueryRq.

So, my question is:

  • Is there a way to filter by a specific invoice field (namely, ShipDate)?

If not:

  • Is there a way to strategically download humongous chunks of data (hundreds of thousands) in a timely and orderly fashion? (to prevent timeouts, frustration, etc.)
1

1 Answers

1
votes

I think I found the appropriate example and solution here:

https://github.com/consolibyte/quickbooks-php/blob/master/docs/web_connector/example_web_connector_import.php

This is an example of the secondary approach I mentioned. It uses an iterator methodology to work through chunks of the invoices at a time, instead of all at the same time. The PHP DevKit allows to pass some data through 'extra' tags/attributes in the qbXML, allowing for easy use between request and receive messages.