Search code examples
quickbooksqbxml

How do I filter Purchase Order query in QBXML to only return records that are not fully received?


When doing a PurchaseOrderQuery in QBXML I am trying to get Quickbooks to only return purchase orders that are not yet processed (i.e. "IsFullyReceived" == false). The response object contains the IsFullyReceived flag, but the query object doesn't seem to have a filter for it??

This means I have to get every single Purchase Order whether or not it's received, then do the filtering logic in my application - which slows down Web Connector transactions.

Any ideas?

Thanks!


Solution

  • You can't.

    The response object contains the IsFullyReceived flag, but the query object doesn't seem to have a filter for it??

    Correct, there is no filter for it.

    You can see this in the docs:

    This means I have to get every single Purchase Order whether or not it's received, then do the filtering logic in my application - which slows down Web Connector transactions.

    Yep, probably.

    Any ideas?

    Try querying for only Purchase Orders changed or modified (ModifiedDateRangeFilter) since the last time you synced.

    Or, instead of pulling every single PO, keep track of a list of POs that you think may not have been received yet, and then only query for those specific POs based on RefNumber.

    Or, watch the ItemReceipt and BillPayment objects, and use that to implement logic about which POs may have been recently filled, since BillPayment andItemReceipt` objects should get created as the PO is fulfilled/received.