Question

I am a newbie to Quickbooks and Web Connector and I am using PHP SDK for Quickbooks.

I know how to get Sales Orders from Quickbooks using QBXML request.

But I want to get the Column names in Sales Order from Quickbooks.

Is there any way or is there any QBXML request by which I can get these column names from Sales Order ?

Thanks

Was it helpful?

Solution

Most versions of QuickBooks are NOT SQL-based at all. Additionally, there are NO versions of QuickBooks that allow you direct access to SQL tables.

Instead, all of the QuickBooks APIs are XML-based APIs.

XML does not have "columns".

Soooo... your question:

But I want to get the Column names in Sales Order from Quickbooks.

Doesn't really make any sense/isn't answerable.

QuickBooks does not have columns. Sales Orders do not have columns.

If you're just trying to figure out what data is available, you should use the QuickBooks OSR documentation.

Here's an QuickBooks integration wiki link about how to use it.

Here are the available XML fields:

<SalesOrderRet> <!-- optional, may repeat -->
 <TxnID >IDTYPE</TxnID> <!-- required -->
 <TimeCreated >DATETIMETYPE</TimeCreated> <!-- required -->
 <TimeModified >DATETIMETYPE</TimeModified> <!-- required -->
 <EditSequence >STRTYPE</EditSequence> <!-- required -->
 <TxnNumber >INTTYPE</TxnNumber> <!-- optional -->
 <CustomerRef> <!-- required -->
  <ListID >IDTYPE</ListID> <!-- optional -->
  <FullName >STRTYPE</FullName> <!-- optional -->
 </CustomerRef>
 <ClassRef> <!-- optional -->
  <ListID >IDTYPE</ListID> <!-- optional -->
  <FullName >STRTYPE</FullName> <!-- optional -->
 </ClassRef>
 <TemplateRef> <!-- optional -->
  <ListID >IDTYPE</ListID> <!-- optional -->
  <FullName >STRTYPE</FullName> <!-- optional -->
 </TemplateRef>
 <TxnDate >DATETYPE</TxnDate> <!-- required -->
 <RefNumber >STRTYPE</RefNumber> <!-- optional -->
 <BillAddress> <!-- optional -->
  <Addr1 >STRTYPE</Addr1> <!-- optional -->
  <Addr2 >STRTYPE</Addr2> <!-- optional -->
  <Addr3 >STRTYPE</Addr3> <!-- optional -->
  <Addr4 >STRTYPE</Addr4> <!-- optional -->
  <Addr5 >STRTYPE</Addr5> <!-- optional -->
  <City >STRTYPE</City> <!-- optional -->
  <State >STRTYPE</State> <!-- optional -->
  <PostalCode >STRTYPE</PostalCode> <!-- optional -->
  <Country >STRTYPE</Country> <!-- optional -->
  <Note >STRTYPE</Note> <!-- optional -->
 </BillAddress>
 <BillAddressBlock> <!-- optional -->
  <Addr1 >STRTYPE</Addr1> <!-- optional -->
  <Addr2 >STRTYPE</Addr2> <!-- optional -->
  <Addr3 >STRTYPE</Addr3> <!-- optional -->
  <Addr4 >STRTYPE</Addr4> <!-- optional -->
  <Addr5 >STRTYPE</Addr5> <!-- optional -->
 </BillAddressBlock>
 <ShipAddress> <!-- optional -->
  <Addr1 >STRTYPE</Addr1> <!-- optional -->
  <Addr2 >STRTYPE</Addr2> <!-- optional -->
  <Addr3 >STRTYPE</Addr3> <!-- optional -->
  <Addr4 >STRTYPE</Addr4> <!-- optional -->
  <Addr5 >STRTYPE</Addr5> <!-- optional -->
  <City >STRTYPE</City> <!-- optional -->
  <State >STRTYPE</State> <!-- optional -->
  <PostalCode >STRTYPE</PostalCode> <!-- optional -->
  <Country >STRTYPE</Country> <!-- optional -->
  <Note >STRTYPE</Note> <!-- optional -->
 </ShipAddress>
 <ShipAddressBlock> <!-- optional -->
  <Addr1 >STRTYPE</Addr1> <!-- optional -->
  <Addr2 >STRTYPE</Addr2> <!-- optional -->
  <Addr3 >STRTYPE</Addr3> <!-- optional -->
  <Addr4 >STRTYPE</Addr4> <!-- optional -->
  <Addr5 >STRTYPE</Addr5> <!-- optional -->
 </ShipAddressBlock>
 <PONumber >STRTYPE</PONumber> <!-- optional -->
 <TermsRef> <!-- optional -->
  <ListID >IDTYPE</ListID> <!-- optional -->
  <FullName >STRTYPE</FullName> <!-- optional -->
 </TermsRef>
 <DueDate >DATETYPE</DueDate> <!-- optional -->
 <SalesRepRef> <!-- optional -->
  <ListID >IDTYPE</ListID> <!-- optional -->
  <FullName >STRTYPE</FullName> <!-- optional -->
 </SalesRepRef>
 <FOB >STRTYPE</FOB> <!-- optional -->
 <ShipDate >DATETYPE</ShipDate> <!-- optional -->
 <ShipMethodRef> <!-- optional -->
  <ListID >IDTYPE</ListID> <!-- optional -->
  <FullName >STRTYPE</FullName> <!-- optional -->
 </ShipMethodRef>
 <Subtotal >AMTTYPE</Subtotal> <!-- optional -->
 <ItemSalesTaxRef> <!-- optional -->
  <ListID >IDTYPE</ListID> <!-- optional -->
  <FullName >STRTYPE</FullName> <!-- optional -->
 </ItemSalesTaxRef>
 <SalesTaxPercentage >PERCENTTYPE</SalesTaxPercentage> <!-- optional -->
 <SalesTaxTotal >AMTTYPE</SalesTaxTotal> <!-- optional -->
 <TotalAmount >AMTTYPE</TotalAmount> <!-- optional -->
<CurrencyRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</CurrencyRef>
<ExchangeRate >FLOATTYPE</ExchangeRate> <!-- optional -->
<TotalAmountInHomeCurrency >AMTTYPE</TotalAmountInHomeCurrency> <!-- optional -->
<IsManuallyClosed >BOOLTYPE</IsManuallyClosed> <!-- optional -->
<IsFullyInvoiced >BOOLTYPE</IsFullyInvoiced> <!-- optional -->
<Memo >STRTYPE</Memo> <!-- optional -->
<CustomerMsgRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</CustomerMsgRef>
<IsToBePrinted >BOOLTYPE</IsToBePrinted> <!-- optional -->
<IsToBeEmailed >BOOLTYPE</IsToBeEmailed> <!-- optional -->
<CustomerSalesTaxCodeRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</CustomerSalesTaxCodeRef>
<Other >STRTYPE</Other> <!-- optional -->
<ExternalGUID >GUIDTYPE</ExternalGUID> <!-- optional -->
<LinkedTxn> <!-- optional, may repeat -->
<TxnID >IDTYPE</TxnID> <!-- required -->
<!-- TxnType may have one of the following values: ARRefundCreditCard, Bill, BillPaymentCheck, BillPaymentCreditCard, BuildAssembly, Charge, Check, CreditCardCharge, CreditCardCredit, CreditMemo, Deposit, Estimate, InventoryAdjustment, Invoice, ItemReceipt, JournalEntry, LiabilityAdjustment, Paycheck, PayrollLiabilityCheck, PurchaseOrder, ReceivePayment, SalesOrder, SalesReceipt, SalesTaxPaymentCheck, Transfer, VendorCredit, YTDAdjustment -->
<TxnType >ENUMTYPE</TxnType> <!-- required -->
<TxnDate >DATETYPE</TxnDate> <!-- required -->
<RefNumber >STRTYPE</RefNumber> <!-- optional -->
<!-- LinkType may have one of the following values: AMTTYPE, QUANTYPE -->
<LinkType >ENUMTYPE</LinkType> <!-- optional -->
<Amount >AMTTYPE</Amount> <!-- required -->
</LinkedTxn>
<!-- BEGIN OR -->
<SalesOrderLineRet> <!-- optional -->
<TxnLineID >IDTYPE</TxnLineID> <!-- required -->
<ItemRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</ItemRef>
<Desc >STRTYPE</Desc> <!-- optional -->
<Quantity >QUANTYPE</Quantity> <!-- optional -->
<UnitOfMeasure >STRTYPE</UnitOfMeasure> <!-- optional -->
<OverrideUOMSetRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</OverrideUOMSetRef>
<!-- BEGIN OR -->
<Rate >PRICETYPE</Rate> <!-- optional -->
<!-- OR -->
<RatePercent >PERCENTTYPE</RatePercent> <!-- optional -->
<!-- END OR -->
<ClassRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</ClassRef>
<Amount >AMTTYPE</Amount> <!-- optional -->
<InventorySiteRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</InventorySiteRef>
<InventorySiteLocationRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</InventorySiteLocationRef>
<!-- BEGIN OR -->
<SerialNumber >STRTYPE</SerialNumber> <!-- optional -->
<!-- OR -->
<LotNumber >STRTYPE</LotNumber> <!-- optional -->
<!-- END OR -->
<SalesTaxCodeRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</SalesTaxCodeRef>
<Invoiced >QUANTYPE</Invoiced> <!-- optional -->
<IsManuallyClosed >BOOLTYPE</IsManuallyClosed> <!-- optional -->
<Other1 >STRTYPE</Other1> <!-- optional -->
<Other2 >STRTYPE</Other2> <!-- optional -->
<DataExtRet> <!-- optional, may repeat -->
<OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
<DataExtName >STRTYPE</DataExtName> <!-- required -->
<!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE -->
<DataExtType >ENUMTYPE</DataExtType> <!-- required -->
<DataExtValue >STRTYPE</DataExtValue> <!-- required -->
</DataExtRet>
</SalesOrderLineRet>
<!-- OR -->
<SalesOrderLineGroupRet> <!-- optional -->
<TxnLineID >IDTYPE</TxnLineID> <!-- required -->
<ItemGroupRef> <!-- required -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</ItemGroupRef>
<Desc >STRTYPE</Desc> <!-- optional -->
<Quantity >QUANTYPE</Quantity> <!-- optional -->
<UnitOfMeasure >STRTYPE</UnitOfMeasure> <!-- optional -->
<OverrideUOMSetRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</OverrideUOMSetRef>
<IsPrintItemsInGroup >BOOLTYPE</IsPrintItemsInGroup> <!-- required -->
<TotalAmount >AMTTYPE</TotalAmount> <!-- required -->
<SalesOrderLineRet> <!-- optional, may repeat -->
<TxnLineID >IDTYPE</TxnLineID> <!-- required -->
<ItemRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</ItemRef>
<Desc >STRTYPE</Desc> <!-- optional -->
<Quantity >QUANTYPE</Quantity> <!-- optional -->
<UnitOfMeasure >STRTYPE</UnitOfMeasure> <!-- optional -->
<OverrideUOMSetRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</OverrideUOMSetRef>
<!-- BEGIN OR -->
<Rate >PRICETYPE</Rate> <!-- optional -->
<!-- OR -->
<RatePercent >PERCENTTYPE</RatePercent> <!-- optional -->
<!-- END OR -->
<ClassRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</ClassRef>
<Amount >AMTTYPE</Amount> <!-- optional -->
<InventorySiteRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</InventorySiteRef>
<InventorySiteLocationRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</InventorySiteLocationRef>
<!-- BEGIN OR -->
<SerialNumber >STRTYPE</SerialNumber> <!-- optional -->
<!-- OR -->
<LotNumber >STRTYPE</LotNumber> <!-- optional -->
<!-- END OR -->
<SalesTaxCodeRef> <!-- optional -->
<ListID >IDTYPE</ListID> <!-- optional -->
<FullName >STRTYPE</FullName> <!-- optional -->
</SalesTaxCodeRef>
<Invoiced >QUANTYPE</Invoiced> <!-- optional -->
<IsManuallyClosed >BOOLTYPE</IsManuallyClosed> <!-- optional -->
<Other1 >STRTYPE</Other1> <!-- optional -->
<Other2 >STRTYPE</Other2> <!-- optional -->
<DataExtRet> <!-- optional, may repeat -->
<OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
<DataExtName >STRTYPE</DataExtName> <!-- required -->
<!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE -->
<DataExtType >ENUMTYPE</DataExtType> <!-- required -->
<DataExtValue >STRTYPE</DataExtValue> <!-- required -->
</DataExtRet>
</SalesOrderLineRet>
<DataExtRet> <!-- optional, may repeat -->
<OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
<DataExtName >STRTYPE</DataExtName> <!-- required -->
<!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE -->
<DataExtType >ENUMTYPE</DataExtType> <!-- required -->
<DataExtValue >STRTYPE</DataExtValue> <!-- required -->
</DataExtRet>
</SalesOrderLineGroupRet>
<!-- END OR -->
<DataExtRet> <!-- optional, may repeat -->
<OwnerID >GUIDTYPE</OwnerID> <!-- optional -->
<DataExtName >STRTYPE</DataExtName> <!-- required -->
<!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE -->
<DataExtType >ENUMTYPE</DataExtType> <!-- required -->
<DataExtValue >STRTYPE</DataExtValue> <!-- required -->
</DataExtRet>
</SalesOrderRet>

OTHER TIPS

I recently came across QODBC and OpenSync. Both translate the QB data model into a SQL table/column model.

QODBC works by implementing an ODBC driver, and translating your queries into QB API calls in real time. It also has caching capabilities, to speed up queries. I understand that some variations of the driver can be run under Linux. The driver comes in two main flavors: a local driver that allows you to connect to a local QB instance and query it, and a remote server/driver, to query QB databases hosted elsewhere (for 64 bit development, it is recommended to use the remote driver, even if you loop it back to the same system). Its read only edition is included with QB Enterprise. More info on How to use QODBC with PHP.

OpenSync works in a more disconnected manner: you make a copy of the QB database into your preferred database engine/server, so you can query the data right away, and you submit changes by setting control fields in your copy and rerunning the sync. While you can't query live data, it is very easy to use and to get started (including getting the data definition, to get an idea of the data structure that mirrors the XML). The company has other products that can aid you in dealing with the QB API.

Both have evaluation versions available and you can also download an OpenSync sample Access MDB.

I think you might want to take a look at https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services You'll need an Intuit login (free), but this actually seems to have the closest thing I can find to true columns on their tables. Scroll down to Transaction Entities and Name List Entities and Supporting Entities.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top