我正在开发Saas,并且一直在使用Keith Palmer的PHP开发工具包。
在大多数情况下,它运行得非常好——我可以下载客户、添加客户和添加发票,这正是我想要实现的。
但是,在添加客户时,我似乎无法添加地址和电话详细信息。我尝试过各种策略,但都没有奏效。由于我需要在某种程度上同步数据,所以我真的需要它来添加这些字段。
我的客户对象是用$Customer = new QuickBooks_IPP_Object_Customer();
创建的
我尝试创建$Address = new QuickBooks_IPP_Object_Address()
然后在填充地址对象之后添加$Customer->addAddress($Address)
,但仍然没有。
基本细节保存得很好,但我的地址怎么了?
我浏览了这些例子(这就是我如何获得要保存的基本细节),但没有看到如何添加这些。
有人知道如何保存地址详细信息吗?
假设您使用的是最新的v3 API和GitHub的最新代码,那么您的代码应该如下所示:
$CustomerService = new QuickBooks_IPP_Service_Customer();
$Customer = new QuickBooks_IPP_Object_Customer();
$Customer->setTitle('Mr');
$Customer->setGivenName('Keith');
$Customer->setMiddleName('R');
$Customer->setFamilyName('Palmer');
$Customer->setDisplayName('Keith R Palmer Jr ' . mt_rand(0, 1000));
// Phone #
$PrimaryPhone = new QuickBooks_IPP_Object_PrimaryPhone();
$PrimaryPhone->setFreeFormNumber('860-532-0089');
$Customer->setPrimaryPhone($PrimaryPhone);
// 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);
if ($resp = $CustomerService->add($Context, $realm, $Customer))
{
print('Our new customer ID is: [' . $resp . ']');
}
else
{
print($CustomerService->lastError($Context));
}
你可以在这里获得最新代码:
- GitHub上的开源QuickBooks PHP DevKit
这里包括一个例子:
- 使用PHP将客户添加到QuickBooks Online的示例
对象可用的方法正好反映Intuit在其文档中定义的XML节点名称。
因此,如果他们有一个名为的节点
- BillAddr
然后你会有一个相应的对象:
- QuickBook_IPP_Object_BillAddr
如果它们有节点名称:
- 第1行
- 第2行
- 城市
- CountrySubDivisionCode
然后你会有相应的方法:
- ->setLine1($val)和->getLine1()
- ->setLine2($val)和->getLine2()
- ->setCity($val)和->getCity()
- ->setCountrySubDivisionCode($val)和->getCountrySubDivision Code()