diff --git a/commerce_pos.module b/commerce_pos.module
index d149c51..2276432 100644
--- a/commerce_pos.module
+++ b/commerce_pos.module
@@ -380,4 +380,27 @@ function commerce_pos_commerce_pos_panes() {
     'weight' => 10,
   );
   return $panes;
-}
\ No newline at end of file
+}
+
+/**
+ * Implements hook_commerce_order_load().
+ *
+ * Allow order refresh on in progress POS orders if enabled.
+ */
+function commerce_pos_commerce_order_load($orders) {
+  // Do not react if this is not enabled.
+  if (!variable_get('commerce_pos_pricing_rules', FALSE)) {
+    return;
+  }
+
+  $refreshed = &drupal_static(__FUNCTION__, array());
+  foreach ($orders as $order) {
+    if (!isset($refreshed[$order->order_id])
+        && CommercePOS::instance()->getState()->getOrder()->order_id == $order->order_id
+        && $order->status == 'pos_in_progress' ) {
+      $refreshed[$order->order_id] = TRUE;
+      commerce_cart_order_refresh($order);
+    }
+  }
+
+}
diff --git a/commerce_pos.pages.inc b/commerce_pos.pages.inc
index 938053f..b8cca06 100644
--- a/commerce_pos.pages.inc
+++ b/commerce_pos.pages.inc
@@ -122,7 +122,13 @@ function commerce_pos_configuration_form($form, $form_state) {
       '#description' => t('Set the format of barcodes printed on receipts.'),
     );
   }
-
+  $form['commerce_pos_pricing_rules'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Enable pricing rules on in progress orders'),
+    '#description' => t('Allows for discounts and taxes to work for in progress orders.'),
+    '#default_value' => variable_get('commerce_pos_pricing_rules', FALSE)
+  );
+  
   $form['#submit'] = array('commerce_pos_configuration_form_submit');
 
   return system_settings_form($form);
@@ -142,4 +148,4 @@ function commerce_pos_configuration_form_submit($form, $form_state) {
       cache_clear_all("plugins:commerce_pos:$plugin_type", $info['cache table']);
     }
   }
-}
\ No newline at end of file
+}
