diff --git a/commerce_backoffice_product.info b/commerce_backoffice_product.info
index d65a2a4..1b6a0eb 100644
--- a/commerce_backoffice_product.info
+++ b/commerce_backoffice_product.info
@@ -10,3 +10,4 @@ dependencies[] = views_bulk_operations
 dependencies[] = views_megarow
 
 files[] = includes/views/handlers/commerce_backoffice_product_handler_field_product_quick_edit_form.inc
+files[] = includes/views/handlers/commerce_backoffice_handler_relationship_node_product_data.inc
diff --git a/includes/views/commerce_backoffice_product.views.inc b/includes/views/commerce_backoffice_product.views.inc
index 47ba0fd..c11d88e 100644
--- a/includes/views/commerce_backoffice_product.views.inc
+++ b/includes/views/commerce_backoffice_product.views.inc
@@ -46,4 +46,13 @@ function commerce_backoffice_product_views_data_alter(&$data) {
       'product display' => TRUE,
     ),
   );
+  $data['node']['product_display_product_node_product_id'] = array(
+    'title' => t('Commerce products on node'),
+    'help' => t('Relate nodes to commerce products, specifiying which product reference field or fields to use. This relationship will cause duplicated records if there are multiple products.'),
+    'relationship' => array(
+      'handler' => 'commerce_backoffice_handler_relationship_node_product_data',
+      'label' => t('Product'),
+      'base' => 'commerce_product',
+    ),
+  );
 }
