tjsteinhaus/netsuite-php

NetSuite PHP API 包装器,最初由 Ryan Winchester 构建。

v2017.2 2017-08-31 20:45 UTC

README

License Packagist

NetSuite 的 PHP API 客户端包,源自 NetSuite PHP 工具包

将包添加到您的项目中

使用 Composer 需要

V2 在 Alpha 版本

注意:包名更改

composer require "tjsteinhaus/netsuite-php"

v2 的更改

  • 更改命名空间
  • 显著简化了 NetSuiteClient
  • 添加了使用环境变量进行配置的便利方法来创建实例
  • 改进了日志记录,即使在 soap 调用中抛出异常也会记录。

快速入门

实例化 NetSuiteService 类

其余示例假设您已经完成了此操作。

require 'vendor/autoload.php';

use NetSuite\NetSuiteService;

$config = array(
   // required -------------------------------------
   "endpoint" => "2017_1",
   "host"     => "https://webservices.netsuite.com",
   "email"    => "jDoe@netsuite.com",
   "password" => "mySecretPwd",
   "role"     => "3",
   "account"  => "MYACCT1",
   "app_id"   => "4AD027CA-88B3-46EC-9D3E-41C6E6A325E2",
   // optional -------------------------------------
   "logging"  => true,
   "log_path" => "/var/www/myapp/logs/netsuite"
);

$service = new NetSuiteService($config);

检索客户记录

use NetSuite\Classes\GetRequest;
use NetSuite\Classes\RecordRef;

$request = new GetRequest();
$request->baseRef = new RecordRef();
$request->baseRef->internalId = "123";
$request->baseRef->type = "customer";

$getResponse = $service->get($request);

if ( ! $getResponse->readResponse->status->isSuccess) {
    echo "GET ERROR";
} else {
    $customer = $getResponse->readResponse->record;
}

搜索以 "j" 开头的电子邮件的客户

use NetSuite\Classes\SearchStringField;
use NetSuite\Classes\CustomerSearchBasic;
use NetSuite\Classes\SearchRequest;

$service->setSearchPreferences(false, 20);

$emailSearchField = new SearchStringField();
$emailSearchField->operator = "startsWith";
$emailSearchField->searchValue = "j";

$search = new CustomerSearchBasic();
$search->email = $emailSearchField;

$request = new SearchRequest();
$request->searchRecord = $search;

$searchResponse = $service->search($request);

if (!$searchResponse->searchResult->status->isSuccess) {
    echo "SEARCH ERROR";
} else {
    $result = $searchResponse->searchResult;
    $count = $result->totalRecords;
    $records = $result->recordList;

    echo $count . " records were found.";
}

添加新客户

use NetSuite\Classes\Customer;
use NetSuite\Classes\RecordRef;
use NetSuite\Classes\AddRequest;

$customer = new Customer();
$customer->lastName = "Doe";
$customer->firstName = "John";
$customer->companyName = "ABC company";
$customer->phone = "123456789";
$customer->email = "joe.doe@abc.com";

$customer->customForm = new RecordRef();
$customer->customForm->internalId = -8;

$request = new AddRequest();
$request->record = $customer;

$addResponse = $service->add($request);

if (!$addResponse->writeResponse->status->isSuccess) {
    echo "ADD ERROR";
} else {
    echo "ADD SUCCESS, id " . $addResponse->writeResponse->baseRef->internalId;
}

日志记录

您可以在任何时候打开或关闭日志记录,或覆盖传入的配置设置。请注意,如果您在配置或之后未指定日志目录,则无论您做什么都不会记录日志。

设置日志路径

$service->setLogPath('/path/to/logs');

打开日志记录

$service->logRequests(true);  // Turn logging on.

关闭日志记录

$service->logRequests(false); // Turn logging off.

基于令牌的认证

您可以使用 consumerKey/consumerSecret/token/tokenSecret 形式的凭据来传递一组凭据,而不是使用标准凭据方法实例化 NetSuiteService

$config = array(
   // required -------------------------------------
   "endpoint"       => "2017_1",
   "host"           => "https://webservices.netsuite.com",
   "account"        => "MYACCT1",
   "consumerKey"    => "0123456789ABCDEF",
   "consumerSecret" => "0123456789ABCDEF",
   "token"          => "0123456789ABCDEF",
   "tokenSecret"    => "0123456789ABCDEF",
   // optional -------------------------------------
   "signatureAlgorithm" => 'sha256', // Defaults to 'sha256'
);

$service = new NetSuiteService($config);

状态

  • 从单个文件中提取约 1500 个类...
  • 具有自动加载的 Composer 包
  • 通过构造函数传递配置
  • 可选环境变量配置
  • 命名空间
  • 日志记录

许可证

原始作品 版权归 © 2010-2015 NetSuite Inc. 并提供“现状”。请参阅 NetSuite 工具包许可协议 文件。

所有附加工作均根据包含的 LICENSE 文件在 Apache 2.0 开源软件许可下进行许可。