diff --git a/modules/customer/commerce_customer.module b/modules/customer/commerce_customer.module
index 122d8af..38f65cd 100644
--- a/modules/customer/commerce_customer.module
+++ b/modules/customer/commerce_customer.module
@@ -106,16 +106,37 @@ function commerce_customer_hook_info() {
  * Implements hook_enable().
  */
 function commerce_customer_enable() {
+  commerce_customer_configure_customer_types();
+}
+
+/**
+ * Configure types provided by this module.
+ */
+function commerce_customer_configure_customer_types() {
   // Add the address field to customer profile bundles.
   foreach (commerce_customer_profile_types() as $type => $profile_type) {
     commerce_customer_configure_customer_profile_type($profile_type);
   }
 }
 
+
 /**
  * Implements hook_modules_enabled().
  */
 function commerce_customer_modules_enabled($modules) {
+  commerce_customer_configure_customer_fields($modules);
+}
+
+/**
+ * Configure fields for the customer profile.
+ *
+ * @param $modules
+ *   Array of module names to be acted on.
+ */
+function commerce_customer_configure_customer_fields($modules = NULL) {
+  if (empty($modules)) {
+    $modules = module_implements('commerce_customer_profile_type_info');
+  }
   // Loop through all the enabled modules.
   foreach ($modules as $module) {
     // If the module implements hook_commerce_customer_profile_type_info()...
@@ -132,6 +153,18 @@ function commerce_customer_modules_enabled($modules) {
   }
 }
 
+
+/**
+ * Menu callback to rebuild customer fields.
+ */
+function commerce_customer_repair_customer_fields() {
+  commerce_customer_configure_customer_types();
+  commerce_customer_configure_customer_fields();
+  watchdog('commerce_customer', 'Rebuilt all customer fields');
+  drupal_set_message(t('All customer fields have been reconfigured'));
+  return array('#markup' => t('All customer fields have been reconfigured'));
+}
+
 /**
  * Implements hook_views_api().
  */
diff --git a/modules/customer/commerce_customer_ui.module b/modules/customer/commerce_customer_ui.module
index 61a43e3..fd2d3de 100644
--- a/modules/customer/commerce_customer_ui.module
+++ b/modules/customer/commerce_customer_ui.module
@@ -85,6 +85,15 @@ function commerce_customer_ui_menu() {
     );
   }
 
+  $items['admin/commerce/customer-profiles/repair'] = array(
+    'title' => 'Repair customer profile fields',
+    'description' => 'Rebuild/repair any missing customer profile fields.',
+    'page callback' => 'commerce_customer_repair_customer_fields',
+    'access arguments' => array('administer customer profile types'),
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 100,
+  );
+
   return $items;
 }
 
