Bijou

$53.00
$66.00
Save 20%
2 sold
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 = "49fe4989-60f0-4f2e-9e54-10191a5f36f4"; // 促销活动数据 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 == '15119c74-8265-4d95-aba1-6c7415b2727a' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } getData() { const reqBody = { product_id: "15119c74-8265-4d95-aba1-6c7415b2727a", 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 : Jet 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":"49fe4989-60f0-4f2e-9e54-10191a5f36f4","product_id":"15119c74-8265-4d95-aba1-6c7415b2727a","title":"Jet Black","weight_unit":"kg","inventory_quantity":6,"sku":"ZSA1002-V1","barcode":"","position":1,"option1":"Jet Black","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/6bd0f53b3aa4e433a35296b21e8ef620.png","path":"6bd0f53b3aa4e433a35296b21e8ef620.png","width":5000,"height":5000,"alt":"Bijou Zealous","aspect_ratio":1},"wholesale_price":[{"price":53,"min_quantity":1}],"weight":"0","compare_at_price":"66","price":"53.00","retail_price":"66","available":true,"url":"\/products\/bijou?variant=49fe4989-60f0-4f2e-9e54-10191a5f36f4","available_quantity":6,"options":[{"name":"Frame Color","value":"Jet Black"}],"off_ratio":"20","flashsale_info":{"variant_id":"49fe4989-60f0-4f2e-9e54-10191a5f36f4","product_id":"","quantity":0,"discount_id":"c8a27b12-5a0a-4cd6-a99b-c9c171938212","limit_time":1570085,"limit_buy":-1,"user_limit_buy":-1,"discount_sales":0,"discount_sales_rate":"0","discount_stock":6,"ends_at":1751860799,"starts_at":1750172822,"allow_oversold":"uncheck","allocation_method":"none","price":"53.00","compare_at_price":"66.00","discount_price":"53.00","customary_saved_price":"13.00","customary_off_ratio":"20","discount_saved_price":"13.00","discount_off_ratio":"20","use_before_price":false,"before_price":"0","title":"","properties":"","color_setting_promotional_copy":"Canada Day Sale","discount_quantity":0,"is_need_split":false},"sales":2}'; 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 == '15119c74-8265-4d95-aba1-6c7415b2727a') { 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/15119c74-8265-4d95-aba1-6c7415b2727a/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: "15119c74-8265-4d95-aba1-6c7415b2727a", 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: '"15119c74-8265-4d95-aba1-6c7415b2727a"', 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: "Bijou", id: "15119c74-8265-4d95-aba1-6c7415b2727a", image: {"src":"\/\/img.staticdj.com\/6bd0f53b3aa4e433a35296b21e8ef620.png","path":"6bd0f53b3aa4e433a35296b21e8ef620.png","width":5000,"height":5000,"alt":"Bijou 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

Product Description:

Elevate your eyewear game with the Zealous Bijou Polarized Sunglasses—a perfect blend of style, comfort, and high-performance functionality. Crafted with precision and care, these sunglasses feature a luxurious hand-crafted acetate frame that not only provides a sophisticated look but also ensures durability for everyday wear. Designed for both men and women, the Bijou sunglasses embody the essence of modern fashion while offering a timeless appeal.

Exceptional UV Protection

The Bijou Sunglasses come equipped with high-quality polarized TAC lenses that provide ultimate UV400 protection. These lenses effectively block 100% of harmful UVA, UVB, and UVC rays, safeguarding your eyes against long-term UV damage. With glare reduction and enhanced contrast, you can enjoy your outdoor activities without compromising on eye safety.

Superior Comfort & Fit

Designed for comfort, the lightweight frame ensures a snug yet relaxed fit, making these sunglasses perfect for extended wear. The built-in nose pads provide added comfort, preventing slipping during all your activities, whether you’re driving, hiking, or lounging at the beach.

Stylish Versatility

The Bijou Polarized Sunglasses are more than just functional; they are a fashion statement. Their elegant rectangular shape is perfect for any occasion, from casual outings to upscale events. With a design that caters to all genders, these sunglasses are an ideal accessory for anyone looking to enhance their style while staying protected from the sun.

Thoughtful Packaging for Gifting

Arriving in opulent packaging, the Zealous Bijou Sunglasses make for an excellent gift for family, friends, or that special someone. Each pair comes in a stylish magnetic sunglasses case, accompanied by a microfiber cleaning cloth, all wrapped in an attractive outer cardboard packaging. This attention to detail ensures that your gift is not only practical but also beautifully presented.


Key Features:

  • Hand-Crafted Acetate Frame: Ensures durability and a luxurious feel.
  • UV400 Protection: Blocks 100% of harmful UVA and UVB rays.
  • Polarized TAC Lenses: Reduces glare and enhances color contrast for clear vision.
  • Lightweight Design: Comfortable for all-day wear.
  • Gifting Ready: Comes with a stylish magnetic case and cleaning cloth.

Product Specifications:

  • Model Number: ZSA1002
  • Lens Width: 52 mm
  • Bridge Width: 20 mm
  • Frame Width: 145 mm
  • Frame Material: Acetate
  • Temple Material: Acetate
  • Lens Type: TAC Polarized
  • Weight: 40g
  • Target Gender: Unisex

Why Choose Zealous?

At Zealous, we are committed to redefining luxury eyewear at accessible prices. Our premium materials and meticulous craftsmanship ensure that you receive the highest quality sunglasses without breaking the bank. Experience the perfect blend of style and affordability with the Bijou Polarized Sunglasses.

Details
window.__bright__ = { getMetaData_: () => { const metaData = [ {"value": "", "title": "Size", "owner_resource": "product", "key": "size"}, {"value": "", "title": "Weight", "owner_resource": "product", "key": "weight"}, {"value": "", "title": "Rim", "owner_resource": "product", "key": "rim"}, {"value": "", "title": "RXable", "owner_resource": "product", "key": "rxable"}, {"value": "Jet Black / Turquoise Blue", "title": "Frame Color", "owner_resource": "product", "key": "frame_color"}, {"value": "Jet Black / Turquoise Blue", "title": "Temple Color", "owner_resource": "product", "key": "temple_color"}, {"value": "Acetate", "title": "Frame Material", "owner_resource": "product", "key": "material"}, {"value": "Acetate", "title": "Temple Material", "owner_resource": "product", "key": "temple_material"}, {"value": "Black", "title": "Lens Color", "owner_resource": "product", "key": "color"}, {"value": "Rectangular", "title": "Shape", "owner_resource": "product", "key": "shape"}, {"value": "TAC Polarized", "title": "Lens Type", "owner_resource": "product", "key": "_LensType"}, {"value": "Built In", "title": "Nose Pad", "owner_resource": "product", "key": "nose_pad"}, {"value": "Anti scratch", "title": "Coating", "owner_resource": "product", "key": "Coating"}, {"value": "Yes", "title": "Polarized", "owner_resource": "product", "key": "Polarized"}, ]; return metaData; }, getBlockData_: () => { const blockSettingData = { "frameWidth": { "value": "145", }, "lensWidth": { "value": "52", }, "bridgeWidth": { "value": "20", }, "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) })();