diff --git a/web/org.openbravo.retail.productonthefly/js/menu.js b/web/org.openbravo.retail.productonthefly/js/menu.js
--- a/web/org.openbravo.retail.productonthefly/js/menu.js
+++ b/web/org.openbravo.retail.productonthefly/js/menu.js
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2017 Openbravo S.L.U.
+ * Copyright (C) 2017-2018 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.
@@ -27,6 +27,7 @@
           showPopup = this.model.get('order').get('orderType') === 2 || this.model.get('order').get('isQuotation');
         }
         if (showPopup) {
+          OB.logUserAction('Menu > Create OTF');
           this.bubble('onShowPopup', {
             popup: 'OBROTF_ModalProductDuplicate',
             args: {
@@ -61,6 +62,7 @@
           showPopup = OB.MobileApp.model.receipt.get('orderType') === 2 || OB.MobileApp.model.receipt.get('isQuotation');
         }
         if (showPopup) {
+          OB.logUserAction('Create OTF from "' + product.get('_identifier') + '"');
           this.bubble('onShowPopup', {
             popup: 'OBROTF_ModalProductDuplicate',
             args: {
diff --git a/web/org.openbravo.retail.productonthefly/js/modalproduct.js b/web/org.openbravo.retail.productonthefly/js/modalproduct.js
--- a/web/org.openbravo.retail.productonthefly/js/modalproduct.js
+++ b/web/org.openbravo.retail.productonthefly/js/modalproduct.js
@@ -380,6 +380,13 @@
         if (me.isNew) {
           OB.MobileApp.model.receipt.trigger('scan');
         }
+
+        OB.Dal.get(OB.Model.ProductCategory, me.model.get('productCategory'), function (category) {
+          OB.logUserAction('Create OTF -> Name: ' + me.model.get('_identifier') + ', Category: ' + category.get('name') + ', Price: ' + OB.I18N.formatCurrency(me.model.get('standardPrice')));
+        }, function () {
+          OB.logUserAction('Create OTF -> Name: ' + me.model.get('_identifier') + ', Price: ' + OB.I18N.formatCurrency(me.model.get('standardPrice')));
+        });
+
         me.doAddProduct({
           product: me.model
         });
