diff --git a/web/org.openbravo.retail.selfcheckout.lotterycode/js/hookUtils/showgetlotterypanel.js b/web/org.openbravo.retail.selfcheckout.lotterycode/js/hookUtils/showgetlotterypanel.js
index 20f990c..1d0e213 100644
--- a/web/org.openbravo.retail.selfcheckout.lotterycode/js/hookUtils/showgetlotterypanel.js
+++ b/web/org.openbravo.retail.selfcheckout.lotterycode/js/hookUtils/showgetlotterypanel.js
@@ -6,8 +6,7 @@
  * or in the legal folder of this module distribution.
  ************************************************************************************
  */
-/* global OB */
-{
+(function() {
   const showGetLotteryCodePanel = (args, finalHookCallback) => {
     OB.MobileApp.model.get('scoView').applicationEngine.executeEvent({
       name: 'GoGetLotteryCode',
@@ -21,4 +20,19 @@
   OB.OBSCOLC = OB.OBSCOLC || {};
   OB.OBSCOLC.Utils = OB.OBSCOLC.Utils || {};
   OB.OBSCOLC.Utils.showGetLotteryCodePanel = showGetLotteryCodePanel;
-}
+
+  // Reset Step Name to 'ScanProduct' on SCO Refresh, Since LotteryCode Step should be triggered from PrePaymentHook
+  let previousSteps = OB.UTIL.localStorage.getItem('SCOPreviousStepNames');
+  if (previousSteps) {
+    previousSteps = previousSteps.split(',');
+    if (
+      previousSteps.length - 1 ===
+      previousSteps.lastIndexOf('OBSCOLC_LotteryCode')
+    ) {
+      OB.UTIL.localStorage.setItem(
+        'SCOPreviousStepNames',
+        previousSteps.slice(0, -1).join(',')
+      );
+    }
+  }
+})();
diff --git a/web/org.openbravo.retail.selfcheckout.lotterycode/js/hooks/obscolc-prepaymenthook.js b/web/org.openbravo.retail.selfcheckout.lotterycode/js/hooks/obscolc-prepaymenthook.js
index a90f418..004d8b8 100644
--- a/web/org.openbravo.retail.selfcheckout.lotterycode/js/hooks/obscolc-prepaymenthook.js
+++ b/web/org.openbravo.retail.selfcheckout.lotterycode/js/hooks/obscolc-prepaymenthook.js
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2020 Openbravo S.L.U.
+ * Copyright (C) 2020-2021 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.
@@ -35,7 +35,7 @@ OB.UTIL.HookManager.registerHook(
     };
 
     if (
-      isBlindReturn() ||
+      !OB.LOTCODE.Utils.showLotteryCodePopup(args.context.receipt) ||
       !OB.MobileApp.model.hasPermission(
         'OBLOTC_requestLotteryCodeInformation',
         true
diff --git a/web/org.openbravo.retail.selfcheckout.lotterycode/js/panels/lotteryCodePanel.js b/web/org.openbravo.retail.selfcheckout.lotterycode/js/panels/lotteryCodePanel.js
index 2a0482a..3ada548 100644
--- a/web/org.openbravo.retail.selfcheckout.lotterycode/js/panels/lotteryCodePanel.js
+++ b/web/org.openbravo.retail.selfcheckout.lotterycode/js/panels/lotteryCodePanel.js
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C)2020 Openbravo S.L.U.
+ * Copyright (C) 2020-2021 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.
@@ -13,6 +13,9 @@ enyo.kind({
   name: 'OB.SCO.APP.PANELRIGHT.LotteryCodePanel',
   kind: 'OB.SCO.BasePanel',
   classes: 'scoMainArea',
+  handlers: {
+    onChangeValues: 'validateValue'
+  },
   components: [
     {
       name: 'informationArea',
@@ -43,13 +46,24 @@ enyo.kind({
       ]
     }
   ],
+  validateValue: function(inSender, inEvent) {
+    const lotteryCode = this.$.lotteryCodeInformationMiddle.$.keyboard.$.inputscontainer.$.loyaltyCard.$.input.getValue();
+    this.$.lotteryCodeInformationButtonContinue.disableButton(
+      lotteryCode.length !== 8
+    );
+    return true;
+  },
   executeOnShow: function() {
     this.$.lotteryCodeInformationMiddle.$.keyboard.$.inputscontainer.$.loyaltyCard.$.input.setValue(
       this.args.receipt.get('oblotcLotteryCode') || ''
     );
     this.$.lotteryCodeInformationMiddle.$.keyboard.$.inputscontainer.$.loyaltyCard.$.input.focus();
+    this.validateValue();
   },
   actionConfirmation: function(inSender, inEvent) {
+    if (inSender.disabled) {
+      return;
+    }
     const loyaltyCodeValue = this.$.lotteryCodeInformationMiddle.$.keyboard.$.inputscontainer.$.loyaltyCard.$.input.getValue();
     if (loyaltyCodeValue === '') {
       return;
@@ -100,7 +114,15 @@ enyo.kind({
   name: 'OB.SCO.lotteryCodeButtonContinue',
   kind: 'OB.SCO.ButtonComposedForwardType2',
   i18nLabel: 'OBSCOLC_LotteryCodeButtonContinue',
-  ontap: 'actionConfirmation'
+  ontap: 'actionConfirmation',
+  disableButton: function(value) {
+    this.setDisabled(value);
+    if (value) {
+      this.addClass('scoMainButton-disabled');
+    } else {
+      this.removeClass('scoMainButton-disabled');
+    }
+  }
 });
 
 enyo.kind({
