Iron Radiance

$44.00
$66.00
Save 33%
class SpzCustomDiscountFlashsale extends SPZ.BaseElement { constructor(element) { super(element); this.xhr_ = SPZServices.xhrFor(this.win); this.getFlashSaleApi = "\/api\/storefront\/promotion\/flashsale\/display_setting\/product_setting"; this.timer = null; this.variantId = "57252057-1ab8-41cc-ab3a-a24d6805feac"; // 促销活动数据 this.flashsaleData = {} } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.templates_ = SPZServices.templatesForDoc(); this.viewport_ = this.getViewport(); // 挂载bind函数 解决this指向问题 this.render = this.render.bind(this); this.resize = this.resize.bind(this); this.switchVariant = this.switchVariant.bind(this); } mountCallback() { // 获取数据 this.getData(); this.element.onclick = (e) => { const cur = this.win.document.querySelector(".app_discount_flashsale_desc"); if (this.flashsaleData.product_setting.is_redirection && appDiscountUtils.inProductBody(this.element) && e.target !== cur) { this.win.open(`/promotions/discount-default/${this.flashsaleData.discount_info.id}`); } } // 绑定 this.viewport_.onResize(this.resize); // 监听子款式切换,重新渲染 this.win.document.addEventListener('dj.variantChange', this.switchVariant); } unmountCallback() { // 解绑 this.viewport_.removeResize(this.resize); this.win.document.removeEventListener('dj.variantChange', this.switchVariant); // 清除定时器 if (this.timer) { clearTimeout(this.timer); this.timer = null; } } resize() { if (this.timer) { clearTimeout(this.timer) this.timer = null; } this.timer = setTimeout(() => { this.render(); }, 200) } switchVariant(event) { const variant = event.detail.selected; if (variant.product_id == '954f7ff1-3410-4ab0-971f-6250707f0016' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } getData() { const reqBody = { product_id: "954f7ff1-3410-4ab0-971f-6250707f0016", product_type: "default", variant_id: this.variantId } this.flashsaleData = {}; this.win.fetch(this.getFlashSaleApi, { method: "POST", body: JSON.stringify(reqBody), headers: { "Content-Type": "application/json" } }).then(async (response) => { if (response.ok) { this.flashsaleData = await response.json(); this.render(); } else { this.clearDom(); } }).catch(err => { this.clearDom(); }); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } render() { this.templates_ .findAndRenderTemplate(this.element, { isMobile: appDiscountUtils.judgeMobile(), isRTL: appDiscountUtils.judgeRTL(), inProductDetail: appDiscountUtils.inProductBody(this.element), flashsaleData: this.flashsaleData, image_domain: this.win.SHOPLAZZA.image_domain, }) .then((el) => { this.clearDom(); this.element.appendChild(el); }) } } SPZ.defineElement('spz-custom-discount-flashsale', SpzCustomDiscountFlashsale);
Frame Color : Black
Free Premium Packaging (Including Outer Box, Sunglasses Case And Microfiber Cloth)
(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":"57252057-1ab8-41cc-ab3a-a24d6805feac","product_id":"954f7ff1-3410-4ab0-971f-6250707f0016","title":"Black","weight_unit":"g","inventory_quantity":6,"sku":"ZSM2003-V1","barcode":"","position":1,"option1":"Black","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/41307d16677722e11a7a3e3f69c11d72.jpg","path":"41307d16677722e11a7a3e3f69c11d72.jpg","width":5000,"height":5000,"alt":"Iron Radiance Zealous","aspect_ratio":1},"wholesale_price":[{"price":44,"min_quantity":1}],"weight":"27","compare_at_price":"66","price":"44","retail_price":"66","available":true,"url":"\/products\/iron-radiance?variant=57252057-1ab8-41cc-ab3a-a24d6805feac","available_quantity":999999999,"options":[{"name":"Frame color","value":"Black"}],"off_ratio":33,"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 == '954f7ff1-3410-4ab0-971f-6250707f0016') { 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/954f7ff1-3410-4ab0-971f-6250707f0016/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: "954f7ff1-3410-4ab0-971f-6250707f0016", 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: '"954f7ff1-3410-4ab0-971f-6250707f0016"', 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: "Iron Radiance", id: "954f7ff1-3410-4ab0-971f-6250707f0016", image: {"src":"\/\/img.staticdj.com\/41307d16677722e11a7a3e3f69c11d72.jpg","path":"41307d16677722e11a7a3e3f69c11d72.jpg","width":5000,"height":5000,"alt":"Iron Radiance Zealous","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) })()
Description

Zealous Iron Radiance Sunglasses – Stylish Square Frame with PC Lenses


Product Description:

Make a bold statement with Zealous Iron Radiance Sunglasses, the epitome of modern sophistication and everyday practicality. Designed with a sleek square frame and high-quality PC lenses, these sunglasses offer a seamless blend of style and durability. Perfect for those who appreciate timeless fashion with a contemporary twist.

The lightweight metal frame paired with fibre nose pads ensures all-day comfort, while the lenses provide UV400 protection, shielding your eyes from harmful UV rays. Whether you're running errands, attending outdoor events, or elevating your everyday look, the Iron Radiance sunglasses are your go-to choice for versatile, chic eyewear.


Key Features:

🌞 UV400 Protection:
Keep your eyes safe with UV400-rated lenses that block 100% of harmful UVA and UVB rays.

🔧 Durable Metal Frame:
Crafted for long-lasting use, the sleek metal frame adds a touch of industrial elegance to any outfit.

👓 Comfortable Fibre Nose Pads:
Experience enhanced comfort with fibre nose pads that provide a secure, slip-free fit.

🎩 Square Frame Design:
A timeless square shape that suits various face types, offering both a modern and classic appeal.


Why Choose Zealous Iron Radiance Sunglasses?

✔️ High-Quality Materials: Premium PC lenses and durable metal frames ensure longevity and a polished finish.
✔️ Stylish & Versatile: The bold square frame adds sophistication to any look, making it perfect for both casual and formal wear.
✔️ Gift-Ready Packaging: Each pair comes in luxurious Zealous packaging, including a magnetic sunglasses case, cleaning cloth, and outer gift box.


What’s Included in the Package:

🎁 Premium Packaging:

  • Magnetic hard case to protect your sunglasses.
  • Microfiber cleaning cloth to keep your lenses spotless.
  • Stylish outer cardboard box – making it a perfect gift for family and friends.

About Zealous:

At Zealous, we redefine affordable luxury with our high-quality fashion sunglasses. The Iron Radiance Square Frame Sunglasses combine bold design with exceptional craftsmanship, delivering both style and functionality at a smart price. Embrace a perfect balance of fashion-forward aesthetics and reliable protection with Zealous.

Details
window.__bright__ = { getMetaData_: () => { const metaData = [ {"value": "Regular", "title": "Size", "owner_resource": "product", "key": "size"}, {"value": "27", "title": "Weight", "owner_resource": "product", "key": "weight"}, {"value": "", "title": "Rim", "owner_resource": "product", "key": "rim"}, {"value": "", "title": "RXable", "owner_resource": "product", "key": "rxable"}, {"value": "Black, Gunmetal Gray", "title": "Frame Color", "owner_resource": "product", "key": "frame_color"}, {"value": "Black, Gunmetal Gray", "title": "Temple Color", "owner_resource": "product", "key": "temple_color"}, {"value": "Metal", "title": "Frame Material", "owner_resource": "product", "key": "material"}, {"value": "Metal", "title": "Temple Material", "owner_resource": "product", "key": "temple_material"}, {"value": "Black, Bottle Green", "title": "Lens Color", "owner_resource": "product", "key": "color"}, {"value": "Square", "title": "Shape", "owner_resource": "product", "key": "shape"}, {"value": "PC", "title": "Lens Type", "owner_resource": "product", "key": "_LensType"}, {"value": "Fibre", "title": "Nose Pad", "owner_resource": "product", "key": "nose_pad"}, {"value": "Anti scratch", "title": "Coating", "owner_resource": "product", "key": "Coating"}, {"value": "No", "title": "Polarized", "owner_resource": "product", "key": "Polarized"}, ]; return metaData; }, getBlockData_: () => { const blockSettingData = { "frameWidth": { "value": "150", }, "lensWidth": { "value": "61", }, "bridgeWidth": { "value": "18", }, "lensHeight": { "value": "", }, "templeLength": { "value": "", } }; return blockSettingData; } }; (function(){ const TAG = 'spz-custom-structured-logic'; class SpzCustomStructuredLogic extends SPZ.BaseElement { constructor(element) { super(element); this.xhr_ = SPZServices.xhrFor(this.win); } buildCallback = () => { this.setupAction_(); this.unit = 'mm'; this.variantChange_(); this.selectedData = this.getProductData_(); this.init_(); } static deferredMount() { return false; } isLayoutSupported = (layout) => { return layout == SPZCore.Layout.CONTAINER; } setupAction_ = () => { this.registerAction('changeUnit', (invocation) => { const changeUnit = invocation.args.data; this.unit = changeUnit; this.init_(); }); } init_ = () => { this.meteData_ = window.__bright__.getMetaData_(); this.blockData_ = window.__bright__.getBlockData_(); this.renderParameter_(); this.renderStructuredImg_(); this.renderTempleLength_(); this.renderBtn_(); } getProductData_ = () => { let pJson = document.getElementById('product-json'); if (pJson) { return JSON.parse(pJson.innerHTML); } if (typeof $ === 'function') { return $(document).data('djproduct'); } return undefined; } renderParameter_ = () => { const structuredParameterContainerRender = document.getElementById('structured-parameter-container-render'); SPZ.whenApiDefined(structuredParameterContainerRender).then(async (api) => { const parameter = []; this.meteData_.forEach(meta => { if (meta.owner_resource === 'product') { parameter.push({ title: meta.title, value: meta.value }); } else { parameter.push({ title: meta.title, value: meta.value[this.selectedData.selected.id] }); } }); api.render(parameter); }); } renderStructuredImg_ = () => { const glassesImgRender = document.getElementById('glasses-img-render'); SPZ.whenApiDefined(glassesImgRender).then(async (api) => { const parameter = {}; parameter.unit = this.unit; Object.keys(this.blockData_).forEach(key => { if (typeof this.blockData_[key].value === 'string') { parameter[key] = this.blockData_[key].value; } else { parameter[key] = this.blockData_[key].value[this.selectedData.selected.id]; } }); api.render(parameter); }); } renderTempleLength_ = () => { const lensImgRender = document.getElementById('lens-img-render'); SPZ.whenApiDefined(lensImgRender).then(async (api) => { let parameter = {}; parameter.unit = this.unit; if (this.blockData_.templeLength.value) { if (typeof this.blockData_.templeLength.value === 'string') { parameter.value = this.blockData_.templeLength.value; } else { parameter.value = this.blockData_.templeLength.value[this.selectedData.selected.id]; } } api.render(parameter); }); } renderBtn_ = () => { const conversionBtnRender = document.getElementById('conversion-btn-render'); conversionBtnRender && SPZ.whenApiDefined(conversionBtnRender).then(async (api) => { const parameter = {}; Object.keys(this.blockData_).forEach(key => { if (typeof this.blockData_[key].value === 'string') { parameter[key] = this.blockData_[key].value; } else { parameter[key] = this.blockData_[key].value[this.selectedData.selected.id]; } }); parameter.unit = this.unit; api.render(parameter); }) } variantChange_ = () => { document.addEventListener('dj.variantChange', (e) => { this.init_(); this.selectedData = e.detail; }); document.addEventListener('dj.editor.update', (e) => { this.init_(); }); } } SPZ.defineElement(TAG, SpzCustomStructuredLogic) })();