🎄✨ The Cardinal’s Gift: A Tree That Whispers Love Through Light

$34.99
Qty:  Buy 1
people are viewing this right now
Free worldwide shipping
Free returns
Sustainably made
Secure payments
Quantity

Description

❤️ The Legend of the Red Birds

“It is said that when a cardinal appears, a loved one is near.”

In the quiet of winter, when the world grows still and memories rise like soft snow, two red birds return—not by chance, but as gentle messengers of love beyond goodbye.

This is no ordinary tree.
It is a window between worlds, a symbol of connection, a soft glow of remembrance.

✨ Designed with Intention – and Love

  • Two Cardinal Birds – Sacred symbols of presence, protection, and eternal bonds

  • 21" Warm-Glow Tree – Soft light that asks for nothing but a power outlet and an open heart

  • Red Berries & Vintage Styling – Timeless elegance that honors tradition while comforting the modern soul

  • Plug-In Illumination – No batteries, no complexity… just instant serenity

📖 Stories Woven in Light

Maria placed the tree near the window—the one where her husband once drank his morning coffee. On the first snow day, two cardinals landed on the windowsill. She knew. He was still with her.

James gave this to his mother after his father passed. She cried—then smiled. “It feels like a hug,” she said. Now it glows in her room every night.

Lena bought one for her yoga studio. Her clients now meditate by its light. “It doesn’t just decorate,” she says. “It holds space.”

🎁 The Gift That Says:

“You Are Not Alone”

This isn’t just holiday decor. It’s:

  • tribute

  • companion

  • quiet nod between those who remember and those who are remembered


⚙️ Product Specifications

  • Dimensions: 21" Tall x 4" Wide
  • Power: Plug-in LED lights (energy efficient)
  • Light Color: Warm vintage glow (soft yellow tone)
  • Material: Durable resin branches with embedded LED bulbs, red berries and bird decorations

❓ Frequently Asked Questions

Q: Can this tree be used outdoors?
A: This product is designed for indoor use only to protect its electrical components.

Q: How do I power the LED lights?
A: Simply plug the included adapter into a standard outlet for instant warm illumination.

Q: Is it battery-powered or requires plug?
A: This tree requires plug-in power; no batteries needed.

Q: Can I leave it on all day?
A: Yes! The LED lights are energy efficient and safe for extended use.


🌟 Customer Reviews

⭐⭐⭐⭐⭐

"The warm glow and delicate red bird details made this tree my favorite holiday décor piece this year. Love how compact and charming it is!" — Emily R.

⭐⭐⭐⭐⭐

"Perfect size for my apartment! Brings a cozy vintage vibe and beautiful festive accents. Highly recommend for anyone wanting a unique, elegant seasonal decoration." — Jason M.

⭐⭐⭐⭐⭐

"Such an easy-to-use, plug-and-play decoration. It instantly brightens my living room and adds warmth during the chilly winter months." — Sophia L.

✨ For those who believe… in love, in signs, in light.

const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = 'dc1ac015-4cb1-4f99-9390-0052806fb6e1'; 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 = '8cfcaf97-8354-4330-8577-df449d089518'; 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 == '8cfcaf97-8354-4330-8577-df449d089518' && 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);