Irregularly Sunglass MJ102SK589

$179.00
(function(){ const TAG = 'spz-custom-lamb-add-btn'; class SpzCustomLambAddBtn extends SPZ.BaseElement { constructor(element) { super(element); this.templates_ = null; this.action_ = null; this.selected_variant = '{"id":"6d2a86f5-82ab-4a81-887e-9eb234247aa9","product_id":"f30ecd8f-ca4e-45aa-9472-51b7f5bb3e38","title":"","weight_unit":"kg","inventory_quantity":0,"sku":"MJ102SK589BKC1","barcode":"","position":1,"option1":"","option2":"","option3":"","note":"","image":null,"wholesale_price":[{"price":179,"min_quantity":1}],"weight":"0","compare_at_price":"179","price":"179","retail_price":"179","available":false,"url":"\/products\/irregularly-sunglsses-mj102sk589?variant=6d2a86f5-82ab-4a81-887e-9eb234247aa9","available_quantity":0,"options":[],"off_ratio":0,"flashsale_info":[],"sales":0}'; this.lens_process_id = ""; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.getLambLensSteps_(true); this.setupAction_(); } mountCallback() { document.addEventListener('dj.variantChange', (event) => { const variant = event.detail.selected; if (variant.product_id == 'f30ecd8f-ca4e-45aa-9472-51b7f5bb3e38') { this.selected_variant = JSON.stringify(variant); } }); } fetchLambLensSteps() { const lens_process_id = location.search.replace('?', '').split('&').find(v => v.includes('lens_process_id')); const template_id = location.search.replace('?', '').split('&').find(v => v.includes('template_id')); const stepsUrl = '/api/fireant/product/f30ecd8f-ca4e-45aa-9472-51b7f5bb3e38/steps' + ((lens_process_id ? `?${lens_process_id}` : '') || (template_id ? `?${template_id}` : '')); return fetch(stepsUrl).then((res)=>{ return res.json(); }).then((data)=>{ return data; }) } showProductBtn() { var addToCart = document.getElementById('add_to_cart_normal'); var productQuantityBtn = document.getElementById('product_info_quantity_normal'); addToCart && addToCart.classList.remove('hidden'); productQuantityBtn && productQuantityBtn.classList.remove('hidden'); } getLambLensSteps_(isInit) { try{ this.fetchLambLensSteps().then((data)=>{ if(data.errors) { if(isInit){ this.renderBtn(false); this.showProductBtn(); } }else{ if(isInit){ this.lens_process_id = data?.lens_process_id; let frameOnlyArr = data?.prescription_types?.options.filter((option)=>{ return option.prescription_type === 'Frame Only' }); let frameOnlyObj = frameOnlyArr.length > 0 ? frameOnlyArr[0] : {}; let available = false; if(available && (frameOnlyObj?.frame_only_display_at == 'product_detail' || frameOnlyObj?.frame_only_display_at == 'all')){ this.renderBtn({ ...frameOnlyObj, process_type: data.process_type }); }else{ this.renderBtn({ process_type: data.process_type }); } } } }); }catch(e){ this.renderBtn(false); this.showProductBtn(); } } renderBtn = (isRenderProcessBtn) => { return this.templates_ .findAndRenderTemplate(this.element, isRenderProcessBtn) .then((el) => { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); this.element.appendChild(el); }); } handleClickFrameOnlyBtn_ = async () => { try { const reqBody = { product_id: "f30ecd8f-ca4e-45aa-9472-51b7f5bb3e38", variant_id: JSON.parse(this.selected_variant)?.id, quantity: 1, properties: { lens_processing_id: this.lens_process_id, prescription_type: "Frame Only" } } const data = await this.xhr_.fetchJson('/api/fireant/v2/customize_cart', { method: "post", body: reqBody }); if(data.state === 'success') { this.atc_loading_ = false; this.element.removeAttribute('atc-loading'); this.triggerEvent_("dj.addToCart", data); window.location.href = "/cart"; } else { this.atc_loading_ = false; this.element.removeAttribute('atc-loading'); } } catch (e) { this.atc_loading_ = false; this.element.removeAttribute('atc-loading'); const toast = SPZCore.Dom.scopedQuerySelector(document, `#error-toast`); toast && SPZ.whenApiDefined(toast).then((api) => { e.then((result)=>{ api.showToast(result?.errors[0] || 'Unknown error'); }) }); } } trackAddToCart = () => { const params = { business_type: "product_plugin", function_name: "prescription_lens", plugin_name: "prescription_lens", module: "apps", tab_name: "process_btn", event_type: "click", event_developer: "jozy", event_info: JSON.stringify({ action_type: "frame_only_add_to_cart", product_id: '"f30ecd8f-ca4e-45aa-9472-51b7f5bb3e38"', process_id: this.lens_process_id, process_type: "glasses", element_type: "button", element_name: "frame_only_btn" }) } window.spzutm && window.spzutm.registerParams('add_to_cart', params ); } setupAction_ = () => { this.registerAction('handleClickBtn', (invocation) => { this.saveAllFormProperties_(); const glassesInfo = { product:{ title: "Irregularly Sunglass MJ102SK589", id: "f30ecd8f-ca4e-45aa-9472-51b7f5bb3e38", image: {"src":"\/\/img.staticdj.com\/a081d4b44c3d2d74e6153ca626f0ea2b.jpg","path":"a081d4b44c3d2d74e6153ca626f0ea2b.jpg","width":3500,"height":3500,"alt":"","aspect_ratio":1}, selected_variant: JSON.parse(this.selected_variant) }, atcType: 'add_lens' }; const tempElement = document.getElementById('process-request-script'); tempElement && SPZ.whenApiDefined(tempElement).then(async (api) => { await api.requestLensProcess(glassesInfo, invocation.args.process_type); }); setTimeout(() => { const proceeBtn = document.getElementById('lens_add_to_cart'); proceeBtn && proceeBtn.classList.remove('pointer-events-none'); }, 3000); }); this.registerAction('handleClickFrameOnlyBtn', (invocation) => { this.trackAddToCart(); this.atc_loading_ = true; this.element.setAttribute('atc-loading',""); this.handleClickFrameOnlyBtn_(); }); } saveAllFormProperties_(){ const formEntries = this.getFormData_(); const properties = this.getFormAllProperties_(formEntries); // 获取的form所有properties存全局 window.app_lamb_form_properties = properties; } getFormData_() { const form = this.element.closest("form"); const formData = new FormData(form); const formEntries = Object.fromEntries(formData.entries()); return formEntries; } getFormAllProperties_(obj){ const result = {}; Object.entries(obj).forEach(([key, value]) => { if (key.startsWith("properties")) { result[key.substring(11, key.length - 1)] = value; } }); return result; } triggerEvent_(name, params) { const event = SPZUtils.Event.create( this.win, name, params, {bubbles: true} ); this.element.dispatchEvent(event); } isLayoutSupported = (layout) => { return layout == SPZCore.Layout.CONTAINER; } } SPZ.defineElement(TAG, SpzCustomLambAddBtn) })()
Rx Verification

Your prescription is a set of specifications that allows you to buy prescription glasses that will correct your visual needs.

It will state the power of lens you need. If you have a particular condition such as astigmatism; or require a more complex multifocal lens, your prescription may include other details.

Disclaimer : You hereby certify that you hold a valid prescription for the eyewear you wish to order. This means that your prescription is within 12 months from the date of purchase and that the prescription has been dispensed by a professional and qualified optometrist or contact lens fitter (thereafter this should be construed as a practitioner).

We reserve the right to verify such details with your practitioner. The above stated also applies to those customers re-ordering lenses. Where you have been given a contra indication to wear lenses by a registered practitioner we reserve the rights to revoke any sale unless otherwise redirected by the same or another registered practitioner. 

Hereby you also state that you have no ailments that contra indicates the wear of lenses. When purchasing from us you confirm and verify that you have been prescribed the contact lenses you have ordered by a qualified practitioner, therefore we do not take responsibility if you order lenses that have not been prescribed for you and/or if the difference between the prescription and purchase date exceeds 12 months.

We strongly recommend that regular eye checks are made by a qualified practitioner to ensure the welfare and continuity of your eye health. You do not necessarily have to send us your prescription but by accepting the terms and conditions contained herein above you verify that you have a valid prescription that is within the Law of the United States and Canada. The contact lens wearer must be at least 16 years old.

If you have any questions please email us.

Stylish & lightweight acetate frames for comfortable daily wear
  • Hand crafted with lightweight acetate
  • Non-prescription lenses with full UVA and UVB protection
  • Unisex design that suits your personality and lifestyle

Lens width (A):59mm
Bridge Width (B):18mm
Temple Arm Length (C):0mm

Need a prescription?

Update your prescription by booking your eye exam and contact lens fitting with us today.
Book now
Acetate
Our lightweight acetate frames are perfect for daily wear. Crafted with precision and attention to detail, these frames offer a delicate yet refined texture. Utilizing a cold injection molding process, they are resistant to wear and corrosion, maintaining their beauty over time. With a new thinner design, they combine the aesthetic appeal of traditional materials with a more lightweight and sturdy construction.
Versatile Color Options
Choose from a spectrum of colors to refresh your life, add a stylish touch, and embrace the freedom of self-expression.

What’s included

Each pair of glasses comes with a complimentary case and cleaning cloth to keep your glasses safe and clean. Get Free shipping and 30-day returns; plus 1 year manufacture warranty on all our frames.