Non Prescription Colored Contact Lenses | Fresh Lens® (2025)

  • &nbsp

One or more of the items in your cart is a recurring or deferred purchase. By continuing, I agree to the cancellation policy and authorize you to charge my payment method at the prices, frequency and dates listed on this page until my order is fulfilled or I cancel, if permitted.

Skip to content

Save 10% On All Subscription Orders

Cart

Item added to your cart

View cart

Non Prescription Colored Contact Lenses | Fresh Lens® (3)
Cart

Item added to your cart

View cart

Monthly Wear Contacts
Weekly Wear Contacts
Daily Wear Contacts
Color Contacts
Contact Lens Solution

With Fresh Lens non-prescription colored contacts, it's easy to add a pop of color and transform your eyes in seconds! Go subtle with a natural enhancement or make a statement with striking shades – the choice is yours! These lenses are designed for comfort and a pop of color that will leave everyone guessing. Transform your vibe, match your mood, and have fun doing it. No prescription, just color.

  • Non Prescription Colored Contact Lenses | Fresh Lens® (17)

    Air Optix Colors 6 Pk

    Sale

    Air Optix Colors 6 Pk

    6 Lenses per Box.Unlike other color contact lenses with ...

    5.0 / 5.0

    (19) 19 total reviews

    Regular price $123.99 USD

    $111.59 USD

    Regular price $143.99 USD Sale price $123.99 USD $111.59 USD

    Unit price / per

    Sale

  • Non Prescription Colored Contact Lenses | Fresh Lens® (21)

    Air Optix Colors - 2 Pack

    Sale

    Air Optix Colors - 2 Pack

    2 Lenses per Box.Unlike other color contact lenses with ...

    4.86 / 5.0

    (29) 29 total reviews

    Regular price $48.99 USD

    Regular price $64.99 USD Sale price $48.99 USD $48.99 USD

    Unit price / per

    Sale

  • Non Prescription Colored Contact Lenses | Fresh Lens® (25)

    Dailies Colors 30pk

    Sale

    Dailies Colors 30pk

    DAILES® Colors contact lenses deliver color enhancement a...

    5.0 / 5.0

    (29) 29 total reviews

    Regular price $39.99 USD

    Regular price $59.00 USD Sale price $39.99 USD $39.99 USD

    Unit price / per

    Sale

  • Non Prescription Colored Contact Lenses | Fresh Lens® (29)

    Dailies Colors 90pk

    Sale

    Dailies Colors 90pk

    DAILES® Colors contact lenses deliver color enhancement a...

    5.0 / 5.0

    (28) 28 total reviews

    Regular price $83.99 USD

    Regular price $105.99 USD Sale price $83.99 USD $83.99 USD

    Unit price / per

    Sale

Frequently Asked Questions

Where can I buy colored contact lenses without a prescription?

You can buy non-prescription colored contact lenses right here at Fresh Lens! Explore a collection of vibrant and natural shades, all designed for comfort and style. With no prescription needed, it’s easy to find the perfect color to match your look.

How long do non-prescription colored contacts last?

Non-prescription colored contacts typically last anywhere from 1 day to 3 months, depending on the type you choose. Be sure to check the product details for specific wear time, and always follow the care instructions to keep your lenses fresh and comfortable!

Can you wear non prescription colored contacts over prescription contacts?

No, you shouldn’t wear non prescription colored contacts over prescription contacts. It can be uncomfortable and unsafe for your eyes. If you need vision correction, opt for prescription colored contacts instead for both style and clarity!

Non Prescription Colored Contact Lenses | Fresh Lens® (33)

Your happiness, backed by our Fresh Lens

We’re here to help.

Real people with real answers in real time, 24/7.

Non Prescription Colored Contact Lenses | Fresh Lens® (35) +1 888-699-1963

Subscribe to our Newsletter

Fresh lens

  • About
  • Blog
  • Free Online Vision Exam
  • Rx Requirements
  • Reviews

Collections

  • Daily
  • Weekly
  • Monthly
  • Color
  • Solutions

