Index: uc_node_checkout.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/uc_node_checkout/uc_node_checkout.module,v
retrieving revision 1.8.2.12
diff -u -p -r1.8.2.12 uc_node_checkout.module
--- uc_node_checkout.module	26 Oct 2010 18:48:58 -0000	1.8.2.12
+++ uc_node_checkout.module	1 Feb 2011 16:58:14 -0000
@@ -675,6 +675,28 @@ function uc_node_checkout_cart_item($op,
         $item->checkout_node = $node;
       }
       break;
+    case 'can_ship':
+      // Determine if there is a shippable component to this node checkout product
+      // We will look at the default $item settings to determine.
+      if ($uc_node_checkout_product = node_load($item->data['nid'])) {
+        // If the item was set to be 'shippable' on the node edit form of the uc_node_checkout product,
+        // not the associated node to purchase, then we'll send this off to ubercart as a 'shippable' item
+        // and Ubercart will use this is a trigger to display the shipping pane. Else, if set to unshippable
+        // Ubercart will not trigger the shipping pane, provided there are no other shippable products
+        // in the cart with the uc_node_checkout items.
+        if ($uc_node_checkout_product->shippable == 0) {
+          // If this, then the product was set to 'not shippable'
+          return FALSE;
+        }
+        else {
+          return TRUE;
+        }
+      }
+      else {
+        // $item->data['nid'] was not found or I was unable to node_load $item->data['nid']'s nid. So show an error:
+        drupal_set_message(t('Unable to determine the product class associated with item ' . $item->data['title'] . ' so the shipping pane is included on this Ubercart display'), 'error');
+      }
+      break;
   }
 }
