in core/ServerEventAsyncTask.php [58:97]
private function convert_array_to_event($event_as_array){
$event = new Event($event_as_array);
// If user_data exists, an UserData object is created
// and set
if(array_key_exists('user_data', $event_as_array)){
// The method convert_user_data converts the keys used in the
// normalized array to the keys used in the constructor of UserData
$user_data = new UserData($this->convert_user_data(
$event_as_array['user_data']
));
$event->setUserData($user_data);
}
// If custom_data exists, a CustomData object is created and set
if(array_key_exists('custom_data', $event_as_array)){
$custom_data = new CustomData($event_as_array['custom_data']);
// If contents exists in custom_data, an array of Content is created
// and set
if(array_key_exists('contents', $event_as_array['custom_data'])){
$contents = array();
foreach(
$event_as_array['custom_data']['contents'] as $contents_as_array
){
// The normalized contents array encodes product id as id
// but the constructor of Content requires product_id
if(array_key_exists('id', $contents_as_array)){
$contents_as_array['product_id'] = $contents_as_array['id'];
}
$contents[] = new Content($contents_as_array);
}
$custom_data->setContents($contents);
}
if(array_key_exists('fb_integration_tracking',
$event_as_array['custom_data'])){
$custom_data->addCustomProperty('fb_integration_tracking',
$event_as_array['custom_data']['fb_integration_tracking']);
}
$event->setCustomData($custom_data);
}
return $event;
}