Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
16 / 17
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained  Window  Panel Hangings🎁
73% OFF

Last Day Special Sale 30%OFF🐦The Best Gift-Birds Stained Window Panel Hangings🎁

$16.99 $62.90
0 sold
BUY MORE SAVE MORE
Qty 1000 in stock
/** @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);

🔥🎁Spring Special Sale: ONCE WE REACH 300 UNIT SALES, WE WILL BE INCREASING THE PRICE BACK UP TO $62.90!❤️🔥

undefined

undefined

This stained bird suncatcher is so vibrant and eye-catching😍 Hummingbird, redbird, bluebird, and Baltimore oriole are very attractive and cute birds. Having a lot of significant symbolistic meaning, this suncatcher will magically change your home to the happiest place of living full of joy and happiness ❤️ I'm sure that everyone will be thrilled by such a gift .🎁

This window hanging is made using method of copper foil. During the process of manufacturing goods we use only the high-quality materials

This artwork is suitable for hanging anywhere. The best thing every day is to watch the light of life emanating from the sun through the stained.

Making stained crafts is not just for business, first of all, for happiness. Every product is made with love, because this is my family hobby.

✨Specifications:

  • Style: Pastoral
  • Space: living room, outdoor
  • Double-sided Epoxy Alloy Art
  • Size: 7 birds 20.5*10.5cm/4 birds 15*10cm
  • 6 birds 24*20cm/3 birds 18*15cm

✨Package includes:

  • 1*Birds Stained  Window Hangings

✨Notes:

  • Each suncatcher is unique and made by hands, that's why small deviation from the photos in the listing is possible ☝️
You may also like Don't Like These?
const TAG = 'spz-custom-painter-button-animation'; const MAX_ITERATION_COUNT = 99999999; const SITE = (window.C_SETTINGS && window.C_SETTINGS.routes && window.C_SETTINGS.routes.root) || ''; const ADD_TO_CART_ANIMATION_SETTING = `${SITE}/api/marketing_atmosphere_app/add_to_cart_btn_animation/setting`; class SpzCustomPainterButtonAnimation extends SPZ.BaseElement { /**@override */ static deferredMount() { return false; } /** @param {!SpzElement} element */ constructor(element) { super(element); /** @private {!../../src/service/xhr-impl.Xhr} */ this.xhr_ = SPZServices.xhrFor(this.win); /** @private {Object} */ this.data_ = null; /** @private {Element} */ this.addToCartButton_ = null; /** @private {boolean} */ this.productAvailable_ = true; /** @private {number} */ this.timerId_ = null; /** @private {number} */ this.animationExecutionCount_ = 0; /** @private {boolean} */ this.selectedVariantAvailable_ = true; /** @private {number} */ this.delay_ = 5000; /** @private {number} */ this.iterationCount_ = 5; /** @private {string} */ this.animationClass_ = ''; } /** @override */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** @override */ buildCallback() { this.productAvailable_ = this.element.hasAttribute('product-available'); this.selectedVariantAvailable_ = this.element.hasAttribute('selected-variant-available'); } /** @override */ mountCallback() { this.render_(); } /** @private */ render_() { if (!this.productAvailable_) { return; } this.fetch_().then((data) => { if (!data) { return; } this.data_ = data; this.animationClass_ = `painter-${data.animation_name}-animation`; this.iterationCount_ = data.animation_iteration_count === 'infinite' ? MAX_ITERATION_COUNT : data.animation_iteration_count; const animationDuration = 1; const animationDelay = data.animation_delay || 5; this.delay_ = (animationDuration + animationDelay) * 1000; this.handleButtonEffect_(); }); } /** * @param {JsonObject} data * @return {(null|Object)} * @private */ parseJson_(data) { try { return JSON.parse(data); } catch (e) { return null; } } /** * @return {Promise} * @private */ fetch_() { return this.xhr_.fetchJson(ADD_TO_CART_ANIMATION_SETTING).then((data) => { if (!data || !data.enabled) { return null; } return this.parseJson_(data.detail); }); } /** @private */ getAddToCartButton_() { this.addToCartButton_ = SPZCore.Dom.scopedQuerySelector( document.body, '[data-section-type="product"] [role="addToCart"], [data-section-type="product_detail"] [role="addToCart"], [data-section-type="product_detail"] [data-click="addToCart"], [data-section-type="product"] [data-click="addToCart"]' ); } /** @private */ restartAnimation_() { this.addToCartButton_.classList.remove(this.animationClass_); this.addToCartButton_./* OK */ offsetWidth; this.addToCartButton_.classList.add(this.animationClass_); this.animationExecutionCount_++; } /** @private */ clearTimer_() { this.win.clearInterval(this.timerId_); this.timerId_ = null; } /** @private */ setupTimer_() { this.timerId_ = this.win.setInterval(() => { this.restartAnimation_(); if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); this.clearTimer_(); } }, this.delay_); } /** @private */ restartTimer_() { if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); return; } this.setupTimer_(); } /** @private */ listenVariantChange_() { SPZUtils.Event.listen(self.document, 'dj.variantChange', (e) => { const selectedVariant = e.detail && e.detail.selected; if (!selectedVariant) { return; } const {available} = selectedVariant; if (this.selectedVariantAvailable_ !== available) { this.selectedVariantAvailable_ = available; this.clearTimer_(); if (available) { this.restartTimer_(); } } }); } /** @private */ removeAnimationClass_() { this.win.setTimeout(() => { this.addToCartButton_.classList.remove(this.animationClass_); }, 1000); } /** @private */ handleButtonEffect_() { this.getAddToCartButton_(); if (!this.addToCartButton_) { return; } if (this.selectedVariantAvailable_) { ++this.animationExecutionCount_; this.addToCartButton_.classList.add(this.animationClass_); if (this.iterationCount_ === 1) { this.removeAnimationClass_(); return; } this.setupTimer_(); } this.listenVariantChange_(); } } SPZ.defineElement(TAG, SpzCustomPainterButtonAnimation);