Price Field Not Saving Programatically
Commerce price fields have a different data structure from standard fields.

i.e not:

$product-&gt;commerce_price[LANGUAGE_NONE][0]['value'] = 500;


but instead

$product-&gt;commerce_price[LANGUAGE_NONE][0]['amount'] = 500;
$product-&gt;commerce_price[LANGUAGE_NONE][0]['currency_code'] = 'USD';


or just:

$product-&gt;commerce_price[LANGUAGE_NONE][0] = array('amount' =&gt; 500, 'currency_code' =&gt; 'USD');


They also have a 'data' property for additional price component information.

More info: commerce_price_field_data_property_info