Policies

  • Privacy Policy
  • Shipping
  • Refund and Return
  • Terms Of Service
  • Billing

    © 2025 Fresh Lens | CanadianContactLenses.com.

    • Non Prescription Colored Contact Lenses | Fresh Lens® (36)
    • Non Prescription Colored Contact Lenses | Fresh Lens® (37)
    • Non Prescription Colored Contact Lenses | Fresh Lens® (38)
    • Non Prescription Colored Contact Lenses | Fresh Lens® (39)
    • Non Prescription Colored Contact Lenses | Fresh Lens® (40)
    • Non Prescription Colored Contact Lenses | Fresh Lens® (41)
    • Non Prescription Colored Contact Lenses | Fresh Lens® (42)
    • Non Prescription Colored Contact Lenses | Fresh Lens® (43)

    {{^requires_selling_plan}}{{^showSubOptionBeforeOneTime}}

    {{oneTimePuchaseText}}

    {{{noSubscriptionLabelTextV2}}}

    {{#showOneTimeComparePrice}} {{{oneTimePuchaseComparePriceAmount}}}{{/showOneTimeComparePrice}}{{{oneTimePuchaseAmount}}}

    {{/showSubOptionBeforeOneTime}}{{/requires_selling_plan}} {{#sellingPlanVariants}}

    {{^prepaidFlag}}

    {{{name}}}

    {{{cancelAnytimeLabelTextV2}}}

    {{{formattedCompareAtPrice}}} {{{formattedPrice}}}

    {{#showPricePerDay}}

    {{{pricePerDay}}}

    {{/showPricePerDay}}

    {{{frequencyDescription}}}

    {{#showFormattedDiscountText}} {{{formattedDiscountText}}}{{/showFormattedDiscountText}}

    {{{frequencyDescription}}}

    {{/prepaidFlag}}{{#prepaidFlag}}

    {{{name}}}

    {{{cancelAnytimeLabelTextV2}}}

    {{{formattedCompareAtPrice}}} {{{totalPrice}}}

    {{{formattedPrepaidPerDeliveryPriceText}}} {{#showPricePerDay}}

    {{{pricePerDay}}}

    {{/showPricePerDay}}

    {{{frequencyDescription}}}

    {{#showFormattedDiscountText}} {{{formattedDiscountText}}}{{/showFormattedDiscountText}}

    {{{frequencyDescription}}}

    {{/prepaidFlag}}

    {{/sellingPlanVariants}}{{^requires_selling_plan}}{{#showSubOptionBeforeOneTime}}

    {{oneTimePuchaseText}}

    {{{noSubscriptionLabelTextV2}}}

    {{{oneTimePuchaseComparePriceAmount}}} {{{oneTimePuchaseAmount}}}

    {{/showSubOptionBeforeOneTime}}{{/requires_selling_plan}}

    {{#showStaticTooltip}}

    {{{toolTipDescription}}}

    {{/showStaticTooltip}}{{#showTooltip}}

    {{{tooltipTitle}}}

    {{{toolTipDescription}}}

    {{#showAppstleLink}}

    {{/showAppstleLink}}

    {{/showTooltip}}

    {% endraw %}`, "allWidgetTemplateHtml": "{\"WIDGET_TYPE_1\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_6\":\"{% raw %}

    \\n

    \\n

    {{{purchaseOptionsText}}}

    \\n

    \\n{{^requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n

    \\n \\n

    \\n {{oneTimePuchaseText}}\\n

    {{{noSubscriptionLabelTextV2}}}

    \\n

    \\n

    \\n

    \\n{{#showOneTimeComparePrice}}\\n\\n {{{oneTimePuchaseComparePriceAmount}}}\\n\\n{{/showOneTimeComparePrice}}\\n\\n{{{oneTimePuchaseAmount}}}

    \\n

    \\n \\n \\n

    \\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n {{#sellingPlanVariants}}\\n

    \\n \\n \\n{{^prepaidFlag}}\\n

    \\n {{{name}}}\\n

    {{{cancelAnytimeLabelTextV2}}}

    \\n

    \\n

    \\n

    \\n {{{formattedCompareAtPrice}}}\\n {{{formattedPrice}}}\\n\\n\\n

    \\n\\n{{#showPricePerDay}}

    {{{pricePerDay}}}

    {{/showPricePerDay}}\\n

    \\n{{{frequencyDescription}}} \\n

    \\n

    \\n \\n{{#showFormattedDiscountText}}\\n {{{formattedDiscountText}}}\\n{{/showFormattedDiscountText}}\\n

    {{{frequencyDescription}}}

    \\n{{/prepaidFlag}}\\n{{#prepaidFlag}}\\n

    \\n {{{name}}}\\n

    {{{cancelAnytimeLabelTextV2}}}

    \\n

    \\n

    \\n

    \\n {{{formattedCompareAtPrice}}}\\n {{{totalPrice}}}\\n\\n

    \\n{{{formattedPrepaidPerDeliveryPriceText}}}\\n {{#showPricePerDay}}

    {{{pricePerDay}}}

    {{/showPricePerDay}}\\n

    \\n

    \\n{{{frequencyDescription}}} \\n

    \\n

    \\n

    \\n\\n{{#showFormattedDiscountText}}\\n {{{formattedDiscountText}}}\\n{{/showFormattedDiscountText}}\\n

    {{{frequencyDescription}}}

    \\n\\n{{/prepaidFlag}}\\n \\n

    \\n {{/sellingPlanVariants}}\\n{{^requires_selling_plan}}\\n{{#showSubOptionBeforeOneTime}}\\n

    \\n \\n

    \\n {{oneTimePuchaseText}}\\n

    {{{noSubscriptionLabelTextV2}}}

    \\n

    \\n

    \\n{{{oneTimePuchaseComparePriceAmount}}}\\n {{{oneTimePuchaseAmount}}}\\n\\n

    \\n \\n \\n

    \\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n

    \\n{{#showStaticTooltip}}\\n

    {{{toolTipDescription}}}

    \\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n\\n

    \\n

    \\n {{{tooltipTitle}}}\\n

    \\n

    \\n

    \\n {{{toolTipDescription}}}\\n

    \\n {{#showAppstleLink}}\\n

    \\n \\n POWERED BY APPSTLE \\n

    \\n {{/showAppstleLink}}\\n

    \\n{{/showTooltip}}\\n

    \\n

    \\n

    \\n{% endraw %}\",\"WIDGET_TYPE_7\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_2\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_3\":\"{% raw %}

    \\n

    \\n

    {{{purchaseOptionsText}}}

    \\n

    \\n{{#showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n

    \\n \\n {{^prepaidFlag}}\\n

    \\n {{{formattedPrice}}}\\n{{#showSecondFormattedDiscountText}}{{^isFixedPrice}}({{{secondFormattedDiscountText}}}) {{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n

    \\n \\n \\n {{/prepaidFlag}}\\n {{#prepaidFlag}}\\n \\n {{/prepaidFlag}}\\n \\n

    \\n {{/sellingPlanVariants}}\\n{{/showSubOptionBeforeOneTime}}\\n {{^requires_selling_plan}}\\n

    \\n \\n \\n \\n

    \\n {{/requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n

    \\n \\n {{^prepaidFlag}}\\n

    \\n {{{formattedPrice}}}\\n{{#showSecondFormattedDiscountText}}{{^isFixedPrice}}({{{secondFormattedDiscountText}}}) {{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n

    \\n \\n \\n {{/prepaidFlag}}\\n {{#prepaidFlag}}\\n \\n {{/prepaidFlag}}\\n \\n

    \\n {{/sellingPlanVariants}}\\n{{/showSubOptionBeforeOneTime}}\\n

    \\n{{#showStaticTooltip}}\\n

    {{{toolTipDescription}}}

    \\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n

    \\n

    \\n {{{tooltipTitle}}}\\n

    \\n

    \\n

    \\n {{{toolTipDescription}}}\\n

    \\n {{#showAppstleLink}}\\n

    \\n \\n POWERED BY APPSTLE\\n \\n

    \\n{{/showAppstleLink}}\\n

    \\n{{/showTooltip}}\\n

    \\n

    {% endraw %}\",\"WIDGET_TYPE_4\":\"{% raw %}

    \\n

    \\n

    {{{purchaseOptionsText}}}

    \\n

    \\n{{^requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n

    \\n \\n \\n

    \\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n {{#sellingPlanVariants}}\\n

    \\n {{{formattedDiscountText}}}\\n \\n{{^prepaidFlag}}\\n

    \\n {{{formattedPrice}}}\\n/{{{sellingPlanFrequencyText}}}{{#isFrequencySubsequent}}{{/isFrequencySubsequent}}\\n

    \\n \\n{{/prepaidFlag}}\\n{{#prepaidFlag}}\\n\\n{{/prepaidFlag}}\\n

    \\n {{/sellingPlanVariants}}\\n{{^requires_selling_plan}}\\n{{#showSubOptionBeforeOneTime}}\\n

    \\n \\n \\n

    \\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n

    \\n{{#showStaticTooltip}}\\n

    {{{toolTipDescription}}}

    \\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n

    \\n

    \\n {{{tooltipTitle}}}\\n

    \\n

    \\n

    \\n {{{toolTipDescription}}}\\n

    \\n{{#showAppstleLink}}\\n

    \\n \\n POWERED BY APPSTLE\\n \\n

    \\n{{/showAppstleLink}}\\n

    \\n{{/showTooltip}}\\n

    \\n

    {% endraw %}\",\"WIDGET_TYPE_5\":\"{% raw %}

    \\n

    \\n

    {{{purchaseOptionsText}}}

    \\n

    \\n{{^showSubOptionBeforeOneTime}}\\n{{^requires_selling_plan}}\\n

    \\n \\n \\n \\n

    \\n{{/requires_selling_plan}}\\n{{/showSubOptionBeforeOneTime}}\\n {{#sellingPlanVariants}}\\n

    \\n \\n \\n \\n

    \\n {{/sellingPlanVariants}}\\n{{#showSubOptionBeforeOneTime}}\\n{{^requires_selling_plan}}\\n

    \\n \\n \\n \\n

    \\n{{/requires_selling_plan}}\\n{{/showSubOptionBeforeOneTime}}\\n

    \\n{{#showStaticTooltip}}\\n

    {{{toolTipDescription}}}

    \\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n

    \\n

    \\n {{{tooltipTitle}}}\\n

    \\n

    \\n

    \\n {{{toolTipDescription}}}\\n

    \\n {{#showAppstleLink}}\\n

    \\n \\n POWERED BY APPSTLE\\n \\n

    \\n {{/showAppstleLink}}\\n

    \\n{{/showTooltip}}\\n

    \\n

    {% endraw %}\"}", "bundle": {}, "labels": `{\"appstle.subscription.wg.noSubscriptionLabelTextV2\":\"No Subscription\",\"appstle.subscription.wg.cancelAnytimeLabelTextV2\":\"\",\"appstle.subscription.wg.addToShipmentErrorTextV2\":\"Error\",\"appstle.subscription.wg.weeksFrequencyTextV2\":\"Weeks\",\"appstle.subscription.wg.weeklyLabelTextV2\":\"Weekly\",\"appstle.subscription.wg.displayAddToExistingSubscriptionButtonForNotLoggedInV2\":\"false\",\"appstle.subscription.wg.addToShipmentProcessingV2\":\"Processing...\",\"appstle.subscription.wg.deliveryEveryFrequencyTextV2\":\"Delivery Every\",\"appstle.subscription.wg.subscribeAndSaveInitalV2\":\"Subscribe & save\",\"appstle.subscription.wg.allowRefreshOnCartPageV2\":\"false\",\"appstle.subscription.wg.prepaidLabelTextV2\":\"Prepaid\",\"appstle.subscription.wg.daysFrequencyTextV2\":\"Days\",\"appstle.subscription.wg.monthlyLabelTextV2\":\"Save 10% on every order\",\"appstle.subscription.wg.subscribeAndSaveSuccessV2\":\"Subscribe success\",\"appstle.subscription.wg.addToShipmentSuccessTextV2\":\"Success\",\"appstle.subscription.wg.monthFrequencyTextV2\":\"Month\",\"appstle.subscription.wg.addToShipmentButtonTextV2\":\"Add to Shipment\",\"appstle.subscription.wg.displayAddToExistingSubscriptionButtonToSubscribersOnlyV2\":\"false\",\"appstle.subscription.wg.yearsFrequencyTextV2\":\"Years\",\"appstle.subscription.wg.onetimeDescriptionTextV2\":\"\",\"appstle.subscription.wg.addToShipmentTooltipTextV2\":\"Please avoid double delivery charges! Login to add this product to an upcoming delivery.\",\"appstle.subscription.wg.weekFrequencyTextV2\":\"Week\",\"appstle.subscription.wg.oneTimePurchaseTextV2\":\"One Time Purchase\",\"appstle.subscription.wg.loyaltyPerkDescriptionTextV2\":\"{{#isDiscountTypeFreeProduct}}

    Non Prescription Colored Contact Lenses | Fresh Lens® (44)<\/img><\/div>

    After {{{billingCycleBlock}}} orders, get a FREE {{freeProductName}} <\/span><\/div>

    {{\/isDiscountTypeFreeProduct}}{{#isDiscountTypePercentage}}After {{{billingCycleBlock}}}<\/span> order<\/span>, get {{{discount}}}% OFF your entire order<\/span><\/span>.{{\/isDiscountTypePercentage}}{{#isDiscountTypeShipping}}After {{{billingCycleBlock}}}<\/span> order<\/span>, get shipping at {{{formatDiscountedPrice}}}<\/span><\/span>.{{\/isDiscountTypeShipping}}{{#isDiscountTypeFixed}}After {{{billingCycleBlock}}}<\/span> order<\/span>, get {{{formatDiscountedPrice}}} OFF your entire order<\/span><\/span>.{{\/isDiscountTypeFixed}}\",\"appstle.subscription.wg.unsubscribeFrequencyTextV2\":\"unsubscribe\",\"appstle.subscription.wg.oneTimeFrequencyTextV2\":\"\",\"appstle.subscription.wg.dayFrequencyTextV2\":\"day\",\"appstle.subscription.wg.allowFulfilmentCountViaPropertiesV2\":\"false\",\"appstle.subscription.wg.monthsFrequencyTextV2\":\"Months\",\"appstle.subscription.wg.manageSubscriptionButtonTextV2\":\"Manage Subscription\",\"appstle.subscription.wg.offFrequencyTextV2\":\"Off\",\"appstle.subscription.wg.yearFrequencyTextV2\":\"Year\",\"appstle.subscription.wg.prepayLabelTextV2\":\"Prepay\",\"appstle.subscription.wg.sellingPlanTitleTextNonPrepaid\":\"{{sellingPlanName}}\",\"appstle.subscription.wg.selectDeliverOptionV2\":\"select deliver option\",\"appstle.subscription.wg.yearlyLabelTextV2\":\"Yearly\"}`, "css": { "appstle_subscription_widget": { "margin-top": "" , "margin-bottom": "", }, "appstle_subscription_wrapper": { "border-width": "", "border-color": "", }, "appstle_circle": { "border-color": "", }, "appstle_dot": { "background-color": "", }, "appstle_select": { "padding-top": "", "padding-bottom": "", "padding-left": "", "padding-right": "", "border-width": "", "border-style": "", "border-color": "", "border-radius": "", }, "tooltip_subscription_svg": { "fill": "", }, "appstle_tooltip": { "color": "", "background-color": "", }, "appstle_tooltip_border_top_color": { "border-top-color": "", }, "appstle_subscription_final_price": { "color": "", }, "appstle_widget_text_color": { "color": "", }, "appstle_selected_background": { "background": "transparent", }, "elementCSS": "[\".appstle_tooltip_content {background-color: #ffffff !important;} #appstle_subscription_widget0 [data-appstle-icon]:after {border-top-color: #ffffff !important;}\"]", "customCSS": ".widgetSellingPlanWrapper input:checked+label span {\ncolor: #A1D461!important;\n}", "customerPortalCss": "", "externalStyleTag": "", "themeCss": "", } }; window.AppstleSubscription = window.AppstleSubscription || JSON.parse(JSON.stringify(RS)); sessionStorage['appstleSubscriptionConfig'] = JSON.stringify(RS.Config); var _RSConfig = _RSConfig || {}; _RSConfig.shop = 'fresh-lens.myshopify.com'; _RSConfig.shopMoneyFormat = '<span class='money conversion-bear-money'>${{amount}} </span>'; _RSConfig.shopMoneyFormatWithCurrencyFormat = '<span class='money conversion-bear-money'>${{amount}} USD</span>'; }

    `; document.querySelector('body').insertAdjacentHTML('beforeend', snackBarHtml); window.addEventListener('message', toasterEventListener, false); function toasterEventListener(event) { if (event?.data && typeof event?.data.indexOf === 'function' && event?.data?.indexOf('appstle_message_for_notification') !== -1) { var message = event?.data?.split('|')[1]; showAppstleLoyaltyToaster(message); } } let snackBarIndex = 0; function showAppstleLoyaltyToaster(msg) { var snackBar = document.getElementById('snackbar'); snackBar.classList.add('show'); snackBar.insertAdjacentHTML('beforeend', `

    ${msg}

    `); const el = snackBarIndex; setTimeout(function() { if (document.getElementById(`elem${el}`)) document.getElementById(`elem${el}`).remove(); }, 5000); snackBarIndex++; } const closeSnackBar = (el) => document.getElementById(el).remove(); document.addEventListener('DOMContentLoaded', () => { }); const parseHtmlStringContent = (content) => { if (typeof content !== 'string') return content; try { const htmlDecoded = content?.replace(/\\\//g, '/'); return JSON.parse(`"${htmlDecoded}"`); } catch (error) { console.error('Error parsing content:', error); return content; } }; const loyaltyWidgetStyles = ``; document.querySelector('body').insertAdjacentHTML('beforeend', loyaltyWidgetStyles); const mainHTMLString = ` `; document.querySelector('body').insertAdjacentHTML('beforeend', mainHTMLString); window.addEventListener('message', widgetEventListener, false); function widgetEventListener(event) { if (event?.data && typeof event?.data.indexOf === 'function' && event?.data?.indexOf('appstle_message_for_showWidget') !== -1) { } else if (event?.data && typeof event?.data.indexOf === 'function' && event?.data?.indexOf('appstle_widget_showHide') !== -1) { document.querySelector('#appstle-loyalty-button')?.classList?.remove('appstle-loyalty-hidden'); toggleWidget(); } else if (event?.data && typeof event?.data.indexOf === 'function' && event?.data?.indexOf('refresh_appstle_loyalty_widget') !== -1 && _ALConfig?.widget_setting?.widgetType === 'LAUNCHER') { loadAppstleLoyaltyWidget() console.log("REFRESH WIDGET"); } } function removeAppstleLoyaltyWidget() { document.querySelector('#appstle-loyalty-button')?.classList?.add('appstle-loyalty-hidden'); document.querySelector('#appstle_loyalty_iframe')?.classList?.add('appstle-loyalty-hidden'); } (function checkForWidgetRestrictions() { let isShowWidget = true; if(_ALConfig?.customerLoyalty?.customerStatus === 'EXCLUDED') { isShowWidget = false; } if (!_ALConfig?.customerId) { isShowWidget = !(_ALConfig?.widget_setting?.restrictedCustomersTag || _ALConfig?.widget_setting?.allowedCustomersTag) } if (_ALConfig?.widget_setting?.allowedCustomersTag?.length && isShowWidget) { let allowedTags = _ALConfig?.widget_setting?.allowedCustomersTag.split(','); if (allowedTags?.length > 0 && !_ALConfig?.customerTags?.some((tag) => allowedTags?.some((allowedTag) => allowedTag?.trim()?.toLowerCase() === tag?.trim()?.toLowerCase()))) { isShowWidget = false; } } if (_ALConfig?.widget_setting?.restrictedCustomersTag?.length && isShowWidget) { let restrictedTags = _ALConfig?.widget_setting?.restrictedCustomersTag?.split(','); if (restrictedTags?.length > 0 && _ALConfig?.customerTags?.some((tag) => restrictedTags?.some((restrictedTag) => restrictedTag?.trim()?.toLowerCase() === tag?.trim()?.toLowerCase()))) { isShowWidget = false; } } if (_ALConfig?.widget_setting?.blockWidgetOnPages?.length && isShowWidget) { let restrictedPages = _ALConfig?.widget_setting?.blockWidgetOnPages?.split(','); const currentPage = window?.location?.pathname; if (restrictedPages?.length > 0) { if (restrictedPages?.includes('/homepage') && currentPage === '/') { isShowWidget = false; } else if (restrictedPages?.some((page) => currentPage?.includes(page))) { isShowWidget = false; } } } if (_ALConfig?.widget_setting?.allowWidgetOnSpecificPages?.length && isShowWidget) { let allowedPages = _ALConfig?.widget_setting?.allowWidgetOnSpecificPages?.split(','); const currentPage = window?.location?.pathname; if (allowedPages?.length > 0) { if (allowedPages?.includes('/homepage') && currentPage === '/') { isShowWidget = true; } else if (allowedPages?.some((page) => currentPage?.includes(page))) { isShowWidget = true; } else { isShowWidget = false } } } if (!_ALConfig?.customerId && _ALConfig?.widget_setting?.showToLoggedInCustomerOnly) { isShowWidget = false; } if (isShowWidget) { showAppstleLoyaltyWidget(); } else { removeAppstleLoyaltyWidget(); } })() function enableWidget() { document.querySelector('#appstle_loyalty_iframe')?.classList?.add('open'); document.querySelector('#appstle_loyalty_iframe')?.classList?.remove('appstle-loyalty-hidden'); setTimeout(function() { document.querySelector('#appstle_loyalty_iframe')?.classList?.toggle('show-close-icon'); }, 900); } function showAppstleLoyaltyWidget() { document.querySelector('#appstle-loyalty-button')?.classList?.remove('appstle-loyalty-hidden'); document.querySelector('#appstle_loyalty_iframe')?.classList?.remove('appstle-loyalty-hidden'); } document.querySelector('.appstle-loyalty-button').addEventListener('click', toggleWidget); if (_ALConfig?.widget_setting?.widgetPosition === 'LEFT') { document.getElementById('appstle_loyalty_iframe')?.classList?.add('appstle-loyalty-left'); document.querySelector('.appstle-loyalty-button')?.classList?.add('appstle-loyalty-left'); document.getElementById('appstle_loyalty_iframe')?.classList?.add('appstle-loyalty-left'); document.getElementById('snackbar')?.classList?.add('left_snackbar'); } else { document.getElementById('appstle_loyalty_iframe')?.classList?.add('appstle-loyalty-right'); document.querySelector('.appstle-loyalty-button')?.classList?.add('appstle-loyalty-right'); document.getElementById('snackbar')?.classList?.add('right_snackbar'); } const loyaltyButtonTitle = document.getElementById('loyalty-widget-title'); if(_ALConfig?.widget_setting?.widgetTitle){ loyaltyButtonTitle.innerHTML = parseHtmlStringContent(_ALConfig?.widget_setting?.widgetTitle); } const alIframeSrc = '' + ' ' + '

    ' + '

    ' + '

    ' + '' + 'body' + '>' + ''; function toggleWidget() { loadAppstleLoyaltyWidget(); if (_ALConfig?.widget_setting?.widgetType?.toUpperCase() === 'LAUNCHER' && _ALConfig?.widget_setting?.forceRedirectDedicatedPage === true) { window.open(`/${_ALConfig?.proxy_path_prefix}`); } else { document.querySelector('#appstle_loyalty_iframe')?.classList?.toggle('open'); showAppstleLoyaltyWidget(); setTimeout(function() { document.querySelector('#appstle_loyalty_iframe')?.classList?.toggle('show-close-icon'); }, 900); } } const loadAppstleLoyaltyWidget = () => { var iframe = document.querySelectorAll('#appstle_loyalty_iframe'); iframe.forEach(function(item) { item.contentWindow._ALConfig = _ALConfig; item.contentWindow.document.open('text/html', 'replace'); item.contentWindow.document.write(alIframeSrc); item.contentWindow.document.close(); }); }; if (_ALConfig?.customerLoyalty && _ALConfig?.customerLoyalty?.availablePoints) { document.querySelector('#appstle-loyalty-button')?.classList?.add('appstle_show_points'); document.querySelector('.loyalty_widget_available_points').innerHTML = _ALConfig?.customerLoyalty?.availablePoints?.toLocaleString(); } if (_ALConfig?.widget_setting?.showTierName && _ALConfig?.customerLoyalty && _ALConfig?.customerLoyalty?.currentVipTier) { document.querySelector('.loyalty_widget_available_points').innerHTML = _ALConfig?.customerLoyalty?.currentVipTier?.toLocaleString(); } function handleDeepLink() { const loyaltyDeepLinks = [ '#appstle-loyalty', '#appstle-refer', '#appstle-loyalty-earn-rewards', '#appstle-loyalty-redeem-rewards', '#appstle-loyalty-referrals', '#appstle-loyalty-vip-program' ]; if (!_ALConfig?.widget_setting?.showWidget || !loyaltyDeepLinks.some(hash => location?.hash?.includes(hash))) { return; } loadAppstleLoyaltyWidget(); enableWidget(); setTimeout(() => { document.querySelector('#appstle_loyalty_iframe')?.classList?.add('show-close-icon'); }, 900); } handleDeepLink(); const widgetReferralUrl = new URL(window.location.href); if (widgetReferralUrl?.searchParams.get('appstle_referral') && _ALConfig?.widget_setting?.widgetType === 'LAUNCHER') { let redirectURL = _ALConfig?.widget_setting?.referralRedirectUrl + window.location.search; if (redirectURL && !window.location.pathname.includes(_ALConfig.widget_setting.referralRedirectUrl)) { window.open(redirectURL, '_self'); } setTimeout(() => { loadAppstleLoyaltyWidget(); enableWidget(); }, 200); } (function observeURLChanges() { let lastUrl = location.href; const handleUrlChange = () => { if (location.href !== lastUrl) { handleDeepLink(); lastUrl = location.href; } }; new MutationObserver(handleUrlChange).observe(document.body, { subtree: true, childList: true }); window.addEventListener('popstate', handleUrlChange); window.addEventListener('hashchange', handleUrlChange); })(); const alDOMObserver = new MutationObserver(function(mutations_list) { mutations_list.forEach(function(mutation) { mutation.addedNodes.forEach(function(added_node) { if (added_node.id == 'appstle_loyalty_iframe') { var iframe = document.querySelectorAll('#appstle_loyalty_iframe'); iframe.forEach(function(item) { item.contentWindow._ALConfig = _ALConfig; item.contentWindow.document.open('text/html', 'replace'); item.contentWindow.document.write(alIframeSrc); item.contentWindow.document.close(); }); alDOMObserver.disconnect(); } }); }); }); alDOMObserver.observe(document.querySelector('body'), { subtree: true, childList: true });

    const dedicatedPageURL = new URL(window.location.href); if (dedicatedPageURL?.searchParams?.get('appstle_referral') && _ALConfig?.widget_setting?.widgetType === 'DEDICATED_PAGE' && !window.location.href.includes(_ALConfig?.proxy_path_prefix)) { window.open(`/${_ALConfig?.proxy_path_prefix}${window.location.search}`, '_self'); } const dedicatedPageEventListener = (event) => { if (event?.data && typeof event?.data.indexOf === 'function' && event?.data?.indexOf('refresh_appstle_loyalty_page') !== -1) { initiateAppstleLoyaltyPage() console.log("REFRESH PAGE"); } } window.addEventListener('message', dedicatedPageEventListener, false); function initiateAppstleLoyaltyPage() { if (document.querySelector('#appstleLoyaltyPage')) { const appstleLoyaltyPageElement = document.getElementById('appstleLoyaltyPage'); while (appstleLoyaltyPageElement.firstChild) { appstleLoyaltyPageElement.firstChild.remove(); } var s = document.createElement('script'); s.setAttribute('src', "https://loyalty-admin.appstle.com/app/loyalty-widget.bundle.js?v=1742394438536"); s.setAttribute('defer', 'defer'); document.body.appendChild(s); var head = document.head; var link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = "https://loyalty-admin.appstle.com/content/loyalty-widget.css?v=1742394438536"; head.appendChild(link); } else { setTimeout(() => { initiateAppstleLoyaltyPage(); }, 2000); } } const dedicatedPageReferralUrl = new URL(window.location.href)?.searchParams.get('appstle_referral'); const checkDedicatedPageForRestrictions = () => { const { widget_setting, customerTags, customerLoyalty, customerId } = _ALConfig || {}; const { allowedCustomersTag, restrictedCustomersTag } = widget_setting || {}; const { customerStatus } = customerLoyalty || {}; if (customerStatus === 'EXCLUDED') { return false; } if (!dedicatedPageReferralUrl && !customerId) { return !(allowedCustomersTag || restrictedCustomersTag); } if (allowedCustomersTag?.length) { const allowedTags = allowedCustomersTag.split(','); if (!allowedTags.some(tag => customerTags?.some((customerTag) => customerTag?.trim()?.toLowerCase() === tag?.trim()?.toLowerCase()))) { return false; } } if (restrictedCustomersTag?.length) { const restrictedTags = restrictedCustomersTag.split(','); if (restrictedTags.some(tag => customerTags?.some((customerTag) => customerTag?.trim()?.toLowerCase() === tag?.trim()?.toLowerCase()))) { return false; } } return true; }; if (_ALConfig?.widget_setting?.showWidget === true && checkDedicatedPageForRestrictions()) { initiateAppstleLoyaltyPage(); }

    (async function() { const isAvailableVisitShop = _ALConfig?.pointEarnRules?.length > 0 && _ALConfig?.pointEarnRules?.find((rule) => rule?.type === 'VISIT_SHOP' && rule?.status === 'ACTIVE'); if (_ALConfig?.customerId && isAvailableVisitShop) { if (!sessionStorage.getItem('syncVisitStore') && ((_ALConfig?.customerId && isAvailableVisitShop && isAvailableVisitShop?.id) || (_ALConfig?.referralEnabled && _ALConfig?.referralLoyalty?.referralType === 'VISIT_SHOP'))) { try { const response = await fetch(`/${_ALConfig?.proxy_path_prefix || 'apps/loyalty'}/cp/api/customer-visit-store`, { method: 'POST', headers: {'Content-Type': 'application/json'}, }); if (response?.ok) { sessionStorage.setItem('syncVisitStore', 'true'); } } catch (error) { console.error('Error:', error); } } } })();

    const loyaltyCustomStyles = `

    `; document.querySelector('body').insertAdjacentHTML('beforeend', loyaltyCustomStyles);

    Non Prescription Colored Contact Lenses | Fresh Lens® (2025)

    References

    Top Articles
    Latest Posts
    Recommended Articles
    Article information

    Author: Rev. Porsche Oberbrunner

    Last Updated:

    Views: 6261

    Rating: 4.2 / 5 (73 voted)

    Reviews: 80% of readers found this page helpful

    Author information

    Name: Rev. Porsche Oberbrunner

    Birthday: 1994-06-25

    Address: Suite 153 582 Lubowitz Walks, Port Alfredoborough, IN 72879-2838

    Phone: +128413562823324

    Job: IT Strategist

    Hobby: Video gaming, Basketball, Web surfing, Book restoration, Jogging, Shooting, Fishing

    Introduction: My name is Rev. Porsche Oberbrunner, I am a zany, graceful, talented, witty, determined, shiny, enchanting person who loves writing and wants to share my knowledge and understanding with you.