🎄Beginner-Friendly DIY Lighted Christmas Character Sea Glass-Style Lighthouse Kit Collection | Complete Kit with Sea Glass-Style Pieces, LED Lights & Step-by-Step Guide

$26.99
$52.99
-$26.00
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = '1d7c30f5-8454-4465-bfdc-fccc8d7e22fa'; this.isRTL = SPZ.win.document.dir === 'rtl'; this.isAddingToCart_ = false; // 加购中状态 } 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 = '34b9d34d-b605-4857-94da-55ad0d0e4591'; 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 == '34b9d34d-b605-4857-94da-55ad0d0e4591' && 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(); }); // 加购事件 this.registerAction('handleAddToCart', (invocation) => { // 阻止事件冒泡 const event = invocation.event; if (event) { event.stopPropagation(); event.preventDefault(); } // 如果正在加购中,直接返回 if (this.isAddingToCart_) { return; } const quantity = invocation.args.quantity || 1; this.addToCart(quantity); }); } // 加购方法 async addToCart(quantity) { // 设置加购中状态 this.isAddingToCart_ = true; const productId = '34b9d34d-b605-4857-94da-55ad0d0e4591'; const variantId = this.variant_id; const url = '/api/cart'; const reqBody = { product_id: productId, variant_id: variantId, quantity: quantity }; try { const data = await this.xhr_.fetchJson(url, { method: 'POST', body: reqBody }); // 触发加购成功提示 this.triggerAddToCartToast_(); return data; } catch (error) { error.then(err=>{ this.showToast_(err?.message || err?.errors?.[0] || 'Unknown error'); }) } finally { // 无论成功失败,都重置加购状态 this.isAddingToCart_ = false; } } showToast_(message) { const toastEl = document.querySelector("#apps-match-drawer-add_to_cart_toast"); if (toastEl) { SPZ.whenApiDefined(toastEl).then((apis) => { apis.showToast(message); }); } } // 触发加购成功提示 triggerAddToCartToast_() { // 如果主题有自己的加购提示,则不显示 const themeAddToCartToastEl = document.querySelector('#add-cart-event-proxy'); if (themeAddToCartToastEl) return; // 显示应用的加购成功提示 this.showToast_("Added successfully"); } 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 SpzCustomDiscountBundle extends SPZ.BaseElement { constructor(element) { super(element); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } mountCallback() { // 同一页可能有多个 block 各自渲染本 snippet,导致逻辑元素 spz-custom-discount-toast(#appsAddCartToastFunc) 重复。 // 仅保留 DOM 中第一个实例,其余重复实例移除自身,保证逻辑元素及其 action 引用(appsAddCartToastFunc)唯一。 const funcs = document.querySelectorAll('#appsAddCartToastFunc'); if (funcs.length > 1 && this.element !== funcs[0]) { this.element.remove(); return; } // 全局折扣 toast 的弹出点分散在多个模板/组件里(含声明式 @atcError),无法逐一在弹出前前置, // 故挂载时幂等地去重并挂到 body;加购 toast 改为弹出前按需去重(见 showAddToCartToast) this.ensureSingleToastInBody_('cart_match_discount_toast_wrap'); } unmountCallback() {} // 同一页面可能有多个 block 各自渲染本 toast snippet(如商详的 discount_automatic + 购物车抽屉里的折扣横幅), // 导致 toast 外层出现重复 id。重复 id 下 getElementById/querySelector 及 SPZ 动作引用都只命中第一个, // 且被关进抽屉的那份会被抽屉的 transform/overflow 裁剪/错位。这里在挂载时幂等去重: // 只保留一份、移除多余的,并把保留的挂到 body(body 是 position:fixed 最安全的落点,避免被任何祖先裁剪)。可反复调用。 ensureSingleToastInBody_(id) { const els = Array.from(document.querySelectorAll('#' + id)); if (!els.length) return; els.slice(1).forEach((el) => el.remove()); const keep = els[0]; if (keep.parentNode !== document.body) { document.body.appendChild(keep); } } // 主题购物车抽屉是否打开 isInCartDrawer_() { return !!document.querySelector('[data-section-type="cart_drawer"] spz-sidebar[open]'); } setupAction_() { this.registerAction('showAddToCartToast', () => { // 抽屉内加购:主题本就不会有加购效果,统一弹插件自己的 toast // 非抽屉:主题有加购代理则沿用主题加购效果,否则插件兜底 const proxyEl = document.getElementById('add-cart-event-proxy'); const inDrawer = this.isInCartDrawer_(); if (!inDrawer && proxyEl) { return; } // 弹出前按需去重并挂到 body(幂等),避免重复 id 命中错对象或被抽屉裁剪/错位 this.ensureSingleToastInBody_('apps_add_cart_toast_wrap'); const toastEl = document.querySelector('#apps-match-drawer-add_to_cart_toast') SPZ.whenApiDefined(toastEl).then((apis) => { apis.showToast("Added successfully"); }); }); } buildCallback() { this.setupAction_(); }; } SPZ.defineElement('spz-custom-discount-toast', SpzCustomDiscountBundle);
Style- 🎅 Santa Shine
Quantity
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);
people are viewing this right now
Description