diff --git a/modules/line_item/commerce_line_item.module b/modules/line_item/commerce_line_item.module
index 2564a72..7f043c0 100644
--- a/modules/line_item/commerce_line_item.module
+++ b/modules/line_item/commerce_line_item.module
@@ -207,16 +207,36 @@ function commerce_line_item_views_api() {
  * Implements hook_enable().
  */
 function commerce_line_item_enable() {
+  commerce_line_item_configure_line_item_types();
+}
+
+/**
+ * Implements hook_modules_enabled().
+ */
+function commerce_line_item_modules_enabled($modules) {
+  commerce_line_item_configure_line_item_fields($modules);
+}
+
+/**
+ * Configure each of the line item types.
+ */
+function commerce_line_item_configure_line_item_types() {
   // Loop through and configure all the currently defined line item types.
   foreach (commerce_line_item_types() as $line_item_type) {
     commerce_line_item_configure_line_item_type($line_item_type);
   }
 }
-
 /**
- * Implements hook_modules_enabled().
+ * Configure line item fields that other modules may provide.
+ *
+ * @param $modules
+ *   Array of module names. If empty, will process all modules that implement
+ *   hook_commerce_line_type_info().
  */
-function commerce_line_item_modules_enabled($modules) {
+function commerce_line_item_configure_line_item_fields($modules = NULL) {
+  if (empty($modules)) {
+    $modules = module_implements('commerce_line_item_type_info');
+  }
   // Reset the line item cache to get the default options and callbacks.
   commerce_line_item_types_reset();
 
@@ -235,6 +255,17 @@ function commerce_line_item_modules_enabled($modules) {
 }
 
 /**
+ * Menu callback to rebuild line item fields.
+ */
+function commerce_line_item_repair_line_item_fields() {
+  commerce_line_item_configure_line_item_types();
+  commerce_line_item_configure_line_item_fields();
+  watchdog('commerce_line_item', 'Rebuilt all line item fields');
+  drupal_set_message(t('All line item fields have been reconfigured'));
+  return array('#markup' => t('All line item fields have been reconfigured'));
+}
+
+/**
  * Implements hook_permission().
  */
 function commerce_line_item_permission() {
diff --git a/modules/line_item/commerce_line_item_ui.module b/modules/line_item/commerce_line_item_ui.module
index c2403a2..42546c7 100644
--- a/modules/line_item/commerce_line_item_ui.module
+++ b/modules/line_item/commerce_line_item_ui.module
@@ -18,6 +18,21 @@ function commerce_line_item_ui_menu() {
     'access arguments' => array('administer line item types'),
     'file' => 'includes/commerce_line_item_ui.types.inc',
   );
+  $items['admin/commerce/config/line-items/list'] = array(
+    'title' => 'Line item types',
+    'description' => 'Manage line item types for your store.',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => 0,
+  );
+
+  $items['admin/commerce/config/line-items/repair'] = array(
+    'title' => 'Repair line item fields',
+    'description' => 'Rebuild/repair any missing line item fields.',
+    'page callback' => 'commerce_line_item_repair_line_item_fields',
+    'access arguments' => array('administer line item types'),
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 100,
+  );
 
   foreach (commerce_line_item_types() as $type => $line_item_type) {
     // Convert underscores to hyphens for the menu item argument.
diff --git a/modules/order/commerce_order.module b/modules/order/commerce_order.module
index de32c9a..0acea72 100644
--- a/modules/order/commerce_order.module
+++ b/modules/order/commerce_order.module
@@ -122,6 +122,13 @@ function commerce_order_enable() {
  * Implements hook_modules_enabled().
  */
 function commerce_order_modules_enabled($modules) {
+  commerce_order_configure_order_fields($modules);
+}
+
+function commerce_order_configure_order_fields($modules = NULL) {
+  if (empty($modules)) {
+    $modules = module_implements('commerce_customer_profile_type_info');
+  }
   // Loop through all the enabled modules.
   foreach ($modules as $module) {
     // If the module implements hook_commerce_customer_profile_type_info()...
@@ -136,6 +143,17 @@ function commerce_order_modules_enabled($modules) {
   }
 }
 
+
+/**
+ * Menu callback to rebuild order fields.
+ */
+function commerce_order_repair_order_fields() {
+  commerce_order_configure_order_type();
+  commerce_order_configure_order_fields();
+  watchdog('commerce_order', 'Rebuilt all order fields');
+  drupal_set_message(t('All order fields have been reconfigured'));
+  return array('#markup' => t('All order fields have been reconfigured'));
+}
 /**
  * Implements hook_modules_disabled().
  */
diff --git a/modules/order/commerce_order_ui.module b/modules/order/commerce_order_ui.module
index 6ded674..e53f011 100644
--- a/modules/order/commerce_order_ui.module
+++ b/modules/order/commerce_order_ui.module
@@ -69,6 +69,14 @@ function commerce_order_ui_menu() {
     'context' => MENU_CONTEXT_INLINE,
     'file' => 'includes/commerce_order_ui.orders.inc',
   );
+  $items['admin/commerce/orders/repair'] = array(
+    'title' => 'Repair order fields',
+    'description' => 'Rebuild/repair any missing order fields.',
+    'page callback' => 'commerce_order_repair_order_fields',
+    'access arguments' => array('administer orders'),
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 100,
+  );
 
   $items['admin/commerce/config/order'] = array(
     'title' => 'Order settings',
diff --git a/modules/product/commerce_product.module b/modules/product/commerce_product.module
index e28a713..e12e0a2 100644
--- a/modules/product/commerce_product.module
+++ b/modules/product/commerce_product.module
@@ -263,6 +263,13 @@ function commerce_product_permission() {
  * Implements hook_enable().
  */
 function commerce_product_enable() {
+  commerce_product_configure_product_types();
+}
+
+/**
+ * Configure the types provided by this module.
+ */
+function commerce_product_configure_product_types() {
   // Loop through and configure all the currently defined product types.
   foreach (commerce_product_types() as $type => $product_type) {
     commerce_product_configure_product_type($type);
@@ -273,6 +280,17 @@ function commerce_product_enable() {
  * Implements hook_modules_enabled().
  */
 function commerce_product_modules_enabled($modules) {
+  commerce_product_configure_product_fields($modules);
+}
+
+/**
+ * Configure the fields on this provided by other modules.
+ */
+function commerce_product_configure_product_fields($modules = NULL) {
+  if (empty($modules)) {
+    $modules = module_implements('commerce_product_type_info');
+  }
+
   // Loop through all the enabled modules.
   foreach ($modules as $module) {
     // If the module implements hook_commerce_product_type_info()...
@@ -288,6 +306,17 @@ function commerce_product_modules_enabled($modules) {
 }
 
 /**
+ * Menu callback to rebuild line item fields.
+ */
+function commerce_product_repair_product_fields() {
+  commerce_product_configure_product_types();
+  commerce_product_configure_product_fields();
+  watchdog('commerce_product', 'Rebuilt all product fields');
+  drupal_set_message(t('All product fields have been reconfigured'));
+  return array('#markup' => t('All product fields have been reconfigured'));
+}
+
+/**
  * Returns an array of product type arrays keyed by type.
  */
 function commerce_product_types() {
diff --git a/modules/product/commerce_product_ui.module b/modules/product/commerce_product_ui.module
index 4c1e445..16d964c 100644
--- a/modules/product/commerce_product_ui.module
+++ b/modules/product/commerce_product_ui.module
@@ -80,6 +80,15 @@ function commerce_product_ui_menu() {
     'type' => MENU_LOCAL_ACTION,
     'file' => 'includes/commerce_product_ui.types.inc',
   );
+  $items['admin/commerce/products/repair'] = array(
+    'title' => 'Repair product fields',
+    'description' => 'Rebuild/repair any missing product fields.',
+    'page callback' => 'commerce_product_repair_product_fields',
+    'access arguments' => array('administer product types'),
+    'type' => MENU_LOCAL_TASK,
+    'weight' => 99,
+  );
+
   foreach (commerce_product_types() as $type => $product_type) {
     // Convert underscores to hyphens for the menu item argument.
     $type_arg = strtr($type, '_', '-');
