The credit balance does not include shipping costs and you will only receive one code on your first purchase of each type of Trial Superbox, Routines, CNMU or Singles.
Yes, you can buy as many Trials as you need, but you will only receive the code with the corresponding credit amount on your first purchase of each type of Trial Superbox, Routines, CNMU or Singles. We will send you the code by e-mail the day you submit the purchase, and you will have 30 days to exchange it.
It is not possible to use more than one code per purchase. We recommend that the amount of your order is equal to or greater than your credit balance. Yes, you can combine the discount code with the offers on the website, but the code cannot be used with other discount codes or for Club membership.
Your cart is empty Continue shopping Have an account? Your cart. ENDS IN 00 Days. We are sustainable. Cruelty Free. Advice from experts. Superbox Try them all! Add to cart. Trial - Curly Method Routine By Cocunat Achieve a lioness-like mane with the curly products that have already won the hearts of over , customers around the world.
onMessageSubmit event } gkt. renderGiftCardModalNav ; }, displayGreetingCardForm:function { gkt. hideGiftCardMessageBody ; gkt.
hideGiftCardDetailsBody ; gkt. find function item { if item. showGreetingCardBody ; gkt. attachEventsToGreetingCardForm ; }, displayGiftCardDetailsForm : function { gkt. hideGreetingCardBody ; gkt. showGiftCardDetailsBody gkt. attachEventsToDetailsForm ; }, displayMessageForm: function { gkt.
showGiftCardMessageBody ; gkt. gktGiftCardInputFieldsDiv input". each function { if gkt. is ":visible" { if gkt. indexOf " " ; if atSymbol new Date new Date. buyNowButtonTextLoading ; return true; } else if!
emailValidationError ; return; }else if! dateValid { gkt. dateValidationError ; return; } else { return; } }, }, action: { giftCardAddToCartButton: async function e { e. preventDefault ; e. stopPropagation ; gkt. openGiftCardModal console. hide ; }, onModalBack:function e { gkt.
showGreetingCardBody gkt. hideGiftCardDetailsBody }, removeCheckmarkDivsFromSiblings: function element { element. find ". remove element.
find "img". attr "src" } console. attr "src", imageSrc gkt. prop "checked", true gkt. addCheckMarkDivs gkt. removeCheckmarkDivsFromSiblings gkt. log "onGreetingCardCategoryClick" ; gkt.
removeClass "activeGreetingCardCategory" gkt. changeGreetingCardImageList gkt. is ":checked" ; if! show ; gkt. giftcardMessageNavItem ,visited:false,active:false} } } else{ gkt. hide ; gkt. find function element { if element. splice gkt. modalNavList gkt. renderGiftCardModalNav ; }, onMessageSubmit: async function e { e.
is ":checked"! addToCartV2 { "items": [ { "id": selectedVariantId, "quantity": quantity? redirectUrlForSendGiftcardBtn console. log "onMessageSubmit-clicked" }, onGreetingCardSubmit: async function e { e.
greetingCardSelectedCategory; gkt. displayGiftCardDetailsForm ; }, onDetailsSubmit: async function e { e. preventDefault ; console.
is ":checked" ; if formValid { if isSendToSelfChecked { gkt. onMessageSubmit e ; return; } gkt. displayMessageForm ; } else return; }, hideGreetingCardBody: function { gkt. hide ; }, showGreetingCardBody: function { gkt. show ; }, showGiftCardDetailsBody: function { gkt.
show ; }, hideGiftCardDetailsBody: function { gkt. hide ; }, hideGiftCardMessageBody: function { gkt. hide ; }, showGiftCardMessageBody: function { gkt. id { gkt. prepareUI gkt. insertIntoCartPageWrapper settings, accountWidgetCartPageHTML } gkt.
gktAccountWidgetModal" modalWrapper. addClass "gktAccountWidgetModalClose". append closeButtonSvg modalCloseBtn. addClass "gktAccountWidgetBodyTabRewards". addClass "gktAccountWidgetBodyTabGiftCards". giftCardsTabText gkt. applySubTextColorCSS gktAccountWidgetBodyTabs ; gktAccountWidgetBodyTabs.
append gktAccountWidgetBodyTabRewards gktAccountWidgetBodyTabs. showRewardSection ; gktAccountWidgetBodyTabGiftCards. showGiftCardSection ; gktAccountWidgetBody. prepareGiftCardSection gktAccountWidgetBody. append gktAccountWidgetRewardSection gktAccountWidgetBody. append gktAccountWidgetBuyWithRewardsButton modalContent.
append gktAccountWidgetRewardDetailsHTML modalContent. append gktAccountWidgetBody modalWrapper. append modalCloseBtn modalWrapper. append modalContent modalWrapper. preparePoweredByBannerUI return modalWrapper; }, fetchLoggedInUserAndUpdateUI: async function { gkt.
reRenderModalUI ; await gkt. getLoggedInCustomer ; gkt. addClass "gktAccountWidgetActivator" ; gkt. applyButtonCSS widgetActivator ; widgetActivator.
css "cursor", "pointer" ; widgetActivator. addClass "gktAccountWidgetModalWrapper" widgetModalWrapper. prepareWidgetModal accountWidgetHTML. append widgetActivator console. log "prepare ui called" gkt. append widgetModalWrapper return accountWidgetHTML; }, prepareRewardGiftCardDetails: function { let gktAccountWidgetRewardDetails; if gkt.
addClass "gktAccountWidgetRewardBalance". renderLanguageValue generalSettingsLanguageData. rewardBalanceLabel "Reward Balance 1" gkt. applySubTextColorCSS gktAccountWidgetRewardBalanceValue gktAccountWidgetRewardBalanceValue.
text rewardBalanceValue gktAccountWidgetRewardBalance. addClass "gktRewardCode". addClass "gktAccountWidgetRewardCodeValue" ; gkt. decryptCode; } gkt. applyMainTextColorCSS gktRewardCode gktAccountWidgetRewardCodeValue.
text rewardCodeValue gktRewardCode. addClass "gktAccountWidgetRewardCodeCopyBtn". append gktAccountWidgetRewardCodeCopyBtn gktAccountWidgetRewardDetails. append gktAccountWidgetRewardBalance gktAccountWidgetRewardDetails.
append gktRewardCode return gktAccountWidgetRewardDetails; }, prepareRewardSection: function { let gktAccountWidgetRewardSection; if gkt. gktAccountWidgetRewardSection" ; gkt. addClass "gktAccountWidgetRewardSectionBodyList" if gkt. addClass "gktAccountWidgetHeaderForCode". renderLanguageValue rewardSectionLanguageData.
addClass "gktAccountWidgetHeaderForExpirationDate". expirationDateLabel "Exp. addClass "gktAccountWidgetHeaderForRemarks". remarksLabel "Remarks 1" gktAccountWidgetRewardSectionBodyListHeader. append gktAccountWidgetHeaderForCode gktAccountWidgetRewardSectionBodyListHeader.
append gktAccountWidgetHeaderForExpirationDate gktAccountWidgetRewardSectionBodyListHeader. append gktAccountWidgetHeaderForRemarks gktAccountWidgetRewardSectionBodyListHTML.
append gktAccountWidgetRewardSectionBodyListHeader if rewardTransactions. substring 0,10 : rewardTransaction. addClass "gktAccountWidgetRewardSectionBodyListItemBalance". html balanceFormatted if rewardTransaction. append balanceFieldDiv gktAccountWidgetRewardSectionBodyListItem. addClass "gktAccountWidgetRewardSectionBodyListItemExpirationDate".
html expiryDateFormatted "-" gktAccountWidgetRewardSectionBodyListItem. addClass "gktAccountWidgetRewardSectionBodyListItemRemarks".
html rewardTransaction. text gktAccountWidgetRewardSectionBodyListHTML. append gktAccountWidgetRewardSectionBodyListItem gkt. applyMainTextColorCSS gktAccountWidgetRewardSectionBodyListItem ; } gkt. prepareEmptyStateForRewardSection ; gktAccountWidgetRewardSectionBodyListHTML.
html noRewardFound } gktAccountWidgetRewardSectionBody. append gktAccountWidgetRewardSectionBodyListHTML }else{ gktAccountWidgetRewardSectionBody. displayLoadingSpinner } gktAccountWidgetRewardSection.
append gktAccountWidgetRewardSectionBody return gktAccountWidgetRewardSection }, prepareGiftCardSection: function { let gktAccountWidgetGiftCardSection; if gkt.
gktAccountWidgetGiftCardSection" ; gkt. addClass "gktAccountWidgetGiftCardSectionBodyList" if gkt. giftcards; if customerGiftCards. addClass "gktAccountWidgetGiftCardSectionListHeaderForCode".
renderLanguageValue giftcardSectionLanguageData. addClass "gktAccountWidgetGiftCardSectionListHeaderForBalance". addClass "gktAccountWidgetGiftCardSectionListHeaderForExpirationDate". addClass "gktAccountWidgetGiftCardSectionListHeaderForAction". actionHeaderLabel "Action1" gktAccountWidgetGiftCardSectionListHeader.
append gktAccountWidgetGiftCardSectionListHeaderForCode gktAccountWidgetGiftCardSectionListHeader. append gktAccountWidgetGiftCardSectionListHeaderForBalance gktAccountWidgetGiftCardSectionListHeader. append gktAccountWidgetGiftCardSectionListHeaderForExpirationDate gktAccountWidgetGiftCardSectionListHeader.
append gktAccountWidgetGiftCardSectionListHeaderForAction gktAccountWidgetGiftCardSectionBodyListHTML. append gktAccountWidgetGiftCardSectionListHeader customerGiftCards. addClass "gktAccountWidgetGiftCardSectionBodyListItemForCode".
addClass "gktAccountWidgetGiftCardSectionBodyListItemForBalance". addClass "gktAccountWidgetGiftCardSectionBodyListItemForExpirationDate". html customerGiftCard. addClass "gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount" ; if customerGiftCard.
addClass "gktAccountWidgetGiftCardSectionBodyListItemForAddToAccountButton". append addToAccountButton gkt. applyButtonCSS addToAccountButton ; gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount.
attr "data-giftcard-id", customerGiftCard. gktGiftcardId ; gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount. addGiftCardToRewardCode } gktAccountWidgetGiftCardSectionBodyListItem.
append gktAccountWidgetGiftCardSectionBodyListItemForCode gktAccountWidgetGiftCardSectionBodyListItem. append gktAccountWidgetGiftCardSectionBodyListItemForBalance gktAccountWidgetGiftCardSectionBodyListItem. append gktAccountWidgetGiftCardSectionBodyListItemForExpirationDate gktAccountWidgetGiftCardSectionBodyListItem.
append gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount gktAccountWidgetGiftCardSectionBodyListHTML. append gktAccountWidgetGiftCardSectionBodyListItem } gkt. applySubTextColorCSS gktAccountWidgetGiftCardSectionListHeader ; gktAccountWidgetGiftCardSection.
prepareEmptyStateForGiftCardSection ; gktAccountWidgetGiftCardSectionBodyListHTML. html noGiftcardFoundHTML } gktAccountWidgetGiftCardSection.
append gktAccountWidgetGiftCardSectionBodyListHTML }else{ gktAccountWidgetGiftCardSection. addClass "gktAccountWidgetNoGiftCardDataFoundMainText". addClass "gktAccountWidgetNoGiftCardDataFoundSubText". html noDataFoundSubText gkt. applyMainTextColorCSS noGiftcardFoundMainTextHTML ; gkt.
applySubTextColorCSS noGiftcardFoundSubTextHTML ; noGiftcardFoundHTML. append noGiftcardFoundMainTextHTML. append " ". addClass "gktAccountWidgetNoRewardDataFoundMainText". addClass "gktAccountWidgetNoRewardDataFoundSubText".
applyMainTextColorCSS noRewardFoundMainTextHTML ; gkt. applySubTextColorCSS noRewardFoundSubTextHTML ; noRewardsFound. append noRewardFoundMainTextHTML. append noRewardFoundSubTextHTML ; return noRewardsFound; }, insertIntoCartPageWrapper: function settings, accountWidgetCartPageHTML { gkt.
prepareRewardSection gkt. prepareRewardGiftCardDetails ; gkt. prepareBuyWithRewardsButton ; }, applyMainTextColorCSS: function element { if gkt.
mainTextColor; element. css "color", mainTextColor } }, applySubTextColorCSS: function element { if gkt. subTextColor; element.
css "color", subTextColor } }, applyButtonCSS: function element { if gkt. buttonColor; element. css "background-color", buttonColor } if gkt. buttonTextColor; element. css "color", buttonTextColor } }, reRenderModalUI: function { gkt. prepareWidgetModal ; if gkt. activeTabFn { gkt.
generalSettings; let gktAccountWidgetBuyWithRewardsButton; if gkt. gktAccountWidgetBuyWithRewardsButton" ; gktAccountWidgetBuyWithRewardsButton. addClass "gktAccountWidgetBuyWithRewardsButton" } gktAccountWidgetBuyWithRewardsButton. buyWithRewardsButtonText "Buy with Rewards" if gkt.
decryptCode { gktAccountWidgetBuyWithRewardsButton. buyWithRewardsClicked ; gktAccountWidgetBuyWithRewardsButton.
removeClass "gktDisabled" ; }else{ gktAccountWidgetBuyWithRewardsButton. addClass "gktDisabled" ; } gkt. applyButtonCSS gktAccountWidgetBuyWithRewardsButton ; return gktAccountWidgetBuyWithRewardsButton; }, }, action: { openAccountWidgetModal: function { gkt.
css "display", "grid" ; gkt. css "display", "none" gkt. val rewardCode gkt. append rewardCodeInput rewardCodeInput. select document. execCommand "copy" rewardCodeInput. html "Copied" }, showRewardSection: function { console. log "showRewardsTab" ; gkt.
removeClass "gktAccountWidgetBodyTabActive" gkt. addClass "gktAccountWidgetBodyTabActive" gkt. showRewardSection; }, showGiftCardSection: function { console.
log "showGiftCardsTab" gkt. attr "data-giftcard-id" gkt. addingCodeToRewardsText "adding addGiftCardToRewardCodeAPI giftCardId if addToReward { gkt. addedCodeToRewardText "Added1" ; gkt. css "opacity", "0. css "border-radius", "2px" gkt.
errorMessage "Error occured! removeClass "gktDisabled" gkt. removeClass "gktDisabled" }, buyWithRewardsClicked: async function { try{ gkt. addClass "gktDisabled" gkt. buyWithRewardsButtonLoadingText "Loading Checkout decryptCode }catch e { console.
log "error", e gkt. removeClass "gktDisabled" } }, }, }, gktMessage:{ init: function settings, parent { gkt. checkifGiftMessageEnabled settings. prepareUI settings, productHandle, parent gkt.
insertIntoProductPageWrapper settings, giftMessageProductPageHTML gkt. overWriteBuyNowBtn gkt. isGiftMessageEnabled { return {isEnabledOnProductPage, isEnabledOnCartPage} } if giftMessage. addClass 'gktGiftMessageTextArea'. openGiftCardModal console.
hide ; }, onModalBack:function e { gkt. showGreetingCardBody gkt. hideGiftCardDetailsBody }, removeCheckmarkDivsFromSiblings: function element { element.
find ". remove element. find "img". attr "src" } console. attr "src", imageSrc gkt. prop "checked", true gkt. addCheckMarkDivs gkt. removeCheckmarkDivsFromSiblings gkt. log "onGreetingCardCategoryClick" ; gkt.
removeClass "activeGreetingCardCategory" gkt. changeGreetingCardImageList gkt. is ":checked" ; if! show ; gkt. giftcardMessageNavItem ,visited:false,active:false} } } else{ gkt. hide ; gkt. find function element { if element. splice gkt. modalNavList gkt. renderGiftCardModalNav ; }, onMessageSubmit: async function e { e.
is ":checked"! addToCartV2 { "items": [ { "id": selectedVariantId, "quantity": quantity? redirectUrlForSendGiftcardBtn console. log "onMessageSubmit-clicked" }, onGreetingCardSubmit: async function e { e. greetingCardSelectedCategory; gkt. displayGiftCardDetailsForm ; }, onDetailsSubmit: async function e { e.
preventDefault ; console. is ":checked" ; if formValid { if isSendToSelfChecked { gkt. onMessageSubmit e ; return; } gkt. displayMessageForm ; } else return; }, hideGreetingCardBody: function { gkt. hide ; }, showGreetingCardBody: function { gkt. show ; }, showGiftCardDetailsBody: function { gkt.
show ; }, hideGiftCardDetailsBody: function { gkt. hide ; }, hideGiftCardMessageBody: function { gkt. hide ; }, showGiftCardMessageBody: function { gkt. id { gkt. prepareUI gkt.
insertIntoCartPageWrapper settings, accountWidgetCartPageHTML } gkt. gktAccountWidgetModal" modalWrapper.
addClass "gktAccountWidgetModalClose". append closeButtonSvg modalCloseBtn. addClass "gktAccountWidgetBodyTabRewards". addClass "gktAccountWidgetBodyTabGiftCards". giftCardsTabText gkt. applySubTextColorCSS gktAccountWidgetBodyTabs ; gktAccountWidgetBodyTabs. append gktAccountWidgetBodyTabRewards gktAccountWidgetBodyTabs.
showRewardSection ; gktAccountWidgetBodyTabGiftCards. showGiftCardSection ; gktAccountWidgetBody. prepareGiftCardSection gktAccountWidgetBody.
append gktAccountWidgetRewardSection gktAccountWidgetBody. append gktAccountWidgetBuyWithRewardsButton modalContent. append gktAccountWidgetRewardDetailsHTML modalContent. append gktAccountWidgetBody modalWrapper.
append modalCloseBtn modalWrapper. append modalContent modalWrapper. preparePoweredByBannerUI return modalWrapper; }, fetchLoggedInUserAndUpdateUI: async function { gkt. reRenderModalUI ; await gkt.
getLoggedInCustomer ; gkt. addClass "gktAccountWidgetActivator" ; gkt. applyButtonCSS widgetActivator ; widgetActivator. css "cursor", "pointer" ; widgetActivator.
addClass "gktAccountWidgetModalWrapper" widgetModalWrapper. prepareWidgetModal accountWidgetHTML. append widgetActivator console. log "prepare ui called" gkt.
append widgetModalWrapper return accountWidgetHTML; }, prepareRewardGiftCardDetails: function { let gktAccountWidgetRewardDetails; if gkt. addClass "gktAccountWidgetRewardBalance". renderLanguageValue generalSettingsLanguageData. rewardBalanceLabel "Reward Balance 1" gkt. applySubTextColorCSS gktAccountWidgetRewardBalanceValue gktAccountWidgetRewardBalanceValue.
text rewardBalanceValue gktAccountWidgetRewardBalance. addClass "gktRewardCode". addClass "gktAccountWidgetRewardCodeValue" ; gkt.
decryptCode; } gkt. applyMainTextColorCSS gktRewardCode gktAccountWidgetRewardCodeValue. text rewardCodeValue gktRewardCode. addClass "gktAccountWidgetRewardCodeCopyBtn". append gktAccountWidgetRewardCodeCopyBtn gktAccountWidgetRewardDetails.
append gktAccountWidgetRewardBalance gktAccountWidgetRewardDetails. append gktRewardCode return gktAccountWidgetRewardDetails; }, prepareRewardSection: function { let gktAccountWidgetRewardSection; if gkt. gktAccountWidgetRewardSection" ; gkt. addClass "gktAccountWidgetRewardSectionBodyList" if gkt.
addClass "gktAccountWidgetHeaderForCode". renderLanguageValue rewardSectionLanguageData. addClass "gktAccountWidgetHeaderForExpirationDate". expirationDateLabel "Exp. addClass "gktAccountWidgetHeaderForRemarks".
remarksLabel "Remarks 1" gktAccountWidgetRewardSectionBodyListHeader. append gktAccountWidgetHeaderForCode gktAccountWidgetRewardSectionBodyListHeader. append gktAccountWidgetHeaderForExpirationDate gktAccountWidgetRewardSectionBodyListHeader.
append gktAccountWidgetHeaderForRemarks gktAccountWidgetRewardSectionBodyListHTML. append gktAccountWidgetRewardSectionBodyListHeader if rewardTransactions. substring 0,10 : rewardTransaction.
addClass "gktAccountWidgetRewardSectionBodyListItemBalance". html balanceFormatted if rewardTransaction.
append balanceFieldDiv gktAccountWidgetRewardSectionBodyListItem. addClass "gktAccountWidgetRewardSectionBodyListItemExpirationDate". html expiryDateFormatted "-" gktAccountWidgetRewardSectionBodyListItem.
addClass "gktAccountWidgetRewardSectionBodyListItemRemarks". html rewardTransaction. text gktAccountWidgetRewardSectionBodyListHTML. append gktAccountWidgetRewardSectionBodyListItem gkt. applyMainTextColorCSS gktAccountWidgetRewardSectionBodyListItem ; } gkt. prepareEmptyStateForRewardSection ; gktAccountWidgetRewardSectionBodyListHTML.
html noRewardFound } gktAccountWidgetRewardSectionBody. append gktAccountWidgetRewardSectionBodyListHTML }else{ gktAccountWidgetRewardSectionBody. displayLoadingSpinner } gktAccountWidgetRewardSection. append gktAccountWidgetRewardSectionBody return gktAccountWidgetRewardSection }, prepareGiftCardSection: function { let gktAccountWidgetGiftCardSection; if gkt.
gktAccountWidgetGiftCardSection" ; gkt. addClass "gktAccountWidgetGiftCardSectionBodyList" if gkt. giftcards; if customerGiftCards. addClass "gktAccountWidgetGiftCardSectionListHeaderForCode".
renderLanguageValue giftcardSectionLanguageData. addClass "gktAccountWidgetGiftCardSectionListHeaderForBalance". addClass "gktAccountWidgetGiftCardSectionListHeaderForExpirationDate".
addClass "gktAccountWidgetGiftCardSectionListHeaderForAction". actionHeaderLabel "Action1" gktAccountWidgetGiftCardSectionListHeader.
append gktAccountWidgetGiftCardSectionListHeaderForCode gktAccountWidgetGiftCardSectionListHeader. append gktAccountWidgetGiftCardSectionListHeaderForBalance gktAccountWidgetGiftCardSectionListHeader.
append gktAccountWidgetGiftCardSectionListHeaderForExpirationDate gktAccountWidgetGiftCardSectionListHeader. append gktAccountWidgetGiftCardSectionListHeaderForAction gktAccountWidgetGiftCardSectionBodyListHTML.
append gktAccountWidgetGiftCardSectionListHeader customerGiftCards. addClass "gktAccountWidgetGiftCardSectionBodyListItemForCode". addClass "gktAccountWidgetGiftCardSectionBodyListItemForBalance". addClass "gktAccountWidgetGiftCardSectionBodyListItemForExpirationDate". html customerGiftCard.
addClass "gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount" ; if customerGiftCard. addClass "gktAccountWidgetGiftCardSectionBodyListItemForAddToAccountButton". append addToAccountButton gkt. applyButtonCSS addToAccountButton ; gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount.
attr "data-giftcard-id", customerGiftCard. gktGiftcardId ; gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount. addGiftCardToRewardCode } gktAccountWidgetGiftCardSectionBodyListItem.
append gktAccountWidgetGiftCardSectionBodyListItemForCode gktAccountWidgetGiftCardSectionBodyListItem. append gktAccountWidgetGiftCardSectionBodyListItemForBalance gktAccountWidgetGiftCardSectionBodyListItem.
append gktAccountWidgetGiftCardSectionBodyListItemForExpirationDate gktAccountWidgetGiftCardSectionBodyListItem. append gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount gktAccountWidgetGiftCardSectionBodyListHTML. append gktAccountWidgetGiftCardSectionBodyListItem } gkt.
applySubTextColorCSS gktAccountWidgetGiftCardSectionListHeader ; gktAccountWidgetGiftCardSection. prepareEmptyStateForGiftCardSection ; gktAccountWidgetGiftCardSectionBodyListHTML. html noGiftcardFoundHTML } gktAccountWidgetGiftCardSection.
append gktAccountWidgetGiftCardSectionBodyListHTML }else{ gktAccountWidgetGiftCardSection. addClass "gktAccountWidgetNoGiftCardDataFoundMainText".
addClass "gktAccountWidgetNoGiftCardDataFoundSubText". html noDataFoundSubText gkt. applyMainTextColorCSS noGiftcardFoundMainTextHTML ; gkt. applySubTextColorCSS noGiftcardFoundSubTextHTML ; noGiftcardFoundHTML.
append noGiftcardFoundMainTextHTML. append " ". addClass "gktAccountWidgetNoRewardDataFoundMainText". addClass "gktAccountWidgetNoRewardDataFoundSubText". applyMainTextColorCSS noRewardFoundMainTextHTML ; gkt. applySubTextColorCSS noRewardFoundSubTextHTML ; noRewardsFound.
append noRewardFoundMainTextHTML. append noRewardFoundSubTextHTML ; return noRewardsFound; }, insertIntoCartPageWrapper: function settings, accountWidgetCartPageHTML { gkt. prepareRewardSection gkt. prepareRewardGiftCardDetails ; gkt. prepareBuyWithRewardsButton ; }, applyMainTextColorCSS: function element { if gkt.
mainTextColor; element. css "color", mainTextColor } }, applySubTextColorCSS: function element { if gkt. subTextColor; element. css "color", subTextColor } }, applyButtonCSS: function element { if gkt. buttonColor; element. css "background-color", buttonColor } if gkt.
buttonTextColor; element. css "color", buttonTextColor } }, reRenderModalUI: function { gkt. prepareWidgetModal ; if gkt. activeTabFn { gkt. generalSettings; let gktAccountWidgetBuyWithRewardsButton; if gkt. gktAccountWidgetBuyWithRewardsButton" ; gktAccountWidgetBuyWithRewardsButton.
addClass "gktAccountWidgetBuyWithRewardsButton" } gktAccountWidgetBuyWithRewardsButton. buyWithRewardsButtonText "Buy with Rewards" if gkt. decryptCode { gktAccountWidgetBuyWithRewardsButton. buyWithRewardsClicked ; gktAccountWidgetBuyWithRewardsButton.
removeClass "gktDisabled" ; }else{ gktAccountWidgetBuyWithRewardsButton. addClass "gktDisabled" ; } gkt. applyButtonCSS gktAccountWidgetBuyWithRewardsButton ; return gktAccountWidgetBuyWithRewardsButton; }, }, action: { openAccountWidgetModal: function { gkt.
css "display", "grid" ; gkt. css "display", "none" gkt. val rewardCode gkt. append rewardCodeInput rewardCodeInput. select document. execCommand "copy" rewardCodeInput. html "Copied" }, showRewardSection: function { console.
log "showRewardsTab" ; gkt. removeClass "gktAccountWidgetBodyTabActive" gkt. addClass "gktAccountWidgetBodyTabActive" gkt. showRewardSection; }, showGiftCardSection: function { console. log "showGiftCardsTab" gkt. attr "data-giftcard-id" gkt.
addingCodeToRewardsText "adding addGiftCardToRewardCodeAPI giftCardId if addToReward { gkt. addedCodeToRewardText "Added1" ; gkt. css "opacity", "0. css "border-radius", "2px" gkt. errorMessage "Error occured! removeClass "gktDisabled" gkt.
removeClass "gktDisabled" }, buyWithRewardsClicked: async function { try{ gkt. addClass "gktDisabled" gkt. buyWithRewardsButtonLoadingText "Loading Checkout decryptCode }catch e { console. log "error", e gkt.
removeClass "gktDisabled" } }, }, }, gktMessage:{ init: function settings, parent { gkt. checkifGiftMessageEnabled settings. prepareUI settings, productHandle, parent gkt.
insertIntoProductPageWrapper settings, giftMessageProductPageHTML gkt. overWriteBuyNowBtn gkt. isGiftMessageEnabled { return {isEnabledOnProductPage, isEnabledOnCartPage} } if giftMessage. addClass 'gktGiftMessageTextArea'.
attr "placeholder", settings. addClass 'gktGiftMessageInputCheckboxEle'. attr "type", "checkbox" if gkt. getNoteFromCart { inputCheckboxEle.
getNoteFromCart gktGiftMessageTextArea. css "display", "block" } gktGiftMessageItemContainerCheckboxLable. append inputCheckboxEle gktGiftMessageItemContainerCheckboxLable. addClass 'gktGiftMessageItemContainerLabelText'.
html settings. giftMessageHeadingLabel gktGiftMessageItemContainerCheckboxLable. append gktGiftMessageItemContainerLableText gktGiftMessageItemContainer.
append gktGiftMessageItemContainerCheckboxLable gktGiftMessageContainer. append gktGiftMessageItemContainer gktGiftMessageContainer. append gktGiftMessageTextArea gkt. find '. css "display", "block" } gkt. on "keyup ", ". onGiftMessageTextAreakeyup event,settings, parent } return gktGiftMessageContainer }, insertIntoProductPageWrapper: function settings, giftMessageHTML { gkt.
css "display", "block" gkt. append giftMessageHTML ; }, insertIntoCartPageWrapper: function settings, giftMessageHTML { gkt.
timer { clearTimeout gkt. timer ; gkt. updateCart updateCartData. getProductPageHandle settings console. log "videoMesageInitialize" ; if gkt. isVideoMessagingEnabled { gkt. registerEvents gkt. gktVideoMsgButton", gkt. addClass "gktRecorder" console.
addClass "gktRecorderCloseBtn".
This vegan, award-winning fragrance free shampoo and conditioner features good-for-your-hair (and skin) ingredients The Best Places To Find Cheap Or Free Hair Product Samples · FREE Brilliance Beautiful Hair Care Samples · FREE Hair Clips, Scrunchies FRAGFRE is proud to offer FREE SHIPPING ON SAMPLES to give you a chance to try out some FRAGFRE products. There are no minimums