diff --git a/includes/views/commerce_backoffice_product.views_default.inc b/includes/views/commerce_backoffice_product.views_default.inc
index ea39270..f92d397 100644
--- a/includes/views/commerce_backoffice_product.views_default.inc
+++ b/includes/views/commerce_backoffice_product.views_default.inc
@@ -92,11 +92,15 @@ function commerce_backoffice_product_views_default_views() {
   $handler->display->display_options['empty']['empty_text']['id'] = 'empty_text';
   $handler->display->display_options['empty']['empty_text']['table'] = 'commerce_product';
   $handler->display->display_options['empty']['empty_text']['field'] = 'empty_text';
-  /* Relationship: Content: Referenced product */
-  $handler->display->display_options['relationships']['field_product_product_id']['id'] = 'field_product_product_id';
-  $handler->display->display_options['relationships']['field_product_product_id']['table'] = 'field_data_field_product';
-  $handler->display->display_options['relationships']['field_product_product_id']['field'] = 'field_product_product_id';
-  $handler->display->display_options['relationships']['field_product_product_id']['required'] = TRUE;
+  /* Relationship: Content: Commerce products on node */
+  $handler->display->display_options['relationships']['product_display_product_node_product_id']['id'] = 'product_display_product_node_product_id';
+  $handler->display->display_options['relationships']['product_display_product_node_product_id']['table'] = 'node';
+  $handler->display->display_options['relationships']['product_display_product_node_product_id']['field'] = 'product_display_product_node_product_id';
+  $handler->display->display_options['relationships']['product_display_product_node_product_id']['required'] = TRUE;
+  $handler->display->display_options['relationships']['product_display_product_node_product_id']['product_references'] = array(
+    'commerce_product' => 0,
+    'field_product' => 0,
+  );
   /* Field: Bulk operations: Content */
   $handler->display->display_options['fields']['views_bulk_operations']['id'] = 'views_bulk_operations';
   $handler->display->display_options['fields']['views_bulk_operations']['table'] = 'node';
@@ -106,15 +110,14 @@ function commerce_backoffice_product_views_default_views() {
   $handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['display_type'] = '0';
   $handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['enable_select_all_pages'] = 1;
   $handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['force_single'] = 0;
-  $handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['display_result'] = 1;
   $handler->display->display_options['fields']['views_bulk_operations']['vbo_settings']['entity_load_capacity'] = '10';
   $handler->display->display_options['fields']['views_bulk_operations']['vbo_operations'] = array(
     'action::views_bulk_operations_delete_item' => array(
       'selected' => 1,
-      'use_queue' => 0,
       'skip_confirmation' => 0,
       'override_label' => 1,
       'label' => 'Delete product',
+      'postpone_processing' => 0,
     ),
   );
   /* Field: Content: Title */
@@ -130,7 +133,7 @@ function commerce_backoffice_product_views_default_views() {
   $handler->display->display_options['fields']['sku']['id'] = 'sku';
   $handler->display->display_options['fields']['sku']['table'] = 'commerce_product';
   $handler->display->display_options['fields']['sku']['field'] = 'sku';
-  $handler->display->display_options['fields']['sku']['relationship'] = 'field_product_product_id';
+  $handler->display->display_options['fields']['sku']['relationship'] = 'product_display_product_node_product_id';
   $handler->display->display_options['fields']['sku']['group_type'] = 'count';
   $handler->display->display_options['fields']['sku']['label'] = '';
   $handler->display->display_options['fields']['sku']['exclude'] = TRUE;
@@ -191,7 +194,7 @@ function commerce_backoffice_product_views_default_views() {
   $handler->display->display_options['filters']['status']['id'] = 'status';
   $handler->display->display_options['filters']['status']['table'] = 'commerce_product';
   $handler->display->display_options['filters']['status']['field'] = 'status';
-  $handler->display->display_options['filters']['status']['relationship'] = 'field_product_product_id';
+  $handler->display->display_options['filters']['status']['relationship'] = 'product_display_product_node_product_id';
   $handler->display->display_options['filters']['status']['value'] = 'All';
   $handler->display->display_options['filters']['status']['group'] = 1;
   $handler->display->display_options['filters']['status']['exposed'] = TRUE;
diff --git a/includes/views/handlers/commerce_backoffice_handler_relationship_node_product_data.inc b/includes/views/handlers/commerce_backoffice_handler_relationship_node_product_data.inc
new file mode 100644
index 0000000..af87d51
--- /dev/null
+++ b/includes/views/handlers/commerce_backoffice_handler_relationship_node_product_data.inc
@@ -0,0 +1,86 @@
+<?php
+
+/**
+ * @file
+ * Definition of views_handler_relationship_node_term_data.
+ */
+
+/**
+ * Relationship handler to return the taxonomy terms of nodes.
+ *
+ * @ingroup views_relationship_handlers
+ */
+class commerce_backoffice_handler_relationship_node_product_data extends views_handler_relationship  {
+  function init(&$view, &$options) {
+    parent::init($view, $options);
+
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['product_references'] = array('default' => array());
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    $options = array();
+    foreach (field_info_fields() as $field_name => $field) {
+      // only product reference fields used in nodes (product display)
+      if ($field['type'] == 'commerce_product_reference' && $field['bundles']['node']) {
+        $options[$field_name] = $field_name;
+      }
+    }
+
+    $form['product_references'] = array(
+      '#type' => 'checkboxes',
+      '#title' => t('Product References'),
+      '#options' => $options,
+      '#default_value' => $this->options['product_references'],
+      '#description' => t('Choose which product reference field you want to relate. Remember that every product found will create a new record, so this relationship is best used on just one product reference field.'),
+    );
+    parent::options_form($form, $form_state);
+  }
+
+  /**
+   * Called to implement a relationship in a query.
+   */
+  function query() {
+    $this->ensure_my_table();
+
+    $def = $this->definition;
+    $def['table'] = 'commerce_product';
+
+    $def['left_table'] = $this->table_alias;
+    $def['left_field'] = 'nid';
+    $def['field'] = 'entity_id';
+    $def['type'] = empty($this->options['required']) ? 'LEFT' : 'INNER';
+    
+    $query = NULL;
+    foreach ($this->options['product_references'] as $field_name => $option) {
+      if (!array_filter($this->options['product_references']) || $option) {
+        $field_query = db_select('commerce_product', 'p');
+        $field_query->addJoin('LEFT', 'field_data_' . $field_name, $field_name . '_table', $field_name . '_table.' . $field_name . '_product_id = p.product_id');
+        $field_query->fields('p');
+        $field_query->addField($field_name . '_table','entity_id');
+        if ($query) {
+          $query = $query->union($field_query);
+        }
+        else {
+          $query = $field_query;
+        }
+      }
+    }
+    $def['table formula'] = $query;
+    
+    $join = new views_join();
+
+    $join->definition = $def;
+    $join->construct();
+    $join->adjusted = TRUE;
+
+    // use a short alias for this:
+    $alias = $def['table'] . '_' . $this->table;
+
+    $this->alias = $this->query->add_relationship($alias, $join, 'commerce_product', $this->relationship);
+  }
+}
