diff --git a/uc_product/src/Plugin/Field/FieldFormatter/UcDimensionsFormatter.php b/uc_product/src/Plugin/Field/FieldFormatter/UcDimensionsFormatter.php
index e65cfec..3981725 100644
--- a/uc_product/src/Plugin/Field/FieldFormatter/UcDimensionsFormatter.php
+++ b/uc_product/src/Plugin/Field/FieldFormatter/UcDimensionsFormatter.php
@@ -30,12 +30,15 @@ class UcDimensionsFormatter extends FormatterBase {
     $elements = array();
 
     foreach ($items as $delta => $item) {
-      $dimensions = array(
-        uc_length_format($item->length, $item->units),
-        uc_length_format($item->width, $item->units),
-        uc_length_format($item->height, $item->units),
-      );
-      $elements[$delta] = array('#markup' => implode(' × ', $dimensions));
+      $dimensions = array();
+      foreach (array('length', 'width', 'height') as $dimension) {
+        if ($item->$dimension) {
+          $dimensions[] = uc_length_format($item->$dimension, $item->units);
+        }
+      }
+      if ($dimensions) {
+        $elements[$delta] = array('#markup' => implode(' × ', $dimensions));
+      }
     }
 
     return $elements;
diff --git a/uc_product/src/Plugin/Field/FieldFormatter/UcWeightFormatter.php b/uc_product/src/Plugin/Field/FieldFormatter/UcWeightFormatter.php
index 0b6ef25..fcd5c40 100644
--- a/uc_product/src/Plugin/Field/FieldFormatter/UcWeightFormatter.php
+++ b/uc_product/src/Plugin/Field/FieldFormatter/UcWeightFormatter.php
@@ -30,7 +30,9 @@ class UcWeightFormatter extends FormatterBase {
     $elements = array();
 
     foreach ($items as $delta => $item) {
-      $elements[$delta] = array('#markup' => uc_weight_format($item->value, $item->units));
+      if ($item->value) {
+        $elements[$delta] = array('#markup' => uc_weight_format($item->value, $item->units));
+      }
     }
 
     return $elements;
diff --git a/uc_product/src/Tests/ProductTest.php b/uc_product/src/Tests/ProductTest.php
index 2ebbfd6..6268f98 100644
--- a/uc_product/src/Tests/ProductTest.php
+++ b/uc_product/src/Tests/ProductTest.php
@@ -132,6 +132,36 @@ class ProductTest extends UbercartTestBase {
     $this->assertText(t('Product @title has been deleted.', array('@title' => $edit[$title_key])), 'Product deleted.');
   }
 
+  public function testZeroProductWeightAndDimensions() {
+    $edit = array(
+      'title[0][value]' => $this->randomMachineName(32),
+      'model[0][value]' => $this->randomMachineName(8),
+      'price[0][value]' => mt_rand(1, 150),
+      'shippable[value]' => mt_rand(0, 1),
+      'weight[0][value]' => 0,
+      'weight[0][units]' => array_rand(array(
+        'lb' => t('Pounds'),
+        'kg' => t('Kilograms'),
+        'oz' => t('Ounces'),
+        'g'  => t('Grams'),
+      )),
+      'dimensions[0][length]' => 0,
+      'dimensions[0][width]' => 0,
+      'dimensions[0][height]' => 0,
+      'dimensions[0][units]' => array_rand(array(
+        'in' => t('Inches'),
+        'ft' => t('Feet'),
+        'cm' => t('Centimeters'),
+        'mm' => t('Millimeters'),
+      )),
+    );
+    $this->drupalPostForm('node/add/product', $edit, 'Save');
+
+    $this->assertText(t('Product @title has been created.', array('@title' => $edit['title[0][value]'])), 'Product created.');
+    $this->assertNoText('Weight', 'Zero weight not shown.');
+    $this->assertNoText('Dimensions', 'Zero dimensions not shown.');
+  }
+
   public function testProductClassForm() {
     // Try making a new product class.
     $class = strtolower($this->randomMachineName(12));
@@ -194,4 +224,5 @@ class ProductTest extends UbercartTestBase {
     $this->addToCart($this->product, array('qty' => 1));
     $this->assertText('Your item(s) have been updated.');
   }
+
 }
