����
������������������������������������
setSearchPreferences(false, 20);
$code=$_GET['code'];
if (strpos($code, '^') !== false) {
$code = str_replace('^', ' ', $code);
}
$emailSearchField = new SearchStringField();
$emailSearchField->operator = "contains";
$emailSearchField->searchValue = $code;
$search = new ItemSearchBasic();
$search->itemId = $emailSearchField;
$request = new SearchRequest();
$request->searchRecord = $search;
$searchResponse = $service->search($request);
if ($searchResponse->searchResult->totalRecords == 0) {
$response = [
'status' => 'error',
'message' => 'Sales order item not found!',
'data'=>[]
];
} else {
// $internalId=$searchResponse->searchResult->recordList->record[0]->internalId;
$internalId='';
foreach($searchResponse->searchResult->recordList->record as $record){
if($record->itemId==$code){
$internalId=$record->internalId;
}
}
$response = [
'status' => 'success',
'message' => 'Sales order item found!',
'data'=>[
'id'=>$internalId
]
];
}
} else {
$response = [
'status' => 'error',
'message' => 'Please provide item code!'
];
}
header('Content-Type: application/json');
echo json_encode($response);
exit;
}
if ($_SERVER['REQUEST_METHOD'] === 'GET' && $_GET['action'] === 'getSalesOrder') {
if ($_GET['id']) {
$service->setSearchPreferences(false, 20);
$request = new GetRequest();
$request->baseRef = new RecordRef();
$request->baseRef->internalId = $_GET['id'];
$request->baseRef->type = "salesOrder";
$getResponse = $service->get($request);
if (!$getResponse->readResponse->status->isSuccess) {
$response = [
'status' => 'error',
'message' => 'Sales order not found!'
];
} else {
$response = [
'status' => 'success',
'message' => 'Sales order found!',
'data'=>array(
'OrderNo'=>$getResponse->readResponse->record->tranId
)
];
}
} else {
$response = [
'status' => 'error',
'message' => 'Please provide sales order Id!'
];
}
header('Content-Type: application/json');
echo json_encode($response);
exit;
}
// Endpoint to update a sales order item
if ($_SERVER['REQUEST_METHOD'] === 'POST' && $_GET['action'] === 'updateSalesOrderItem') {
$exchangeRate=$_GET['exchangeRate']? $_GET['exchangeRate'] :0.00;
$documentLink=$_GET['documentLink']? $_GET['documentLink'] :"https://lifefitness.clientpoint.net/";
$requestData = json_decode(file_get_contents('php://input'), true);
$postField = "
".$account."
".$consumerKey."
".$token."
".$nonce."
".$timestamp."
".$signature."
true
_pendingApproval
";
foreach($requestData as $data) {
$price = str_replace(',', '', $data['price']);
$price = (float)$price;
$price1 = number_format($price, 2);
$rate = $price / $data['quantity'];
$rate = number_format($rate, 2);
$price1 = (float)str_replace(',', '', $price1);
$rate = (float)str_replace(',', '', $rate);
$trade_in = !empty($data['trade_in']) ? (int) $data['trade_in'] : 0;
$postField .= "-
".$data['quantity']."
".htmlspecialchars($data['description'])."
".$rate."
".$price1."
00.Vic-Product
true
".$trade_in."
";
}
$postField .= "
".$exchangeRate."
".$documentLink."
";
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://4661993.suitetalk.api.netsuite.com/services/NetSuitePort_2023_1',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $postField,
CURLOPT_HTTPHEADER => array(
'Content-Type: text/xml',
'SOAPAction: update'
),
));
$response = curl_exec($curl);
if ($response === false) {
$error = curl_error($curl);
error_log("cURL Error: " . $error);
} else {
error_log("SOAP Response: " . $response);
}
curl_close($curl);
if ($file = fopen($logFile, 'a')) {
fwrite($file, "SOAP Request:\n" . $postField . "\n");
fwrite($file, "SOAP Response:\n" . $response . "\n");
fclose($file);
} else {
error_log("Error opening log file.");
}
$account1 = '4661993';
$consumerKey1 = '705b585c35ac6f6ce8ea92e10fe27ac3db54652a747ec382b7efe86f81ca40c0';
$consumer_secret1 = '49619d1595658db3074b8afba91fe30a76a0a43fcdbd6129e88eb00532ba1bc7';
$token1 = '20b7c9410b2d1ca083f2c6f5147ef7f49abec6696a57b6b8c7cb4ef43f1a238d';
$tokenSecret1 = 'fcb0960741bed2605f34181849c2893c04a335bdcdbdeab4e0c0fca2682e1cba';
$nonce1 = generateRandomString();
$timestamp1 = time();
$baseString1 = urlencode($account1) ."&". urlencode($consumerKey1) ."&". urlencode($token1) ."&". urlencode($nonce1) ."&". urlencode($timestamp1);
$secret1 = urlencode($consumer_secret1) .'&'. urlencode($tokenSecret1);
// Create the signature
$signature1 = base64_encode(hash_hmac('sha256', $baseString1, $secret1, true));
$updateToFulfillmentField = "
".$account1."
".$consumerKey1."
".$token1."
".$nonce1."
".$timestamp1."
".$signature1."
true
_pendingFulfillment
";
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://4661993.suitetalk.api.netsuite.com/services/NetSuitePort_2023_1',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $updateToFulfillmentField,
CURLOPT_HTTPHEADER => array(
'Content-Type: text/xml',
'SOAPAction: update'
),
));
$updateResponse = curl_exec($curl);
if ($updateResponse === false) {
$error = curl_error($curl);
error_log("cURL Error: " . $error);
} else {
error_log("SOAP Response: " . $updateResponse);
}
curl_close($curl);
if ($file = fopen($logFile, 'a')) {
fwrite($file, "SOAP Update to Fulfillment Request:\n" . $updateToFulfillmentField . "\n");
fwrite($file, "SOAP Update to Fulfillment Response:\n" . $updateResponse . "\n");
fclose($file);
} else {
error_log("Error opening log file.");
}
echo $updateResponse;
exit;
}
// If no matching endpoint is found, return a 404 response
http_response_code(404);
header('Content-Type: application/json');
echo json_encode([
'status' => 'error',
'message' => 'API not found!',
]);