Hide user fields on profile2 registration form
to hide and show fields on user registration form while using Profile2 path - try the following in hook_form_alter in template.php.

if ($form_id == 'user_register_form') { 

// get current path  
$request_path = request_path();  

// check if current path corresponds to your registration form for a particular role  
if (strpos($request_path,'buyer') !== false) {    

// removes the field that should be hidden
$form['field_1']['und'][0]['value']['#access'] = FALSE;

// or   
unset($form['field_1']['und'][0]['value']);

// set the state of the field to required  
 $form['field_2']['und'][0]['value']['#required'] = TRUE;

}  
}


simple warning - you may find that Location  module fields that utilize ajax (same goes for Address Field module) have a bug that breaks the user reg. form produced by Profile2 Path if it is submitted with errors and exposes fields hidden with method described above. Look for insight in this issue (https://www.drupal.org/node/2558335).