Mapping your app's objects to QuickBooks Desktop
How to handle syncing your application’s data objects with QuickBooks Desktop objects.
Most complex QuickBooks Desktop (QBD) object types, such as invoices and sales receipts, interact with various related objects. For instance, an invoice may contain multiple line items, with each item linked to a specific QBD inventory item via an ID. When creating these objects in QBD, you must ensure that all related objects are correctly linked.
For effective integration, depending on the data type of these related objects and you application requirements, you can either:
- Create new QBD objects and store their IDs in your application’s database for future reference.
- Map existing QBD objects to corresponding objects in your application through manual configurations made by users within your application’s UI. Consider the following example for inventory items:
- Fetch all existing QBD inventory items using Conductor’s API (e.g.,
await conductor.qbd.itemInventory.query()
). - Display these QBD items alongside items from your application in the UI.
- Users can then specify mappings, or opt to create new items in QBD.
- Record the corresponding QBD item ID in your application’s database (e.g., add a
qbd_item_id
column to theitems
table).
- Fetch all existing QBD inventory items using Conductor’s API (e.g.,
Important: The need to map or create objects may vary based on object type (e.g., some users might prefer mapping existing QBD objects for certain types while creating new ones for others). Regardless, it is crucial for your application to store these QBD IDs in its database for all future interactions, ensuring no duplicate objects are created.