BLAKSPECS TIME - TEARS IN MY EYES

$195.00
Color : C1 Dark Tortoise
Size : 51-19-140
(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":"3fcb925c-363a-4125-acf9-6a62784b0145","product_id":"58c45549-20b9-4a72-a2bc-a19ad7574787","title":"C1 Dark Tortoise-51-19-140","weight_unit":"lb","inventory_quantity":95,"sku":"","barcode":"","position":1,"option1":"C1 Dark Tortoise","option2":"51-19-140","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/cdf4b64e955529c8fd9ba86d106b4bac.png","path":"cdf4b64e955529c8fd9ba86d106b4bac.png","width":800,"height":800,"alt":"BLAKSPECS TIME - TEARS IN MY EYES BlakSpecs BlakSpecs","aspect_ratio":1},"wholesale_price":[{"price":195,"min_quantity":1}],"weight":"0.3","compare_at_price":"0","price":"195","retail_price":"0","available":true,"url":"\/products\/time-tears-in-my-eyes?variant=3fcb925c-363a-4125-acf9-6a62784b0145","available_quantity":999999999,"options":[{"name":"COLOR","value":"C1 Dark Tortoise"},{"name":"SIZE","value":"51-19-140"}],"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 == '58c45549-20b9-4a72-a2bc-a19ad7574787') { 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/58c45549-20b9-4a72-a2bc-a19ad7574787/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 = true; 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: "58c45549-20b9-4a72-a2bc-a19ad7574787", 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: '"58c45549-20b9-4a72-a2bc-a19ad7574787"', 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: "BLAKSPECS TIME - TEARS IN MY EYES", id: "58c45549-20b9-4a72-a2bc-a19ad7574787", image: {"src":"\/\/img.staticdj.com\/cdf4b64e955529c8fd9ba86d106b4bac.png","path":"cdf4b64e955529c8fd9ba86d106b4bac.png","width":800,"height":800,"alt":"BLAKSPECS TIME - TEARS IN MY EYES BlakSpecs BlakSpecs","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) })()
Prescription Verification

Your eyewear prescription consists of specific instructions that enable you to purchase eyeglasses or contact lenses tailored to address your visual requirements. This document will indicate the lens power, size, and recommended brand. In cases where you have specific needs, like astigmatism correction or multifocal lenses, additional information may be included in your prescription.
You will receive this prescription after receiving an eye examination conducted by a certified eye care professional. During the exam, they will assess your visual needs and provide guidance on when to replace your eyewear based on your lifestyle and eye sensitivity.

Disclaimer:
You hereby confirm that you possess a valid prescription for the lenses you intend to order. This means that your prescription is current, having been issued within the past 12 months, and has been provided by a qualified optometrist or lens fitter (referred to hereafter as a "practitioner").
We reserve the right to verify this information with your practitioner. This same requirement applies to returning customers ordering lenses. If a registered practitioner has advised against wearing lenses, we reserve the right to decline any sale, unless redirected by the same or another registered practitioner.
Furthermore, you affirm that you do not have any medical conditions that contraindicate the use of lenses. When making a purchase from us, you are confirming that a qualified practitioner has prescribed the lenses you are ordering. Consequently, we are not responsible if you purchase lenses that have not been specifically prescribed for you or if the time between the prescription and purchase exceeds 12 months.
We strongly recommend regular eye examinations by a qualified practitioner to safeguard your eye health. While it is not mandatory to send us your prescription, by accepting the terms and conditions outlined above, you are verifying that you possess a valid prescription in accordance with United States law. 
If you need assistance with your prescription, please feel free to email us at customer.support@blakspecs.com

Description

Introducing the BlakSpecs Tears In My Eyes geometric eyeglasses - a refined choice for those who appreciate a classic, sophisticated look. This lightweight, full-rim frame provides a perfect complement to a modern, urban style. Aluminum frames, titanium temples with adjustable nose pads offer both elegance and versatility. With BlakSpecs Tears In My Eyes, enjoy the comfort of ultra-light frames and innovative designs. We offer free polycarbonate single vision lenses with anti-glare coating with every purchase.

Details
Material: 
Aluminum/Titanium
Rim: 
Full Rim
Gender: 
Unisex
RXable: 
Yes
Shape: 
Geometric
Vendor: 
BlakSpecs
Show in inches