Programmatically created field doesn't appear in Views fields
Unless you manually describe the new field to views, it won't know about it. You can do that with hook_view_data_alter():

function MYMODULE_views_data_alter(&amp;$data) {
  $data['commerce_product']['markup'] = array(
    'title' =&gt; t('Price markup field'),
    'help' =&gt; t('An amazing field which does something great'),
    // Add the rest of the definition here...
  );
}