虽然我可以通过UI设置联系人的销售设置/类别,但似乎无法通过Calcinai PHP库执行此操作。
此刻我正在使用v1.x,并且已经为其他Contact创建/更新了几年了。
首先,是否应该甚至可以通过API在联系人上设置跟踪类别选择(类别和选项已经定义)。这里的大多数跟踪类别问题都与“发票”相关,而不是与“联系人”相关。
Contact.php中有各种各样的提示,提示应该可行,我尝试了多种组合,但无法正常工作。
我有点担心通过API预览器返回的Contact有效负载中的元素名称在模型中没有相同的元素名称,例如
<SalesTrackingCategories>
<SalesTrackingCategory>
<TrackingCategoryName>Gift Aid</TrackingCategoryName>
<TrackingOptionName>Declined</TrackingOptionName>
</SalesTrackingCategory>
</SalesTrackingCategories>
!=
'Name' => [false, self::PROPERTY_TYPE_STRING, null, false, false],
'Status' => [false, self::PROPERTY_TYPE_STRING, null, false, false],
'Options' => [false, self::PROPERTY_TYPE_OBJECT, 'Accounting\\TrackingCategory\\TrackingOption', true, true],
'Option' => [false, self::PROPERTY_TYPE_STRING, null, false, true]
我看到Helpers.php中提到了“肮脏的骇客”,但这似乎并不能解决我的问题。
同样,我尝试了很多事情,包括:
$TrackingOption = new XeroPHP\Models\Accounting\TrackingCategory\TrackingOption();
$TrackingOption->setTrackingOptionID("37ae930d-f576-44fc-b1d8-86b7f96c0205");
$TrackingCategory = new TrackingCategory();
$TrackingCategory->setTrackingCategoryID("4031ea9e-37a0-40cb-8539-d3127a501828");
$TrackingCategory->addOption($TrackingOption);
$contact->setName($contactname)
->setFirstName($primarypersonfirst)
->setLastName($primarypersonlast)
->setEmailAddress($primarypersonemail)
->setContactStatus(\XeroPHP\Models\Accounting\Contact::CONTACT_STATUS_ACTIVE)
->setContactNumber($contactnumber)
->addSalesTrackingCategory($TrackingCategory)
有人设法做到这一点吗?我会很感激任何指针。
答案 0 :(得分:0)
已排序,是的,可以将销售跟踪类别添加到联系人。
我暂时保留了Calcinai代码的v1.x版本,但是从Master的最新版本中修补了以下类(我需要通过EOY将其全部升级到OAuth2)。
然后,以下内容将起作用:
$trackingcat = new XeroPHP\Models\Accounting\TrackingCategory($xero);
$trackingcat->setTrackingCategoryName("cat name");
$trackingcat->setTrackingOptionName("Yes");
$contact->addSalesTrackingCategory($trackingcat);