🎄 Create a Little Christmas Magic—One Piece at a Time

Build your own glowing Christmas lighthouse with layered sea-glass-style pieces, dimensional festive decorations and warm LED lights. ✨

Stack the tower, layer the colors, add the tiny details and watch your handmade creation glow.

Choose from Santa, Snowman, Christmas Tree, Reindeer or Cozy Stocking themes—each with its own colors, decorations and Christmas personality. 🎁


✨ Why You’ll Love It

🎨 Easy to Make, Beautiful to Display

No advanced crafting experience is needed. Follow the guide and enjoy creating at your own pace.

✔ Beginner-friendly DIY project
✔ Dimensional layered texture
✔ Warm LED illumination
✔ Freestanding tabletop design
✔ Five completely different Christmas styles
✔ A finished keepsake worth displaying

💡 Magical When the Lights Come On

During the day, the translucent pieces reveal rich colors and dimensional details.

At night, warm LEDs glow through the tower and windows, transforming it into a cozy Christmas decoration. ✨


🎁 Choose Your Christmas Lighthouse

🎅 Santa Shine

Festive red layers with Santa’s cheerful face, dimensional white beard, black belt, gift sack and golden accents.

☃️ Snowman

Frosted white and icy blue with a carrot nose, winter scarf, snowflakes and a playful snowman expression.

🎄 Christmas Tree

Deep evergreen layers with glowing garland, colorful ornaments and a statement gold star topper.

🦌 Merry Reindeer

Honey-amber and chestnut tones with large golden antlers, a ruby-red nose and hanging Christmas bells.

🧦 Cozy Stocking

Oatmeal, dusty cranberry and muted sage with quilt-inspired patterns, an oversized stocking and champagne-gold bow.


🧩 Create It in Four Simple Steps

1️⃣ Build the Tower
Stack and prepare the lighthouse structure on its wooden base.

2️⃣ Layer the Pieces
Attach the coordinated translucent pieces around the tower.

3️⃣ Add the Decorations
Finish with the included character details, ornaments, pearls and festive accents.

4️⃣ Turn On the Lights
Add the warm LEDs and enjoy your glowing Christmas lighthouse. ✨


🧘 A Relaxing Christmas Craft

Layering and decorating each small piece creates a peaceful, satisfying creative rhythm.

Perfect for:

🌙 Cozy winter evenings
👩👧 Mother-daughter craft time
👭 Christmas craft nights with friends
📵 Screen-free relaxation
🎨 Weekend DIY projects
🎁 Handmade Christmas gifting


🏡 Made for Holiday Displays

Place your finished lighthouse on a:

🔥 Fireplace mantel
📚 Bookshelf
🛋️ Side table
🚪 Entryway console
🎄 Christmas display table
🧵 Craft-room shelf
🛏️ Bedroom dresser

The freestanding design makes it easy to display and restyle throughout the season.


🎁 A Gift That Includes the Experience

Give the unopened kit as a relaxing creative project—or complete it yourself and give a handmade glowing keepsake.

Perfect for:

👩 Mothers and grandmothers
🎨 DIY craft lovers
💡 Lighthouse collectors
🎄 Christmas décor lovers
🏡 Cozy-home decorators
🎁 Friends and family


📏 Product Details

Product Name: DIY Lighted Christmas Lighthouse Kit
Product Type: 3D illuminated DIY craft kit
Main Materials: Translucent sea-glass-style pieces, lighthouse structure, wood base and themed decorations
Lighting: Warm LED lights
Display Style: Freestanding tabletop decoration
Assembly Required: Yes
Skill Level: Beginner-friendly—no prior experience needed
Recommended Use: Indoor decorative display
Available Designs: 5 Christmas styles


