我一直在寻找一个有效的例子! Netsuite文档非常糟糕。我不知道配置参数究竟是什么,或者我可以从哪里得到它们。
我正在重新创建get_customer
示例。
我的代码:
<?php
require_once '../PHPToolkit/NetSuiteService.php';
$service = new NetSuiteService();
$request = new GetRequest();
$request->baseRef = new RecordRef();
$request->baseRef->internalId = "21";
$request->baseRef->type = "customer";
$getResponse = $service->get($request);
if (!$getResponse->readResponse->status->isSuccess) {
echo "GET ERROR";
} else {
$customer = $getResponse->readResponse->record;
echo "GET SUCCESS, customer:";
echo "\nCompany name: ". $customer->companyName;
echo "\nInternal Id: ". $customer->internalId;
echo "\nEmail: ". $customer->email;
}
?>
这是抛出的错误:
Webservice host must be specified in NSPHPClient->__construct()
我该如何解决这个问题?
答案 0 :(得分:3)
要明确的是,NetSuiteService.php所在的目录中应该有一个名为NSconfig.php的文件。您不需要在脚本中包含此文件;它从NSPHPClient.php调用。默认的NSconfig.php如下所示:
$nsendpoint = "2013_2";
$nshost = "https://webservices.netsuite.com";
$nsemail = "jDoe@netsuite.com";
$nspassword = "mySecretPwd";
$nsrole = "3";
$nsaccount = "MYACCT1";
nsendpoint和nshost应保持原样。
棘手的部分是获取其他变量的正确设置。首先,您需要设置Web服务(http://www.netsuite.com/portal/partners/integration/download/SuiteTalkWebServicesPlatformGuide_2012.2.pdf从第34页开始),然后您需要创建Web服务角色(第44页),并确保Role具有必要的权限。将该角色分配给具有相应权限的用户,然后......
nsemail =具有网络服务角色的用户的电子邮件
nspassword = nsemail用户的密码
nsrole =网络服务角色的内部角色ID
nsaccount =您的netsuite帐号(最有可能是六位数)
(有关查看内部角色ID的信息,请参阅上面PDF的第20页。)
答案 1 :(得分:1)
确保您已包含 NSconfig.php 文件。您还需要使用您的帐户凭据修改此文件