<?php

require __DIR__ . '/autoload.php';
use NetSuite\WebServices\AddRequest;
use NetSuite\WebServices\PurchaseOrder;
$purchaseOrderFields = array('entity' => array('internalId' => 1), 'itemList' => array('item' => array(array('item' => array('internalId' => 458), 'quantity' => 5)), 'replaceAll' => true));
$po = new PurchaseOrder();
\NetSuite\WebServices\setFields($po, $purchaseOrderFields);
$request = new AddRequest();
$request->record = $po;
$addResponse = $service->add($request);
if (!$addResponse->writeResponse->status->isSuccess) {
    echo "ADD ERROR\n";
    var_dump($addResponse);
} else {
    echo "ADD SUCCESS, id " . $addResponse->writeResponse->baseRef->internalId;
}
<?php

require __DIR__ . '/autoload.php';
use NetSuite\WebServices\AsyncAddListRequest;
use NetSuite\WebServices\CheckAsyncStatusRequest;
use NetSuite\WebServices\Customer;
use NetSuite\WebServices\GetAsyncResultRequest;
// create Customer record
$customer1 = new Customer();
$name = 'customer_php_async_1';
$customerFields1 = array('companyName' => $name, 'externalId' => $name);
\NetSuite\WebServices\setFields($customer1, $customerFields1);
$customer2 = new Customer();
$name2 = 'customer_php_async_2';
$customerFields2 = array('companyName' => $name2, 'externalId' => $name2);
\NetSuite\WebServices\setFields($customer2, $customerFields2);
// perform async add operation
$asyncRequest = new AsyncAddListRequest();
$asyncRequest->record = array($customer1, $customer2);
$checkAsync = $service->asyncAddList($asyncRequest);
// get job id
$jobId = $checkAsync->asyncStatusResult->jobId;
$checkAsyncRequest = new CheckAsyncStatusRequest();
$checkAsyncRequest->jobId = $jobId;
while ($checkAsync->asyncStatusResult->status == 'pending' || $checkAsync->asyncStatusResult->status == 'processing') {
    echo $checkAsync->asyncStatusResult->status . "\n";
    sleep(10);
    $checkAsync = $service->checkAsyncStatus($checkAsyncRequest);
}
// once it is done processing, get the result
$getAsyncRequest = new GetAsyncResultRequest();
use NetSuite\WebServices\GetSelectValueRequest;
use NetSuite\WebServices\RecordRef;
use NetSuite\WebServices\RecordType;
use NetSuite\WebServices\SalesOrder;
use NetSuite\WebServices\SalesOrderItem;
use NetSuite\WebServices\SalesOrderItemList;
$svr = new GetSelectValueRequest();
$svr->fieldDescription = new GetSelectValueFieldDescription();
$svr->pageIndex = 1;
/*$svr->fieldDescription->recordType = RecordType::salesOrder;
$svr->fieldDescription->sublist = "itemList";
$svr->fieldDescription->field = "price";
$svr->fieldDescription->
*/
$priceFields = array('recordType' => RecordType::salesOrder, 'sublist' => 'itemList', 'field' => 'price', 'filterByValueList' => array('filterBy' => array(array('field' => 'item', 'sublist' => 'itemList', 'internalId' => '6'))));
\NetSuite\WebServices\setFields($svr->fieldDescription, $priceFields);
$gsv = $service->getSelectValue($svr);
$id = null;
if (isset($gsv->getSelectValueResult->baseRefList)) {
    foreach ($gsv->getSelectValueResult->baseRefList->baseRef as $pricelevel) {
        if ($pricelevel->name == 'Custom') {
            $id = $pricelevel->internalId;
            break;
        }
    }
}
if ($id != null) {
    echo "Custom price level id is " . $id . "\n";
} else {
    echo "Custom price level not found " . $id . "\n";
}