<?php $service = new \NetSuiteService(null_resettable, ['exceptions' => true, 'connection_timeout' => 10]); if (!empty($passport['token'])) { $tokenGenerator = new \TokenPassportGenerator($passport); $service->setTokenGenerator($tokenGenerator); } else { $service->setPassport($passport['account'], $passport['email'], $passport['role'], $passport['password']); } $service->setSearchPreferences($bodyFieldsOnly = true, $pageSize = 50, $returnSearchColumns = true); //search contact by email $contactSearch = new \ContactSearchBasic(); $contactSearch->email = new \SearchStringField(); $contactSearch->email->operator = \SearchStringFieldOperator::is; $contactSearch->email->searchValue = $email; $request = new \SearchRequest(); $request->searchRecord = $contactSearch; $response = $service->search($request); if (!$response->searchResult->status->isSuccess) { throw new Exception("InternalID of email $email was fetched failed from NS! "); } if (0 === $response->searchResult->totalRecords) { return []; } $recordList = $response->searchResult->recordList->record; return $recordList; //update $standardForm = new \RecordRef(); $standardForm->internalId = -40; $_contact = new \Contact(); $_contact->customForm = $standardForm; $_contact->internalId = $internalId; //old record internalId $_contact->customFieldList = new \CustomFieldList(); $_contact->customFieldList->customField = []; foreach ($record->customFieldList->customField as $i => $customField) { $_contact->customFieldList->customField[$i] = $customField; if ($customField->scriptId == 'custentitymarketing_newletters') { $_contact->customFieldList->customField[$i]->value = true; } } $request = new \UpdateRequest(); $request->record = $_contact; $updateResponse = $service->update($request); if (!$updateResponse->writeResponse->status->isSuccess) { return false; } return true; //search contact by 'internalId' list $contactSearch = new \ContactSearchBasic(); $contactSearch->internalId = new \SearchMultiSelectField(); $contactSearch->internalId->operator = \SearchMultiSelectFieldOperator::anyOf; $contactSearch->internalId->operatorSpecified = true; $idBuff = []; $idTarget = [3546069, 3548689, 3966]; foreach ($idTarget as $id) { $recordRef = new \RecordRef(); $recordRef->internalId = $id; $idBuff[] = $recordRef; } $contactSearch->internalId->searchValue = $idBuff; $request = new \SearchRequest(); $request->searchRecord = $contactSearch; $response = $service->search($request); $recordList = $response->searchResult->recordList->record; return $recordList;