XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown
XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown

XMCOSY+ Water Glass Lens Outdoor Solar Lights-‎Brown

Price

$0.00 $23.00
Save $-23.00
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '42021127-9e35-42f0-b329-454cec81adb6'; this.isRTL = SPZ.win.document.dir === 'rtl'; } static deferredMount() { return false; } buildCallback() { this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); this.setupAction_(); this.viewport_ = this.getViewport(); } mountCallback() { this.init(); // 监听事件 this.bindEvent_(); } async init() { this.handleFitTheme(); const data = await this.getDiscountList(); this.renderApiData_(data); } async getDiscountList() { const productId = 'c0a029cd-1336-4e26-89f7-f6f22bc1c4c6'; const variantId = this.variant_id; const productType = 'default'; const reqBody = { product_id: productId, variant_id: variantId, discount_method: "DM_AUTOMATIC", customer: { customer_id: window.C_SETTINGS.customer.customer_id, email: window.C_SETTINGS.customer.customer_email }, product_type: productType } const url = `/api/storefront/promotion/display_setting/text/list`; const data = await this.xhr_.fetchJson(url, { method: "post", body: reqBody }).then(res => { return res; }).catch(err => { this.setContainerDisabled(false); }) return data; } async renderDiscountList() { this.setContainerDisabled(true); const data = await this.getDiscountList(); this.setContainerDisabled(false); // 重新渲染 抖动问题处理 this.renderApiData_(data); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } async renderApiData_(data) { const parentDiv = document.querySelector('.automatic_discount_container'); const newTplDom = await this.getRenderTemplate(data); if (parentDiv) { parentDiv.innerHTML = ''; parentDiv.appendChild(newTplDom); } else { console.log('automatic_discount_container is null'); } } doRender_(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); this.element.appendChild(el); }); } async getRenderTemplate(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, { ...renderData, isRTL: this.isRTL }) .then((el) => { this.clearDom(); return el; }); } setContainerDisabled(isDisable) { const automaticDiscountEl = document.querySelector('.automatic_discount_container_outer'); if(isDisable) { automaticDiscountEl.setAttribute('disabled', ''); } else { automaticDiscountEl.removeAttribute('disabled'); } } // 绑定事件 bindEvent_() { window.addEventListener('click', (e) => { let containerNodes = document.querySelectorAll(".automatic-container .panel"); let bool; Array.from(containerNodes).forEach((node) => { if(node.contains(e.target)){ bool = true; } }) // 是否popover面板点击范围 if (bool) { return; } if(e.target.classList.contains('drowdown-icon') || e.target.parentNode.classList.contains('drowdown-icon')){ return; } const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { node.classList.remove('open-dropdown'); }) // 兼容主题 this.toggleProductSticky(true); }) // 监听变体变化 document.addEventListener('dj.variantChange', async(event) => { // 重新渲染 const variant = event.detail.selected; if (variant.product_id == 'c0a029cd-1336-4e26-89f7-f6f22bc1c4c6' && variant.id != this.variant_id) { this.variant_id = variant.id; this.renderDiscountList(); } }); } // 兼容主题 handleFitTheme() { // top 属性影响抖动 let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ productInfoEl.classList.add('force-top-auto'); } } // 兼容 wind/flash /hero 主题 (sticky属性影响 popover 层级展示, 会被其他元素覆盖) toggleProductSticky(isSticky) { let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ if(isSticky) { // 还原该主题原有的sticky属性值 productInfoEl.classList.remove('force-position-static'); return; } productInfoEl.classList.toggle('force-position-static'); } } setupAction_() { this.registerAction('handleDropdown', (invocation) => { const discount_id = invocation.args.discount_id; const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { if(node.getAttribute('id') != `automatic-${discount_id}`) { node.classList.remove('open-dropdown'); } }) const $discount_item = document.querySelector(`#automatic-${discount_id}`); $discount_item && $discount_item.classList.toggle('open-dropdown'); // 兼容主题 this.toggleProductSticky(); }); } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {}); this.action_.trigger(this.element, name, event); } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } } SPZ.defineElement(TAG, SpzCustomProductAutomatic);
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 = "42021127-9e35-42f0-b329-454cec81adb6"; // 促销活动数据 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 == 'c0a029cd-1336-4e26-89f7-f6f22bc1c4c6' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } getData() { const reqBody = { product_id: "c0a029cd-1336-4e26-89f7-f6f22bc1c4c6", 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);

size

Please select a size

light color

Please select a light color

Quantity

Free worldwide shipping
Free returns
Sustainably made
Secure payments

Beautiful outdoor lights solar powered are outdoor decorations for paths, yards, lawn, sidewalk and landscapes. The water glass lens allows for high transmittance and large illumination area. When there is no light source on your garden path at night, the bright lights from this durable solar powered outdoor lights ensures safe passage.

  • BRIGHT SOLAR LIGHTS WITH ELEGANT GLOW: Solar garden lights 20 LM bright warm white light with Water Ripple Glass Shade adds 360° soft ambient lighting. Outdoor lighting area has wider coverage than others with larger & higher design.(Dimensions: ‎21.7"x 5.1"x 5.1").
  • 30% EFFICIENCY UPGRADE PANEL: Solar yard lights equipped with XL Polycrystalline Panel (2.51" x 2.51") converts sunlight 50% faster - fully charges in 6-8 hours for 6-10 hours long-lasting runtime (built-in 1.2Wh high capacity battery). Charged auto in the daytime and working in darkness.
  • WEATHER-RESISTANT FOR YEAR-ROUND USE: Solar powered outdoor lights made of high-strength oxidation-resistant metal with water lens thickened glass, can withstand -4°F~140 °F. IP65 waterproof grade ensures the solar landscape lights withstands extreme weather conditions.
  • BUILT TO LAST: Solar lights outdoor made with premium materials: artistic corrugated glass, stainless steel pole, thickened ABS ground stakes which penetrate hard soil. Rust-resistant powder coating adds extra weather resistance and a vintage metallic finish.
  • 10-SECOND EFFORTLESS INSTALLATION: Solar garden lights installed without wiring or screws, $0 energy bill - Great addition for your home, party, camping, BBQ, or wedding. Solar walkway lights are not only an essential for festive lights decor but also the top choice for presents to family and friends.
  • ‎Package Includes: Stainless Steel Poles *4, ABS Plastic Spikes *4, Water Glass Lens *4, Instruction manual*1

Product Dimensions

‎ 5.11"D x 5.11"W x 21.7"H

Light Color

‎‎ ‎Warm White

Brightness

‎‎ ‎‎20 Lumen

Color Temperature

‎ 2700 Kelvin

Item Weight

‎ 5.94 pounds

Material

 Stainless Steel, Glass, Plastic, Metal, Acrylonitrile Butadiene Styrene

Room Type

‎ ‎‎‎Garden, Yard, Driveway, Pathway, Walkway