🎁Free Shipping on Orders Over $59🎉
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
1 / 33
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
Personalized Name Christmas Decoration
43% OFF
Fnkus

Personalized Name Christmas Decoration

$3.99 $6.99
0 sold
Color
Qty 999 in stock

🎄In this lovely and personalized Christmas decoration, the hat can be written with the name of you and your friends and family, and a wish or blessing can be written under the letters.

🎄You can add your own style and personal touch to the ornament using a thin marker pen,let dry after applying, it will stay on fine.(We're giving away a free marker pen, one is included with every order.)

🎄Material: wood and acrylic, each letter jewelry is equipped with a red ribbon lanyard.

You can use multiple letter decorations to form your name

Our personalized Christmas letter ornaments are the perfect way to decorate your Christmas tree

Each decoration is carefully packaged to prevent breakage

These cute alphabet accessories are great souvenirs of yourself, your family and friends-collect them all

🎄Delicate and festive:Hanging the personalized ornament on your Christmas tree or sending to families and friends as a holiday gift, it will be a perfect way to create lasting, loving memories.

🎄SIZE

The shape of each letter is different, so the size is also different, there will be some deviations in hand-made, but the difference is not big, please rest assured to buy. (refer to the picture below)

🎄PACKAGE INCLUDES

1 × Personalized Name Christmas Decoration

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);