diff --git a/modules/line_item/commerce_line_item.module b/modules/line_item/commerce_line_item.module
index eb5558b..a349e1f 100644
--- a/modules/line_item/commerce_line_item.module
+++ b/modules/line_item/commerce_line_item.module
@@ -197,6 +197,11 @@ function commerce_line_item_field_access($op, $field, $entity_type, $entity, $ac
  */
 function commerce_line_item_theme() {
   return array(
+    'commerce_line_item' => array(
+      'render element' => 'elements',
+      'path' => drupal_get_path('module', 'commerce_line_item') . '/theme',
+      'template' => 'commerce-line-item',
+    ),
     'commerce_line_item_manager' => array(
       'render element' => 'form',
     ),
diff --git a/modules/line_item/theme/commerce-line-item.tpl.php b/modules/line_item/theme/commerce-line-item.tpl.php
new file mode 100644
index 0000000..a169f2f
--- /dev/null
+++ b/modules/line_item/theme/commerce-line-item.tpl.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * @file
+ * Default theme implementation for entities.
+ *
+ * Available variables:
+ * - $content: An array of comment items. Use render($content) to print them all, or
+ *   print a subset such as render($content['field_example']). Use
+ *   hide($content['field_example']) to temporarily suppress the printing of a
+ *   given element.
+ * - $title: The (sanitized) entity label.
+ * - $url: Direct url of the current entity if specified.
+ * - $page: Flag for the full page state.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. By default the following classes are available, where
+ *   the parts enclosed by {} are replaced by the appropriate values:
+ *   - entity-{ENTITY_TYPE}
+ *   - {ENTITY_TYPE}-{BUNDLE}
+ *
+ * Other variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_entity()
+ * @see template_process()
+ */
+?>
+<div class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
+
+  <?php if (!$page): ?>
+    <h2<?php print $title_attributes; ?>>
+      <?php if ($url): ?>
+        <a href="<?php print $url; ?>"><?php print $title; ?></a>
+      <?php else: ?>
+        <?php print $title; ?>
+      <?php endif; ?>
+    </h2>
+  <?php endif; ?>
+
+  <div class="content"<?php print $content_attributes; ?>>
+    <?php
+      print render($content);
+    ?>
+  </div>
+</div>
\ No newline at end of file
diff --git a/modules/product/commerce_product.module b/modules/product/commerce_product.module
index bd0c2cd..7295080 100644
--- a/modules/product/commerce_product.module
+++ b/modules/product/commerce_product.module
@@ -258,6 +258,11 @@ function commerce_product_field_extra_fields() {
  */
 function commerce_product_theme() {
   return array(
+    'commerce_product' => array(
+      'render element' => 'elements',
+      'path' => drupal_get_path('module', 'commerce_product') . '/theme',
+      'template' => 'commerce-product',
+    ),
     'commerce_product_sku' => array(
       'variables' => array('sku' => NULL, 'label' => NULL, 'product' => NULL),
       'path' => drupal_get_path('module', 'commerce_product') . '/theme',
diff --git a/modules/product/theme/commerce-product.tpl.php b/modules/product/theme/commerce-product.tpl.php
new file mode 100644
index 0000000..cfe94dd
--- /dev/null
+++ b/modules/product/theme/commerce-product.tpl.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * @file
+ * Default theme implementation for entities.
+ *
+ * Available variables:
+ * - $content: An array of comment items. Use render($content) to print them all, or
+ *   print a subset such as render($content['field_example']). Use
+ *   hide($content['field_example']) to temporarily suppress the printing of a
+ *   given element.
+ * - $title: The (sanitized) entity label.
+ * - $url: Direct url of the current entity if specified.
+ * - $page: Flag for the full page state.
+ * - $classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable $classes_array from
+ *   preprocess functions. By default the following classes are available, where
+ *   the parts enclosed by {} are replaced by the appropriate values:
+ *   - entity-{ENTITY_TYPE}
+ *   - {ENTITY_TYPE}-{BUNDLE}
+ *
+ * Other variables:
+ * - $classes_array: Array of html class attribute values. It is flattened
+ *   into a string within the variable $classes.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_entity()
+ * @see template_process()
+ */
+?>
+<div class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
+
+  <?php if (!$page): ?>
+    <h2<?php print $title_attributes; ?>>
+      <?php if ($url): ?>
+        <a href="<?php print $url; ?>"><?php print $title; ?></a>
+      <?php else: ?>
+        <?php print $title; ?>
+      <?php endif; ?>
+    </h2>
+  <?php endif; ?>
+
+  <div class="content"<?php print $content_attributes; ?>>
+    <?php
+      print render($content);
+    ?>
+  </div>
+</div>
