diff -u b/modules/cart/commerce_cart.module b/modules/cart/commerce_cart.module
--- b/modules/cart/commerce_cart.module
+++ b/modules/cart/commerce_cart.module
@@ -654,17 +654,20 @@
     // Default to an empty cart block message.
     $content = theme('commerce_cart_empty_block');
 
-	$order = commerce_cart_order_load($user->uid);
-	// If there are one or more products in the cart...
-	if (!commerce_cart_is_cart_empty($order)) {
-	  // Build the variables array to send to the cart block template.
-	  $variables = array(
-		'order' => $order,
-		'contents_view' => commerce_embed_view('commerce_cart_block', 'default', array($order->order_id), $_GET['q']),
-	  );
-  
-	  $content = theme('commerce_cart_block', $variables);
-	}
+    // First check to ensure there are products in the shopping cart.
+    if ($order = commerce_cart_order_load($user->uid)) {
+      // If there are one or more products in the cart...
+      if (!commerce_cart_is_cart_empty($order)) {
+
+        // Build the variables array to send to the cart block template.
+        $variables = array(
+          'order' => $order,
+          'contents_view' => commerce_embed_view('commerce_cart_block', 'default', array($order->order_id), $_GET['q']),
+        );
+
+        $content = theme('commerce_cart_block', $variables);
+      }
+    }
 
     return array('subject' => t('Shopping cart'), 'content' => $content);
   }
@@ -679,20 +682,22 @@
  * @return
  *   Boolean indicating whether or not the shopping cart is empty.
  */
-function commerce_cart_is_cart_empty($order = null) {
+function commerce_cart_is_cart_empty($order = NULL) {
   global $user;
 
-  $order = (!$order) ? commerce_cart_order_load($user->uid) : $order;
+  $is_empty = FALSE;
+
+  $order = (is_null($order)) ? commerce_cart_order_load($user->uid) : $order;
   if ($order) {
     $wrapper = entity_metadata_wrapper('commerce_order', $order);
 
-    // If there are one or more products in the cart...
-    if (commerce_line_items_quantity($wrapper->commerce_line_items, commerce_product_line_item_types()) > 0) {
-      return FALSE;
-    }
+    // If the cart has not any products...
+    $is_empty = commerce_line_items_quantity($wrapper->commerce_line_items, commerce_product_line_item_types()) === 0;
+
+    drupal_alter('commerce_cart_is_cart_empty', $is_empty, $order);
   }
 
-  return TRUE;
+  return $is_empty;
 }
 
 /**
