diff --git a/modules/cart/includes/views/commerce_cart.views.inc b/modules/cart/includes/views/commerce_cart.views.inc
index f84bc25..4ced3f0 100644
--- a/modules/cart/includes/views/commerce_cart.views.inc
+++ b/modules/cart/includes/views/commerce_cart.views.inc
@@ -8,7 +8,12 @@
  * Implements hook_views_data_alter().
  */
 function commerce_cart_views_data_alter(&$data) {
-  $data['commerce_product']['add_to_cart_form'] = array(
+  // Define some fields based upon views_handler_field_entity in the entity
+  // table so they can be re-used with other query backends.
+  // @see views_handler_field_entity
+
+  $data['commerce_product']['add_to_cart_form']['moved to'] = array('views_entity_commerce_product', 'add_to_cart_form');
+  $data['views_entity_commerce_product']['add_to_cart_form'] = array(
     'field' => array(
       'title' => t('Add to Cart form'),
       'help' => t('Display an Add to Cart form for the product.'),
@@ -16,14 +21,14 @@ function commerce_cart_views_data_alter(&$data) {
     ),
   );
 
-  $data['commerce_order']['cart_empty_text'] = array(
+  $data['commerce_order']['cart_empty_text']['moved to'] = array('views_entity_commerce_order', 'cart_empty_text');
+  $data['views_entity_commerce_order']['cart_empty_text'] = array(
     'title' => t('Empty Shopping Cart'),
     'help' => t('Displays an appropriate empty text message for shopping carts.'),
     'area' => array(
       'handler' => 'commerce_cart_handler_area_empty_text',
     ),
   );
-
 }
 
 /**
diff --git a/modules/cart/includes/views/handlers/commerce_cart_handler_field_add_to_cart_form.inc b/modules/cart/includes/views/handlers/commerce_cart_handler_field_add_to_cart_form.inc
index 060885f..a80554c 100644
--- a/modules/cart/includes/views/handlers/commerce_cart_handler_field_add_to_cart_form.inc
+++ b/modules/cart/includes/views/handlers/commerce_cart_handler_field_add_to_cart_form.inc
@@ -3,12 +3,7 @@
 /**
  * Field handler to present an add to cart form for the product..
  */
-class commerce_cart_handler_field_add_to_cart_form extends views_handler_field {
-  function construct() {
-    parent::construct();
-
-    $this->additional_fields['product_id'] = 'product_id';
-  }
+class commerce_cart_handler_field_add_to_cart_form extends views_handler_field_entity {
 
   function option_definition() {
     $options = parent::option_definition();
@@ -74,14 +69,9 @@ class commerce_cart_handler_field_add_to_cart_form extends views_handler_field {
     );
   }
 
-  function query() {
-    $this->ensure_my_table();
-    $this->add_additional_fields();
-  }
-
   function render($values) {
     // Attempt to load the specified product.
-    $product = commerce_product_load($this->get_value($values, 'product_id'));
+    $product = $this->get_value($values);
 
     if (!empty($product)) {
       // Extract a default quantity for the Add to Cart form line item.
