Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights
Solar LED Deck & Stair Lights

Solar LED Deck & Stair Lights

Price

$45.00 $23.00
Save $22.00
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '4e147c84-89f2-41dc-a2b6-482a852754fd'; 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 = 'fba998e2-4d10-405b-984a-fc532d895647'; 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 == 'fba998e2-4d10-405b-984a-fc532d895647' && 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 = "4e147c84-89f2-41dc-a2b6-482a852754fd"; // 促销活动数据 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 == 'fba998e2-4d10-405b-984a-fc532d895647' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } getData() { const reqBody = { product_id: "fba998e2-4d10-405b-984a-fc532d895647", 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);

color

Please select a color

qty

Please select a qty

Quantity

Free worldwide shipping
Free returns
Sustainably made
Secure payments

Transform your outdoor space into a beautifully illuminated sanctuary with this elegant and eco-friendly lighting solution. Designed to enhance the aesthetic of your home while prioritizing safety, this versatile 4-pack of solar-powered lights seamlessly blends style and function. Ideal for lighting up garden paths, patio railings, or backyard stairs, each sleek black fixture emits a warm white glow that creates a welcoming ambiance and ensures your guests can navigate safely after dark.Imagine stepping out onto your deck or patio, greeted by soft, inviting light that highlights your paths, stairs, and flower beds. With each light providing 3 lumens of brightness, you’ll enjoy a cozy atmosphere that transforms your outdoor environment into the perfect setting for family gatherings or quiet evenings under the stars. No more stumbling in the dark or worrying about unseen steps—just a beautifully lit space that feels secure and inviting.This product is perfect for homeowners who value safety and aesthetics. If you’ve ever felt uneasy about navigating dark outdoor areas or searched for attractive yet eco-friendly lighting solutions, this innovative option addresses your concerns with ease. The automatic on/off feature means you can enjoy worry-free illumination without having to remember to switch them on or off. As dusk falls, these lights automatically come to life, ensuring your outdoor space remains beautifully lit throughout the night.Key features include:- **Eco-Friendly Solar Power**: Harness clean, renewable energy that eliminates the need for complicated wiring or costly electricity bills. A simple 4-5 hours of sunlight fully charges these lights, ensuring reliable performance all night long.- **Weatherproof Durability**: Constructed from high-strength ABS plastic, these lights are designed to withstand the elements—rain, snow, ice, and heat—making them a dependable choice for year-round outdoor use.- **Effortless Installation**: No need for professional help! With included mounting hardware, you can easily mount the lights vertically or flat, allowing for a quick and simple setup that enhances your outdoor space in no time.The emotional impact of these lights goes beyond mere function. Imagine the joy of hosting friends and family, knowing that every corner of your outdoor area is beautifully illuminated and safe. There’s a profound sense of peace that comes from creating an inviting atmosphere where memories can be made, laughter shared, and connections deepened. Plus, you can take pride in your choice to use eco-friendly products, contributing to a sustainable future while enhancing your home.Why choose this lighting solution over others? Many outdoor lights require expensive installation or ongoing electricity costs, making them more of a burden than a benefit. This innovative solar-powered option offers a hassle-free, stylish solution that integrates seamlessly into your lifestyle while providing an array of advantages you won’t find elsewhere.Step into a world of illuminated possibilities and elevate your outdoor experience today. Enjoy the beauty, safety, and sustainability that this lighting solution provides, ensuring your home shines brightly—night after night.