diff -r 741395712e24 src/org/openbravo/retail/posterminal/OBPOSComponentProvider.java
--- a/src/org/openbravo/retail/posterminal/OBPOSComponentProvider.java	Tue Oct 24 12:22:57 2017 +0200
+++ b/src/org/openbravo/retail/posterminal/OBPOSComponentProvider.java	Tue Oct 24 12:25:56 2017 +0200
@@ -122,6 +122,7 @@
         "components/modalmorepaymentmethods",
         // Web POS window
         "utils/eventbus",
+        "utils/attributeUtils",
         "utils/cashUpReportUtils",
         "utils/cashManagementUtils",
         "components/keypadcoins",
diff -r 741395712e24 src/org/openbravo/retail/posterminal/OrderLoader.java
--- a/src/org/openbravo/retail/posterminal/OrderLoader.java	Tue Oct 24 12:22:57 2017 +0200
+++ b/src/org/openbravo/retail/posterminal/OrderLoader.java	Tue Oct 24 12:25:56 2017 +0200
@@ -1238,6 +1238,11 @@
     line.setMovementQuantity(qty);
     line.setStorageBin(bin);
     if (OBMOBCUtils.isJsonObjectPropertyStringPresentNotNullAndNotEmptyString(jsonOrderLine,
+        "attSetInstanceDesc")) {
+      line.setAttributeSetValue(AttributesUtils.fetchAttributeSetValue(
+          jsonOrderLine.get("attSetInstanceDesc").toString(), jsonOrderLine
+              .getJSONObject("product").get("id").toString()));
+    } else if (OBMOBCUtils.isJsonObjectPropertyStringPresentNotNullAndNotEmptyString(jsonOrderLine,
         "attributeValue")) {
       line.setAttributeSetValue(AttributesUtils.fetchAttributeSetValue(
           jsonOrderLine.get("attributeValue").toString(), jsonOrderLine.getJSONObject("product")
diff -r 741395712e24 web/org.openbravo.retail.posterminal/js/model/order.js
--- a/web/org.openbravo.retail.posterminal/js/model/order.js	Tue Oct 24 12:22:57 2017 +0200
+++ b/web/org.openbravo.retail.posterminal/js/model/order.js	Tue Oct 24 12:25:56 2017 +0200
@@ -4737,6 +4737,14 @@
                           OB.UTIL.showError("OBDAL error: " + error);
                         });
                       });
+                      if (OB.MobileApp.model.hasPermission('OBPOS_EnableSupportForProductAttributes', true)) {
+                        if (iter.attributeValue && _.isString(iter.attributeValue)) {
+                          var processedAttValues = OB.UTIL.AttributeUtils.generateDescriptionBasedOnJson(iter.attributeValue);
+                          if (processedAttValues && processedAttValues.keyValue && _.isArray(processedAttValues.keyValue) && processedAttValues.keyValue.length > 0) {
+                            iter.attSetInstanceDesc = processedAttValues.description;
+                          }
+                        }
+                      }
                       newline = new OrderLine({
                         id: iter.lineId,
                         product: prod,
@@ -4753,7 +4761,8 @@
                           id: iter.warehouse,
                           warehousename: iter.warehousename
                         },
-                        relatedLines: iter.relatedLines
+                        relatedLines: iter.relatedLines,
+                        attSetInstanceDesc: (iter.attSetInstanceDesc ? iter.attSetInstanceDesc : null)
                       });
 
                       // copy verbatim not owned properties -> modular properties.
diff -r 741395712e24 web/org.openbravo.retail.posterminal/js/utils/attributeUtils.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/org.openbravo.retail.posterminal/js/utils/attributeUtils.js	Tue Oct 24 12:25:56 2017 +0200
@@ -0,0 +1,42 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2012-2017 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.
+ ************************************************************************************
+ */
+
+/*global OB, _, Backbone, Promise */
+
+(function () {
+
+  OB.UTIL = window.OB.UTIL || {};
+  OB.UTIL.AttributeUtils = OB.UTIL.AttributeUtils || {};
+
+  OB.UTIL.AttributeUtils.generateDescriptionBasedOnJson = function (jsonStringAttValues) {
+    var jsonAttValues = JSON.parse(jsonStringAttValues);
+    var objToReturn = {
+      keyValue: [],
+      description: ''
+    };
+    var attSetInstanceDescription = '';
+    _.each(
+    _.keys(jsonAttValues), function (key) {
+      var currentValue = jsonAttValues[key];
+      var attValueContent = '';
+      if (jsonAttValues && currentValue && currentValue.value && _.isString(currentValue.value) && currentValue.value.length > 0) {
+        attValueContent += currentValue.label ? currentValue.label : currentValue.name;
+        attValueContent += ': ';
+        attValueContent += currentValue.value;
+        objToReturn.keyValue.push(attValueContent);
+        attSetInstanceDescription += currentValue.value + "_";
+      }
+    }, this);
+    if (attSetInstanceDescription && attSetInstanceDescription.length > 1) {
+      attSetInstanceDescription = attSetInstanceDescription.substring(0, attSetInstanceDescription.length - 1);
+    }
+    objToReturn.description = attSetInstanceDescription;
+    return objToReturn;
+  }
+}());
\ No newline at end of file
