Add order/product additional fields
Last updated: 13-Oct-2021
Rate this article:
Overview
Use the addAdditionalField method to create new additional fields for your account.
Parameters
Parameters | Type/Description |
---|---|
sessionID |
Required (string) |
|
Session identifier, the output of the Login method. Include sessionID into all your requests. Avangate throws an exception if the values are incorrect. The sessionID expires in 10 minutes. |
Object |
|
|
Additional field object. |
Response
bool(true)
Request
<?php
function callRPC($Request, $hostUrl, $Debug = true)
{
$curl = curl_init($hostUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSLVERSION, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Accept: application/json'
));
$RequestString = json_encode($Request);
curl_setopt($curl, CURLOPT_POSTFIELDS, $RequestString);
if ($Debug) {
$RequestString;
}
$ResponseString = curl_exec($curl);
if ($Debug) {
$ResponseString;
}
if (!empty($ResponseString)) {
// var_dump($ResponseString);
$Response = json_decode($ResponseString);
if (isset($Response->result)) {
return $Response->result;
}
if (!is_null($Response->error)) {
var_dump($Request->method, $Response->error);
}
} else {
return null;
}
}
$host = 'https://api.avangate.com/rpc/3.0/';
$merchantCode = "YOURCODE12345"; //your account's merchant code available in the 'System settings' area of the cPanel: https://secure.avangate.com/cpanel/account_settings.php
$key = "SECRET_KEY"; //your account's secret key available in the 'System settings' area of the cPanel: https://secure.avangate.com/cpanel/account_settings.php
$string = strlen($merchantCode) . $merchantCode . strlen(gmdate('Y-m-d H:i:s')) . gmdate('Y-m-d H:i:s');
$hash = hash_hmac('md5', $string, $key);
$i = 1; // counter for api calls
// Call the login method for authentication
$jsonRpcRequest = new stdClass();
$jsonRpcRequest->jsonrpc = '2.0';
$jsonRpcRequest->method = 'login';
$jsonRpcRequest->params = array(
$merchantCode,
gmdate('Y-m-d H:i:s'),
$hash
);
$jsonRpcRequest->id = $i++;
var_dump($sessionID = callRPC($jsonRpcRequest, $host));
$AdditionalField = new stdClass();
$AdditionalField->Label = 'Do you agree with the new newsletter policy 2015?';
$AdditionalField->Type = 'LISTBOX';
$AdditionalField->Code = 'NewsletterPolicy1234576';
$AdditionalField->ApplyTo = 'ORDER';
$AdditionalField->Values = array();
$AdditionalField->Values[0] = 'YES';
$AdditionalField->Values[1] = 'NO';
$AdditionalField->ValidationRule = null;
$AdditionalField->Translations = array();
$AdditionalField->Translations[0] = new stdClass();
$AdditionalField->Translations[0]->Label = "Êtes-vous d'accord avec la politique de la newsletter?";
$AdditionalField->Translations[0]->Values = array();
$AdditionalField->Translations[0]->Values[0] = 'Oui';
$AdditionalField->Translations[0]->Values[1] = 'Non';
$AdditionalField->Translations[0]->Language = 'fr';
$AdditionalField->Translations[1] = new stdClass();
$AdditionalField->Translations[1]->Label = 'Haben Sie mit dem Newsletter Politik zu?';
$AdditionalField->Translations[1]->Values = array();
$AdditionalField->Translations[1]->Values[0] = 'Ja';
$AdditionalField->Translations[1]->Values[1] = 'Nein';
$AdditionalField->Translations[1]->Language = 'de';
$jsonRpcRequest = array(
'jsonrpc' => '2.0',
'id' => $i++,
'method' => 'addAdditionalField',
'params' => array(
$sessionID,
$AdditionalField
)
);
var_dump(callRPC((Object) $jsonRpcRequest, $host));
?>
Rate this article: