2016-07-28 3 views
1

У меня есть этот существующий фрагмент кода, который ищет список записей, указанных в его типе RecordType (например, InventoryItem, SalesOrder).Поиск Доставка товара в Netsuite API

$request = new GetRequest(); 
$request->baseRef = new RecordRef(); 
$request->baseRef->type = $type; //Record Type 
$request->baseRef->internalId = $internalId; //Internal ID of record 

$getResponse = $service->get($request); 
if (! $getResponse->readResponse->status->isSuccess) { 
    return 'ERROR'; 
} else { 
    return $getResponse->readResponse->record; 
} 

Однако, похоже, что нет элемента доставки в списке в RecordType, хотя я могу передать внутренний идентификатор. Моя цель заключалась в том, чтобы получить данные о доставке, которые будут использоваться в моих расчетах для создания заказа клиента (его необходимо отобразить перед отправкой).

Будет ли другой подход при получении записи о доставке? Как?

ответ

0

Теперь я могу успешно получить элементы доставки через RESTлеты. Я загрузил это сначала как новое в Шкаф Файла, а затем добавил его как новый скрипт. NetSuite не позволяет напрямую загружать файл сценария при создании нового скрипта.

// get_record.js 
function get_record(datain) 
{ 
    var record = nlapiLoadRecord(datain.recordType, datain.id); 
    return record; 
} 

Затем используется жужжающая http-библиотека для вызова RESTlet.

$url = "https://rest.sandbox.netsuite.com/app/site/hosting/restlet.nl"; 
    $client = new GuzzleHttp\Client(); 

    $authorization = [ 
     'NLAuth nlauth_account='.getenv('NETSUITE_ACCOUNT'), 
     'nlauth_email='.getenv('NETSUITE_EMAIL'), 
     'nlauth_signature='.getenv('NETSUITE_PASSWORD'), 
     'nlauth_role='.getenv('NETSUITE_ROLE') 
    ]; 

    $response = $client->request('GET', $url, [ 
     'headers' => [ 
      'Authorization' => implode(',', $authorization), 
      'Content-Type' => 'application/json' 
     ], 
     'query' => [ 
      'script' => '343', //script id 
      'deploy' => '1', 
      'recordType' => 'ShipItem', 
      'id' => '5905' // example of internal id of desired shipping item 
     ] 
    ]); 

    return json_decode($response->getBody()); 
2

Элемент доставки товара еще не поддерживается в Suitetalk. В качестве альтернативного решения вы можете создать RESTlet вместо этого, чтобы получить пункт доставки.

+0

Хорошо спасибо, я рассмотрю документы в RESTlet о том, как это сделать. Основываясь на том, что я знаю, я создам собственный скрипт для извлечения, например, предмета доставки, а затем позвоните в службу восстановления с моей базы кода, правильно? Я буду публиковать свою реализацию здесь, если мне удастся это сделать. – oLraX

Смежные вопросы