Square Frame MJ101FK039

$147.00
Frame Shape : Square
Frame Color : Black
Frame Material : Wood
(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":"69af2304-f12d-49f8-8c71-2fb38aa31508","product_id":"a8cdb1a9-f630-49d3-bcd1-8d549b4cfc4a","title":"Square-Black-Wood","weight_unit":"kg","inventory_quantity":7,"sku":"MJ101FK039BKC1","barcode":"","position":2,"option1":"Square","option2":"Black","option3":"Wood","note":"","image":{"src":"\/\/img.staticdj.com\/7badfedce3c92b85fce17e465d62f4aa.jpg","path":"7badfedce3c92b85fce17e465d62f4aa.jpg","width":3500,"height":3500,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":147,"min_quantity":1}],"weight":"0","compare_at_price":"147","price":"147","retail_price":"147","available":true,"url":"\/products\/square-sunglass-mj101fk039?variant=69af2304-f12d-49f8-8c71-2fb38aa31508","available_quantity":7,"options":[{"name":"Frame Shape","value":"Square"},{"name":"Frame Color","value":"Black"},{"name":"Frame Material","value":"Wood"}],"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 == 'a8cdb1a9-f630-49d3-bcd1-8d549b4cfc4a') { 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/a8cdb1a9-f630-49d3-bcd1-8d549b4cfc4a/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: "a8cdb1a9-f630-49d3-bcd1-8d549b4cfc4a", 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: '"a8cdb1a9-f630-49d3-bcd1-8d549b4cfc4a"', 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: "Square Frame MJ101FK039", id: "a8cdb1a9-f630-49d3-bcd1-8d549b4cfc4a", image: {"src":"\/\/img.staticdj.com\/e0973e5da332f1bac94de944ba5202a8.jpg","path":"e0973e5da332f1bac94de944ba5202a8.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.

Wear natural wood sourced from different regions in the world
  • Hand crafted with natural wood
  • All prescription eyeglasses lens includes anti-reflective, anti-glare, and scratch resistant coatings
  • Unisex design that suits your personality and lifestyle

Lens width (A):50mm
Bridge Width (B):20mm
Temple Arm Length (C):148mm

Need a prescription?

Update your prescription by booking your eye exam and contact lens fitting with us today.
Book now
Wood
Our classic wooden temple legs retain a subtle, natural wood aroma. We've reintroduced classic wooden elements, and our frame shape and structure feature embracing temples. No adjustments are necessary, ensuring comfort without squeezing the face. Say goodbye to the need for temple adjustments, as we prioritize both comfort and stability.
Advanced Lens Coatings for Ultimate Clarity
Waterproof Layer: Easy to clean and resistant to water stains
Anti-Static Layer: Reduces dust attraction, keeping your lenses clean
Multi-Layer AR System: Provides high light transmission for a clear and comfortable vision
Hard Coating: Durable, scratch-resistant, and long-lasting

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.