🎁📦 What’s Included

Each selected kit includes:

✅ Lighthouse craft structure
✅ Round wooden display base
✅ Coordinated sea-glass-style pieces
✅ Style-specific festive decorations
✅ Pearls, beads and dimensional accents
✅ Warm LED light set
✅ Adhesive
✅ Basic crafting tools
✅ Step-by-step guide

Colors and decorative components vary by selected style.

Please note: This is a DIY kit. The completed lighthouse shown in the images is not included.


❓ Frequently Asked Questions

Q1: Is this a finished lighthouse?

No. It is a complete DIY kit for assembling and decorating your own Christmas lighthouse.

Q2: Is it suitable for beginners?

Yes. No advanced experience is required. The project focuses on stacking, layering, attaching and decorating.

Q3: Are the lights included?

Yes. Each kit includes warm LED lights. 💡

Q4: Is it made with real sea glass?

The kit uses translucent sea-glass-style craft pieces designed to create a colorful layered glow.

Q5: Are all five styles included?

Each standard order includes one selected style. Choose the All Styles – 5Pcs option to receive the complete collection.

Q6: Where can I display it?

It is designed for indoor mantels, shelves, side tables, entryways and Christmas displays.


⭐ Customer Reviews
⭐⭐⭐⭐⭐

“Such a fun Christmas project with a beautiful glow.”
— A**.**

"I made the Santa lighthouse over a couple of evenings and honestly loved the whole process. Layering the red sea-glass-style pieces, adding the little Santa face details, and turning on the warm lights at the end was so satisfying. It looks incredibly cozy on my mantel at night and feels much more special than store-bought holiday décor."

⭐⭐⭐⭐⭐

“Beginner-friendly and so cute when finished.”
— M**.**

"I chose the Snowman version because I loved the frosty white and blue colors, and it turned out even cuter in person. The steps were easy to follow, the little scarf and face details gave it so much personality, and the warm LED light shining through the windows makes it look magical in the evening. It was relaxing to make and now sits on my entryway table for winter."

⭐⭐⭐⭐⭐

“A lovely handmade piece for cozy holiday décor.”
— K**.**

"The Cozy Stocking lighthouse was my favorite style in the collection and it did not disappoint. I really enjoyed building the tower, attaching the soft-colored pieces, and finishing it with the stocking and bow details. The final glow is warm and beautiful, and the whole piece looks perfect next to our fireplace. It felt easy enough for a beginner but still looked impressive when finished."


🎄 Build It. Decorate It. Make It Glow.

Stack the tower.
Layer the colors.
Add the festive details.
Turn on the lights and enjoy a Christmas decoration made by you. ✨

Choose your favorite Christmas style and start creating today 


HOW TO PAY

✅Payments Via PayPal®Debit and CreditCard.Add to cart first, and Check out, then select Shipping method and Payment method.
✅If you checkout with a Debit / Credit Card, just enter your * Card Number, * Expiration Date, and * Secure Code.

Certification

✈WORLDWIDE SHIPPING✈

💖 No Extra Tax, Shipping Calculated at Checkout.
🚢 Shipping>>Worldwide Express Shipping Available.

WHY US?

  • We have Quality Control department which help us to keep our promise!

  • Price is Always Competitive.

  • Awesome Customer Service.

  • Amazing products along with High Quality.

  • Read reviews from our lovely customers.

OUR GUARANTEE

📦Insured Worldwide Shipping: Each order includes real-time tracking details and insurance coverage in the unlikely event that a package gets lost or stolen in transit.

💰Money-Back Guarantee: If your items arrive damaged within 90 days of normal usage, we will gladly issue out a replacement or refund.

✉️24/7 Customer Support: We have a team of live reps ready to help and answer any questions you have within a 24-hour time frame, 7 days a week.

🔒Safe & Secure Checkouts: We use state-of-the-art SSL Secure encryption to keep your personal and financial information 100% protected.

🔒100% Risk-Free Purchase: If you bought it and felt that it is not for you, don't worry. Just hit the Contact us button and send us a message, and we will make it right by offering you a replacement or refund. 100% Simple & Risk-Free process.

You may also like