We are building a CF to retrieve the vendor information of every item in an invoice. Loading the invoice, and the associated item list, is working. Unfortunately, the items retrieved do not include custom fields or preferred vendor data. We have considered a couple of options:
Option 1 (Preferred)
Make a single API request to Books (or Inventory) that requests ALL items within a specified list of item ids.
This would reduce the number of API calls required on a daily basis. Something along the lines of a "SELECT * FROM items WHERE item_id IN (xxxxx1,xxxxx2,xxxxx3)"
Option 2
Select all the items in Books/Inventory matching a particular CF/PreferredVendor. Then, compare the item ids in the invoice itemList to the item ids from the response.
We almost have this one running - EXCEPT we're constrained to the 200 item limit. How would we iterate through multiple pages to create one list? This may reduce our API calls to 2 or 3 (depending on the number of matching records).
Option 3
Iterate through the invoice item list and, for each item, perform and individual api call for the corresponding item. We can get this to work, but some invoices have 20-30 items on them and it won't take long to consume our API limit. Not to mention its just not efficient.
Our ultimate need is to be able to provide a total price (rate * qty) of all items in an invoice from a preferred vendor or custom field.
Any thoughts/ideas/suggestions?