diff --git a/web/org.openbravo.retail.posterminal/js/components/renderorderline.js b/web/org.openbravo.retail.posterminal/js/components/renderorderline.js
--- a/web/org.openbravo.retail.posterminal/js/components/renderorderline.js
+++ b/web/org.openbravo.retail.posterminal/js/components/renderorderline.js
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2013 Openbravo S.L.U.
+ * Copyright (C) 2013-2015 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -82,20 +82,8 @@
           return;
         }
         this.createComponent({
-          style: 'display: block;',
-          components: [{
-            content: '-- ' + d.name,
-            attributes: {
-              style: 'float: left; width: 80%;'
-            }
-          }, {
-            content: OB.I18N.formatCurrency(-d.amt),
-            attributes: {
-              style: 'float: right; width: 20%; text-align: right;'
-            }
-          }, {
-            style: 'clear: both;'
-          }]
+          kind: 'OB.UI.RenderOrderLineDiscount',
+          discount: d
         });
       }, this);
 
@@ -249,4 +237,23 @@
   initComponents: function () {
     this.inherited(arguments);
   }
+});
+enyo.kind({
+  name: 'OB.UI.RenderOrderLineDiscount',
+  style: 'display: block;',
+  discount: null,
+  components: [{
+    name: 'discountName',
+    style: 'float: left; width: 80%;'
+  }, {
+    name: 'discountAmount',
+    style: 'float: right; width: 20%; text-align: right;'
+  }, {
+    style: 'clear: both;'
+  }],
+  initComponents: function () {
+    this.inherited(arguments);
+    this.$.discountName.setContent('-- ' + this.discount.identifier);
+    this.$.discountAmount.setContent(OB.I18N.formatCurrency(-this.discount.amt));
+  }
 });
\ No newline at end of file
diff --git a/web/org.openbravo.retail.posterminal/js/model/order.js b/web/org.openbravo.retail.posterminal/js/model/order.js
--- a/web/org.openbravo.retail.posterminal/js/model/order.js
+++ b/web/org.openbravo.retail.posterminal/js/model/order.js
@@ -1113,7 +1113,13 @@
       }
       var promotions = line.get('promotions') || [],
           disc = {},
-          i, replaced = false;
+          i, replaced = false,
+          discountRule = OB.Model.Discounts.discountRules[rule.attributes.discountType];
+      if (discountRule.getIdentifier) {
+        disc.identifier = discountRule.getIdentifier(rule, discount);
+      } else {
+        disc.identifier = discount.name || rule.get('printName') || rule.get('name');
+      }
       disc.name = discount.name || rule.get('printName') || rule.get('name');
       disc.ruleId = rule.id || rule.get('ruleId');
       disc.amt = discount.amt;
