将Intuit Quick Books与网站集成

时间:2015-03-09 23:37:30

标签: quickbooks

我希望能够将我的网站与Quick Books连接起来,但如果有任何关于如何操作的信息,我真的找不到太多。基本上我想要做的就是当下订单并捕获发票号时,它然后将该发票号和付款金额输入Quickbooks。你们有没有这样做过,或者有任何可以提供的信息?

更新

这将在PHP中完成,Quickbooks是Windows版本。

3 个答案:

答案 0 :(得分:0)

研究Quickbooks ODBC驱动程序。

以下是我初始搜索引擎查询的链接:http://support.quickbooks.intuit.com/support/Articles/INF12836

警告:如果沿着这条路走下去,你可能会感到极大的痛苦和不快。

答案 1 :(得分:0)

现在编辑您告诉我们您正在使用的编程语言和QuickBooks版本:

抓住这个用于QuickBooks的开源PHP库:

按照那里链接的快速入门指南进行操作:

阅读有关QuickBooks Web Connector的更多信息,这是您将使用PHP交换数据的方法:

基本上,你最终会得到一些像这样的代码:

function _quickbooks_customer_add_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale)
{
    // You'd probably do some database access here to pull the record with 
    //  ID = $ID from your database and build a request to add that particular 
    //  customer to QuickBooks. 
    //  
    // So, when you implement this for your business, you'd probably do 
    //  something like this...: 

    /*
    // Fetch your customer record from your database
    $record = mysql_fetch_array(mysql_query("SELECT * FROM your_customer_table WHERE your_customer_ID_field = " . (int) $ID));

    // Create and return a qbXML request
    $qbxml = '<?xml version="1.0" encoding="utf-8"?>
        <?qbxml version="2.0"?>
        <QBXML>
            <QBXMLMsgsRq onError="stopOnError">
                <CustomerAddRq requestID="' . $requestID . '">
                    <CustomerAdd>
                        <Name>' . $record['your_customer_name_field'] . '</Name>
                        <CompanyName>' . $record['your_customer_company_field'] . '</CompanyName>

                        ... lots of other customer related fields ...

                    </CustomerAdd>
                </CustomerAddRq>
            </QBXMLMsgsRq>
        </QBXML>';

    return $qbxml;
    */

    // But we're just testing, so we'll just use a static test request:

    $xml = '<?xml version="1.0" encoding="utf-8"?>
        <?qbxml version="2.0"?>
        <QBXML>
            <QBXMLMsgsRq onError="stopOnError">
                <CustomerAddRq requestID="' . $requestID . '">
                    <CustomerAdd>
                        <Name>ConsoliBYTE, LLC (' . mt_rand() . ')</Name>
                        <CompanyName>ConsoliBYTE, LLC</CompanyName>
                        <FirstName>Keith</FirstName>
                        <LastName>Palmer</LastName>
                        <BillAddress>
                            <Addr1>ConsoliBYTE, LLC</Addr1>
                            <Addr2>134 Stonemill Road</Addr2>
                            <City>Mansfield</City>
                            <State>CT</State>
                            <PostalCode>06268</PostalCode>
                            <Country>United States</Country>
                        </BillAddress>
                        <Phone>860-634-1602</Phone>
                        <AltPhone>860-429-0021</AltPhone>
                        <Fax>860-429-5183</Fax>
                        <Email>Keith@ConsoliBYTE.com</Email>
                        <Contact>Keith Palmer</Contact>
                    </CustomerAdd>
                </CustomerAddRq>
            </QBXMLMsgsRq>
        </QBXML>';

    return $xml;
}

function _quickbooks_invoice_add_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale)
{
    $xml = '<?xml version="1.0" encoding="utf-8"?>
        <?qbxml version="2.0"?>
        <QBXML>
            <QBXMLMsgsRq onError="stopOnError">
                <InvoiceAddRq requestID="' . $requestID . '">
                    <InvoiceAdd>
                        <CustomerRef>
                            <FullName>Keith Palmer Jr.</FullName>
                        </CustomerRef>
                        <TxnDate>2009-01-09</TxnDate>
                        <RefNumber>16466</RefNumber>
                        <BillAddress>
                            <Addr1>Keith Palmer Jr.</Addr1>
                            <Addr3>134 Stonemill Road</Addr3>
                            <City>Storrs-Mansfield</City>
                            <State>CT</State>
                            <PostalCode>06268</PostalCode>
                            <Country>United States</Country>
                        </BillAddres>
                        <InvoiceLineAdd>
                            <ItemRef>
                                <FullName>Gift Certificate</FullName>
                            </ItemRef>
                            <Desc>$25.00 gift certificate</Desc>
                            <Quantity>1</Quantity>
                            <Rate>25.00</Rate>
                            <SalesTaxCodeRef>
                                <FullName>NON</FullName>
                            </SalesTaxCodeRef>
                        </InvoiceLineAdd>
                        <InvoiceLineAdd>
                            <ItemRef>
                                <FullName>Book</FullName>
                            </ItemRef>
                            <Desc>The Hitchhiker\'s Guide to the Galaxy</Desc>
                            <Amount>19.95</Amount>
                            <SalesTaxCodeRef>
                                <FullName>TAX</FullName>
                            </SalesTaxCodeRef>
                        </InvoiceLineAdd>
                    </InvoiceAdd>
                </InvoiceAddRq>
            </QBXMLMsgsRq>
        </QBXML>';

    return $xml;
}

原始回答:

你没有告诉我们你正在使用什么编程语言,或者你使用的是什么版本的QuickBooks(Online vs. for Windows是两个完全不同的API的完全独立的产品)所以你不是在没有更新你的问题的情况下会对细节产生很大影响,但...... 如果您使用QuickBooks for Windows

如果您使用的是QuickBooks Online

有大量的Stack Overflow问题已经解决了与这些产品集成的具体细节问题。

答案 2 :(得分:0)

我使用从PHP到QBD的直接COM连接完成了几次集成(手动调用或根据需要使用计划任务)。

请参阅我对Intuit论坛问题的回答: https://intuitdeveloper.lc.intuit.com/questions/916537-php-connect-to-quickbooks-desktop-using-qbxmlrp-com-object

我也使用了API&amp; Web连接器。 Desktop Quickbooks不再支持API。 Web Connector / DevKit组合也可以工作,并且似乎是最受欢迎的方法,具有最佳的“社区”支持。不使用WebConnector时,我真的很欣赏它的简单性。