Jan 23, 2014

How to integrate Sugar CRM API with PHP?

Step 1: Login connection with SUGAR

$url = "https://urdomain.sugarondemand.com/service/v4_1/rest.php"; //Rest api url
$username = "urusername"; // sugar account username
$password = "urpassword"; // sugar account password

//login Authentication Process
$login_parameters = array(
"user_auth" => array(
 "user_name" => $username,
 "password" => md5($password),
 "version" => "1"
),
"application_name" => "URWebsiteName",
"name_value_list" => array(),
);
//call to sugar api
$login_result = call("login", $login_parameters, $url);
//get session id
$session_id = $login_result->id;

Step 2: Create call() function as follows

function call($method, $parameters, $url)
{
ob_start();
$curl_request = curl_init();

curl_setopt($curl_request, CURLOPT_URL, $url);
curl_setopt($curl_request, CURLOPT_POST, 1);
curl_setopt($curl_request, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($curl_request, CURLOPT_HEADER, 1);
curl_setopt($curl_request, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl_request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_request, CURLOPT_FOLLOWLOCATION, 0);

$jsonEncodedData = json_encode($parameters);

$post = array(
"method" => $method,
"input_type" => "JSON",
"response_type" => "JSON",
"rest_data" => $jsonEncodedData
);

curl_setopt($curl_request, CURLOPT_POSTFIELDS, $post);
$result = curl_exec($curl_request);
curl_close($curl_request);

$result = explode("\r\n\r\n", $result, 2);
$response = json_decode($result[1]);
ob_end_flush();

return $response;
}

Step 3: How to add user data in 'Accounts' Module.

$set_entry_parameters = array(
//session id
"session" => $session_id,
//The name of the module from which to retrieve records.
"module_name" => "Accounts",
//Record attributes
"name_value_list" => array(  
 array("name" => "name", "value" => $name),  
 array('name'=>'billing_address_street ', "value"=>$billing_address_street),
 array('name'=>'billing_address_city', "value"=>$billing_address_city),
 array('name'=>'billing_address_state ', "value"=>$billing_address_state),
 array('name'=>'billing_address_postalcode ', "value"=>$billing_address_postalcode)
),
);
$set_entry_result = call("set_entry", $set_entry_parameters, $url);
$accountId = $set_entry_result->id; // Store $accountId in db for update the same record in future

Step 4: How to add user data in 'Contacts' Module.

$set_entry_parameters_contacts = array(
 
"session" => $session_id,
"module_name" => "Contacts",

"name_value_list" => array(  

array("name" => 'first_name', "value" => $first_name),
array("name" => 'last_name', "value" => $last_name),
array('name'=>'account_name', "value"=>$account_name),
array('name'=>'middle_name_c', "value"=>$middle_name_c), // middle_name_c is the custom field in Contacts module
array('name'=>'email1', "value"=>$email1)

),
);
}

$set_entry_result_contact= call("set_entry", $set_entry_parameters_contacts, $url);
$contactId = $set_entry_result_contact->id; // Store $accountId in db for update the same record in future

Step 5: Now let's make relationship between Accounts & Contacts modules

if($accountId != "" && $contactId != "")
{
$parameters = array( 
'session' => $session_id,
'module_name' => 'Accounts',
'module_id' => $accountId,
'link_field_name' => 'contacts', 
'related_ids' => array($contactId) 
); 

$relationship_res = call('set_relationship', $parameters, $url);
}

Step 6: Done. :)

How to add user data in Sugar CRM custom module and make relationship in PHP?

No comments:

Post a Comment