I use entityreference together with Drupal Commerce and a custom line item type using http://drupal.org/project/commerce_custom_product.

1) I created a view, which takes a product id as input. When putting in a product id in Views UI, I get all options for the subjects.
2) I have a field on a custom line item type, which uses the view and gets this token as an argument: [commerce-line-item:commerce-product:product-id] - using patch #41 from #1699378: Allow tokens in entity reference views selection arguments
3) On the product display in the add to cart form, however, only one of the options are shown?

I tracked the problem down to the view using the wrong nid as the key in the returned view.

The view below connects from the line item product id to a product display which again connects to subject entities. I need to use the subject entities, and the title is correctly displayed. However, the nid from the product display is used as the key making only the last option show as all other options are overwritten.

I suspect it has something to do with entityreference choosing the id of the base table by default. http://drupalcode.org/project/entityreference.git/blob/refs/heads/7.x-1....

This is either a bug, feature request to be able to decide your own key or a support request. I am not quite sure :) It however, might be releated to a previous problem I had: #1765158: Values not stored

$view = new view();
$view->name = 'vih_short_course_sportcamp_subjects';
$view->description = '';
$view->tag = 'VIH';
$view->base_table = 'node';
$view->human_name = 'VIH Short Course Sportcamp Subjects';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */

/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['use_more_always'] = FALSE;
$handler->display->display_options['use_more_text'] = 'mere';
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['query']['options']['disable_sql_rewrite'] = TRUE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['exposed_form']['options']['submit_button'] = 'Udfør';
$handler->display->display_options['exposed_form']['options']['reset_button_label'] = 'Gendan';
$handler->display->display_options['exposed_form']['options']['exposed_sorts_label'] = 'Sortér efter';
$handler->display->display_options['exposed_form']['options']['sort_asc_label'] = 'Stigende';
$handler->display->display_options['exposed_form']['options']['sort_desc_label'] = 'Faldende';
$handler->display->display_options['pager']['type'] = 'full';
$handler->display->display_options['pager']['options']['expose']['items_per_page_label'] = 'Antal elementer';
$handler->display->display_options['pager']['options']['expose']['items_per_page_options_all_label'] = '- Alle -';
$handler->display->display_options['pager']['options']['expose']['offset_label'] = 'Forskydning';
$handler->display->display_options['pager']['options']['tags']['first'] = '« første';
$handler->display->display_options['pager']['options']['tags']['previous'] = '‹ forrige';
$handler->display->display_options['pager']['options']['tags']['next'] = 'næste ›';
$handler->display->display_options['pager']['options']['tags']['last'] = 'sidste »';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'fields';
/* Forbindelse: Entity Reference: Refererende entity */
$handler->display->display_options['relationships']['reverse_field_short_course_subjects_node']['id'] = 'reverse_field_short_course_subjects_node';
$handler->display->display_options['relationships']['reverse_field_short_course_subjects_node']['table'] = 'node';
$handler->display->display_options['relationships']['reverse_field_short_course_subjects_node']['field'] = 'reverse_field_short_course_subjects_node';
$handler->display->display_options['relationships']['reverse_field_short_course_subjects_node']['required'] = TRUE;
/* Felt: Indhold: Titel */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
$handler->display->display_options['fields']['title']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['title']['link_to_node'] = FALSE;
/* Sorteringskriterie: Indhold: Titel */
$handler->display->display_options['sorts']['title']['id'] = 'title';
$handler->display->display_options['sorts']['title']['table'] = 'node';
$handler->display->display_options['sorts']['title']['field'] = 'title';
$handler->display->display_options['sorts']['title']['order'] = 'DESC';
/* Kontekstuelt filter: Indhold: Nid */
$handler->display->display_options['arguments']['nid']['id'] = 'nid';
$handler->display->display_options['arguments']['nid']['table'] = 'node';
$handler->display->display_options['arguments']['nid']['field'] = 'nid';
$handler->display->display_options['arguments']['nid']['relationship'] = 'reverse_field_short_course_subjects_node';
$handler->display->display_options['arguments']['nid']['default_action'] = 'default';
$handler->display->display_options['arguments']['nid']['exception']['title'] = 'Alle';
$handler->display->display_options['arguments']['nid']['default_argument_type'] = 'node';
$handler->display->display_options['arguments']['nid']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['nid']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['nid']['summary_options']['items_per_page'] = '25';
/* Filterkriterie: Indhold: Udgivet */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['value'] = 1;
$handler->display->display_options['filters']['status']['group'] = 1;
$handler->display->display_options['filters']['status']['expose']['operator'] = FALSE;
/* Filterkriterie: Indhold: Type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'vih_short_course_subject' => 'vih_short_course_subject',
);

/* Display: Content pane */
$handler = $view->new_display('panel_pane', 'Content pane', 'panel_pane_1');
$handler->display->display_options['defaults']['hide_admin_links'] = FALSE;
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'table';
$handler->display->display_options['style_options']['columns'] = array(
  'title' => 'title',
);
$handler->display->display_options['style_options']['default'] = '-1';
$handler->display->display_options['style_options']['info'] = array(
  'title' => array(
    'sortable' => 0,
    'default_sort_order' => 'asc',
    'align' => '',
    'separator' => '',
    'empty_column' => 0,
  ),
);
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['relationships'] = FALSE;
$handler->display->display_options['defaults']['fields'] = FALSE;
/* Felt: Felt: Billede */
$handler->display->display_options['fields']['field_picture']['id'] = 'field_picture';
$handler->display->display_options['fields']['field_picture']['table'] = 'field_data_field_picture';
$handler->display->display_options['fields']['field_picture']['field'] = 'field_picture';
$handler->display->display_options['fields']['field_picture']['label'] = '';
$handler->display->display_options['fields']['field_picture']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['field_picture']['click_sort_column'] = 'fid';
$handler->display->display_options['fields']['field_picture']['settings'] = array(
  'image_style' => 'thumbnail',
  'image_link' => 'content',
);
/* Felt: Indhold: Titel */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
$handler->display->display_options['fields']['title']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['title']['link_to_node'] = FALSE;
/* Felt: Indhold: Udgivet */
$handler->display->display_options['fields']['status']['id'] = 'status';
$handler->display->display_options['fields']['status']['table'] = 'node';
$handler->display->display_options['fields']['status']['field'] = 'status';
$handler->display->display_options['fields']['status']['type'] = 'unicode-yes-no';
$handler->display->display_options['fields']['status']['not'] = 0;
/* Felt: Indhold: Redigér-link */
$handler->display->display_options['fields']['edit_node']['id'] = 'edit_node';
$handler->display->display_options['fields']['edit_node']['table'] = 'views_entity_node';
$handler->display->display_options['fields']['edit_node']['field'] = 'edit_node';
$handler->display->display_options['fields']['edit_node']['label'] = '';
$handler->display->display_options['fields']['edit_node']['element_label_colon'] = FALSE;
/* Felt: Indhold: Slet-link */
$handler->display->display_options['fields']['delete_node']['id'] = 'delete_node';
$handler->display->display_options['fields']['delete_node']['table'] = 'views_entity_node';
$handler->display->display_options['fields']['delete_node']['field'] = 'delete_node';
$handler->display->display_options['fields']['delete_node']['label'] = '';
$handler->display->display_options['fields']['delete_node']['element_label_colon'] = FALSE;
$handler->display->display_options['defaults']['arguments'] = FALSE;
$handler->display->display_options['defaults']['filter_groups'] = FALSE;
$handler->display->display_options['defaults']['filters'] = FALSE;
/* Filterkriterie: Indhold: Type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['value'] = array(
  'vih_short_course_subject' => 'vih_short_course_subject',
);
$handler->display->display_options['filters']['type']['group'] = 1;

/* Display: Entity Reference */
$handler = $view->new_display('entityreference', 'Entity Reference', 'entityreference_2');
$handler->display->display_options['defaults']['title'] = FALSE;
$handler->display->display_options['defaults']['hide_admin_links'] = FALSE;
$handler->display->display_options['defaults']['group_by'] = FALSE;
$handler->display->display_options['defaults']['query'] = FALSE;
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['query']['options']['disable_sql_rewrite'] = TRUE;
$handler->display->display_options['pager']['type'] = 'none';
$handler->display->display_options['pager']['options']['offset'] = '0';
$handler->display->display_options['defaults']['style_plugin'] = FALSE;
$handler->display->display_options['style_plugin'] = 'entityreference_style';
$handler->display->display_options['style_options']['search_fields'] = array(
  'title' => 'title',
);
$handler->display->display_options['defaults']['style_options'] = FALSE;
$handler->display->display_options['defaults']['row_plugin'] = FALSE;
$handler->display->display_options['row_plugin'] = 'entityreference_fields';
$handler->display->display_options['row_options']['hide_empty'] = TRUE;
$handler->display->display_options['defaults']['row_options'] = FALSE;
$handler->display->display_options['defaults']['relationships'] = FALSE;
/* Forbindelse: Commerce Product: Indholdselement henviser til produkter fra field_golf_product */
$handler->display->display_options['relationships']['field_golf_product']['id'] = 'field_golf_product';
$handler->display->display_options['relationships']['field_golf_product']['table'] = 'commerce_product';
$handler->display->display_options['relationships']['field_golf_product']['field'] = 'field_golf_product';
$handler->display->display_options['relationships']['field_golf_product']['relationship'] = 'field_golf_product_product_id';
$handler->display->display_options['relationships']['field_golf_product']['required'] = TRUE;
/* Forbindelse: Entity Reference: Refereret entity */
$handler->display->display_options['relationships']['field_short_course_subjects_target_id']['id'] = 'field_short_course_subjects_target_id';
$handler->display->display_options['relationships']['field_short_course_subjects_target_id']['table'] = 'field_data_field_short_course_subjects';
$handler->display->display_options['relationships']['field_short_course_subjects_target_id']['field'] = 'field_short_course_subjects_target_id';
$handler->display->display_options['relationships']['field_short_course_subjects_target_id']['required'] = TRUE;
/* Forbindelse: Indhold: Refereret produkt */
$handler->display->display_options['relationships']['field_golf_product_product_id_1']['id'] = 'field_golf_product_product_id_1';
$handler->display->display_options['relationships']['field_golf_product_product_id_1']['table'] = 'field_data_field_golf_product';
$handler->display->display_options['relationships']['field_golf_product_product_id_1']['field'] = 'field_golf_product_product_id';
$handler->display->display_options['relationships']['field_golf_product_product_id_1']['required'] = TRUE;
$handler->display->display_options['defaults']['fields'] = FALSE;
/* Felt: Indhold: Titel */
$handler->display->display_options['fields']['title']['id'] = 'title';
$handler->display->display_options['fields']['title']['table'] = 'node';
$handler->display->display_options['fields']['title']['field'] = 'title';
$handler->display->display_options['fields']['title']['relationship'] = 'field_short_course_subjects_target_id';
$handler->display->display_options['fields']['title']['label'] = '';
$handler->display->display_options['fields']['title']['alter']['word_boundary'] = FALSE;
$handler->display->display_options['fields']['title']['alter']['ellipsis'] = FALSE;
$handler->display->display_options['fields']['title']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['title']['link_to_node'] = FALSE;
$handler->display->display_options['defaults']['sorts'] = FALSE;
/* Sorteringskriterie: Indhold: Titel */
$handler->display->display_options['sorts']['title']['id'] = 'title';
$handler->display->display_options['sorts']['title']['table'] = 'node';
$handler->display->display_options['sorts']['title']['field'] = 'title';
$handler->display->display_options['sorts']['title']['relationship'] = 'field_short_course_subjects_target_id';
$handler->display->display_options['defaults']['arguments'] = FALSE;
/* Kontekstuelt filter: Commerce Product: Produkt-ID */
$handler->display->display_options['arguments']['product_id']['id'] = 'product_id';
$handler->display->display_options['arguments']['product_id']['table'] = 'commerce_product';
$handler->display->display_options['arguments']['product_id']['field'] = 'product_id';
$handler->display->display_options['arguments']['product_id']['relationship'] = 'field_golf_product_product_id_1';
$handler->display->display_options['arguments']['product_id']['default_action'] = 'not found';
$handler->display->display_options['arguments']['product_id']['exception']['title'] = 'Alle';
$handler->display->display_options['arguments']['product_id']['default_argument_type'] = 'fixed';
$handler->display->display_options['arguments']['product_id']['default_argument_skip_url'] = TRUE;
$handler->display->display_options['arguments']['product_id']['summary']['number_of_records'] = '0';
$handler->display->display_options['arguments']['product_id']['summary']['format'] = 'default_summary';
$handler->display->display_options['arguments']['product_id']['summary_options']['items_per_page'] = '25';
$handler->display->display_options['defaults']['filter_groups'] = FALSE;
$handler->display->display_options['defaults']['filters'] = FALSE;
/* Filterkriterie: Indhold: Type */
$handler->display->display_options['filters']['type']['id'] = 'type';
$handler->display->display_options['filters']['type']['table'] = 'node';
$handler->display->display_options['filters']['type']['field'] = 'type';
$handler->display->display_options['filters']['type']['relationship'] = 'field_short_course_subjects_target_id';
$handler->display->display_options['filters']['type']['value'] = array(
  'vih_short_course_subject' => 'vih_short_course_subject',
);
/* Filterkriterie: Indhold: Udgivet */
$handler->display->display_options['filters']['status']['id'] = 'status';
$handler->display->display_options['filters']['status']['table'] = 'node';
$handler->display->display_options['filters']['status']['field'] = 'status';
$handler->display->display_options['filters']['status']['relationship'] = 'field_short_course_subjects_target_id';
$handler->display->display_options['filters']['status']['value'] = '1';
$translatables['vih_short_course_sportcamp_subjects'] = array(
  t('Master'),
  t('mere'),
  t('Udfør'),
  t('Gendan'),
  t('Sortér efter'),
  t('Stigende'),
  t('Faldende'),
  t('Antal elementer'),
  t('- Alle -'),
  t('Forskydning'),
  t('« første'),
  t('‹ forrige'),
  t('næste ›'),
  t('sidste »'),
  t('Indhold refererer til Indhold fra field_short_course_subjects'),
  t('Alle'),
  t('Content pane'),
  t('Udgivet'),
  t('View panes'),
  t('Entity Reference'),
  t('Indholdselement henviser til produkter fra field_golf_product'),
  t('Indhold entity refereret fra field_short_course_subjects'),
  t('Produkt'),
);

Comments

lsolesen’s picture

Issue summary: View changes

Updated.

lsolesen’s picture

Issue summary: View changes

Added link to suspected code problem.

lsolesen’s picture

Status: Active » Closed (works as designed)

One needs to use the proper base table for the view. So just start out with the correct table.

lsolesen’s picture

Issue summary: View changes

Added reference to dynamic token patch.