Location is actually a field in QB for items. It is only used by the ItemFixedAsset. So you’ll need to call it something else, like “InventoryLocation”.
The reason the API wouldn’t grab it, is that it only shows up for the ItemFixedAsset table. All Items actually share fields in common with one another, and show and hide their fields based on the type of item it is.
Also, the “CustomField1”…….”CustomField20” admittedly don’t show the actual visual names of the fields that you normally see in the rest of the program. These are the true field names behind the scenes. This is something we will look at changing in the near future.