diff --git a/commerce_discount.install b/commerce_discount.install
index 7ae0ed9..2a10402 100644
--- a/commerce_discount.install
+++ b/commerce_discount.install
@@ -73,6 +73,13 @@ function commerce_discount_schema() {
         'length' => 255,
         'not null' => FALSE,
       ),
+      'sort_order' => array(
+        'description' => 'The discount sort order.',
+        'type' => 'int',
+        'not null' => TRUE,
+        'default' => 10,
+        'size' => 'tiny',
+      ),
     ),
     'primary key' => array('discount_id'),
     'unique keys' => array(
@@ -505,3 +512,19 @@ function commerce_discount_update_7104() {
   // Rebuild the schema.
   drupal_get_complete_schema(TRUE);
 }
+
+/**
+ * Add a sort order column to the Commerce Discount table.
+ */
+function commerce_discount_update_7105() {
+  $field_schema = array(
+    'description' => 'The discount sort order.',
+    'type' => 'int',
+    'not null' => TRUE,
+    'default' => 10,
+    'size' => 'tiny',
+  );
+  db_add_field('commerce_discount', 'sort_order', $field_schema);
+
+  return t('Sort order added to the Commerce Discount table.');
+}
diff --git a/commerce_discount.rules_defaults.inc b/commerce_discount.rules_defaults.inc
index 130dd8d..f4fb097 100644
--- a/commerce_discount.rules_defaults.inc
+++ b/commerce_discount.rules_defaults.inc
@@ -34,6 +34,7 @@ function commerce_discount_default_rules_configuration() {
 
       $rule->label = $discount->label;
       $rule->active = $discount->status;
+      $rule->weight = !empty($discount->sort_order) ? $discount->sort_order - 11 : -1;
       $rule->tags = array('Commerce Discount', check_plain($type['label']));
 
       $rule
diff --git a/includes/commerce_discount.admin.inc b/includes/commerce_discount.admin.inc
index bee21c3..72f67f6 100644
--- a/includes/commerce_discount.admin.inc
+++ b/includes/commerce_discount.admin.inc
@@ -189,6 +189,15 @@ function commerce_discount_form($form, &$form_state, CommerceDiscount $commerce_
     '#default_value' => $commerce_discount->status,
   );
 
+  // Add the sort order select list.
+  $form['sort_order'] = array(
+    '#type' => 'select',
+    '#title' => t('Sort order'),
+    '#description' => t('Discounts will be sorted by this value to be evaluated in that order.'),
+    '#options' => drupal_map_assoc(range(1, 21)),
+    '#default_value' => !empty($commerce_discount->sort_order) ? $commerce_discount->sort_order : 10,
+  );
+
   // Show a list of commerce discounts.
   $form['commerce_discount_type'] = array(
     '#title' => t('Choose discount type'),
