2014-02-07 30 views
0

我已成功使用QuickBooks_IPP將客戶添加到QuickBooks,但我無法爲客戶設置銷售條款。我瀏覽過文檔,找不到設置SalesTerm的示例。如何使用QuickBooks_IPP爲客戶設置SalesTerm?

我已將這些行添加到示例代碼,但不會引發錯誤並且不會添加銷售字詞。

$Term = new QuickBooks_IPP_Object_SalesTerm(); 
    $Term->setSalesTermRef(2); //15 days 
    $Customer->setSalesTermRef($Term); 

這是一個完整的客戶添加代碼:

// Set the IPP version to v3 
    $IPP->version(QuickBooks_IPP_IDS::VERSION_3); 

    $CustomerService = new QuickBooks_IPP_Service_Customer(); 

    $Customer = new QuickBooks_IPP_Object_Customer(); 
    $Customer->setTitle('Ms'); 
    $Customer->setGivenName('Shannon'); 
    $Customer->setMiddleName('B'); 
    $Customer->setFamilyName('Palmer'); 
    $Customer->setDisplayName('Shannon B Palmer ' . mt_rand(0, 1000)); 

    //set days due 
    $Term = new QuickBooks_IPP_Object_SalesTerm(); 
    $Term->setSalesTermRef(2); 
    $Customer->setSalesTermRef($Term); 

    // Phone # 
    $PrimaryPhone = new QuickBooks_IPP_Object_PrimaryPhone(); 
    $PrimaryPhone->setFreeFormNumber('860-532-0089'); 
    $Customer->setPrimaryPhone($PrimaryPhone); 

    // Mobile # 
    $Mobile = new QuickBooks_IPP_Object_Mobile(); 
    $Mobile->setFreeFormNumber('860-532-0089'); 
    $Customer->setMobile($Mobile); 

    // Fax # 
    $Fax = new QuickBooks_IPP_Object_Fax(); 
    $Fax->setFreeFormNumber('860-532-0089'); 
    $Customer->setFax($Fax); 

    // Bill address 
    $BillAddr = new QuickBooks_IPP_Object_BillAddr(); 
    $BillAddr->setLine1('72 E Blue Grass Road'); 
    $BillAddr->setLine2('Suite D'); 
    $BillAddr->setCity('Mt Pleasant'); 
    $BillAddr->setCountrySubDivisionCode('MI'); 
    $BillAddr->setPostalCode('48858'); 
    $Customer->setBillAddr($BillAddr); 

    // Email 
    $PrimaryEmailAddr = new QuickBooks_IPP_Object_PrimaryEmailAddr(); 
    $PrimaryEmailAddr->setAddress('[email protected]'); 
    $Customer->setPrimaryEmailAddr($PrimaryEmailAddr); 

    if ($resp = $CustomerService->add($Context, $realm, $Customer)) 
    { 
     print('Our new customer ID is: [' . $resp . ']'); 
    } 
    else 
    { 
     print($CustomerService->lastError($Context)); 
    } 

我可以查詢該加載後的客戶,但它不返回,因爲我所期望的SalesTerm。我需要SalesTerm服務而不是對象嗎?

回答

1

唯一一次你將對象包裝在QuickBooks_IPP_Object_SalesTerm這樣的對象中,是否它實際上是XML請求中的完整嵌套節點。

即,如果您看到這個Intuit的文檔中:

<Customer> 
    ... 
    <SalesTermRef> 
    <Id>...</Id> 
    ... other nested tags inside here ... 
    </SalesTermRef> 
    ... 
</Customer> 

那麼你就已經在正確的軌道上。

但是,每Intuit的文檔,這僅僅是一個正常的非嵌套節點:

<SalesTermRef>4</SalesTermRef> 

所以只需使用->setSalesTermRef($val)方法:

// Terms (e.g. Net 30, etc.) 
$Customer->setSalesTermRef(4); 

有時候,最簡單的方法,看看這個東西是檢查XML輸出。看看你發送的內容:

print($CustomerService->lastRequest()); 
相關問題