Programmatically created field doesn't appear in Views fields Here is my little module that adds "markup" field to commerce_product table, but I can't select and display it in Views:

function comm_markup_schema_alter(&amp;$schema) {
  $schema['commerce_product']['fields']['markup'] = array(
    'type' =&gt; 'float',
    'not null' =&gt; TRUE,
    'default' =&gt; 1,
    'description' =&gt; 'Price markup field',
  );
}

function comm_markup_install() {
  $schema = drupal_get_schema('commerce_product');
  db_add_field('commerce_product', 'markup', $schema['fields']['markup']);
}

function comm_markup_uninstall() {
  db_drop_field('commerce_product', 'markup');
}

function comm_markup_entity_property_info_alter(&amp;$info) {
  $properties = &amp;$info['commerce_product']['properties'];
  $properties['markup'] = array(
    'label' =&gt; t('Price markup'),
    'type' =&gt; 'decimal',
    'description' =&gt; 'Gross price multiplier (defines profit amount).',
    'schema field' =&gt; 'markup',
    'getter callback' =&gt; 'entity_property_verbatim_get',
    'setter callback' =&gt; 'entity_property_verbatim_set',
  );
}


UPD:

function comm_markup_views_data_alter(&amp;$data) {
  $data['commerce_product']['markup'] = array(
    'title' =&gt; t('Price markup field'),
    'help' =&gt; t('Multiplier. Adds profit to the gross price.'),
    'field' =&gt; array(
      'handler' =&gt; 'views_handler_field_numeric',
      'click sortable' =&gt; TRUE,
    ),
    'filter' =&gt; array(
      'handler' =&gt; 'views_handler_filter_numeric',
    ),
    'sort' =&gt; array(
      'handler' =&gt; 'views_handler_sort',
    ),
  );
}
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...
  );
}