QuickBooks handles items some additional points are worth addressing.
ItemTypes – QuickBooks defines multiple types of items for use in transactions each with its own set of attributes. These include:
In addition, a base item is defined which contains the ListID, FullName, and Type of every item.
Most of the attributes of the different item types are straightforward. The tricky ones are NonInventory, OtherCharge, and Service types. These contain different attributes based on the the way the item is configured in QuickBooks. For these types of items, the description, pricing, and GL account information will be stored in one of two child tables, either the SalesAndPurchaseRet or SalesAndPurchaseRet tables. The standard child relationship formats are used for these relationships in the schema. Examples from the QuickBooks Sample Product Based Business company file of NonInventory items which exhibit these qualities are as follows:
Blueprints contains an entry only in the SalesOrPurchaseRet table
ItemNonInventory.ListID -> SalesOrPurchaseRet.PARENT_IDKEY
Subs:Carpet contains an entry only in the SalesAndPurchaseRet table
ItemNonInventory.ListID -> SalesAndPurchaseRet.PARENT_IDKEY