Cash on Delivery to Japan,Taiwan HongKong and Singapore ,Free shipping over USD$59
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
19 / 20
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
Embroidery Fragrance Butterfly Decoration
You May Also Like Don't Like These?
mysite

Embroidery Fragrance Butterfly Decoration

$6.99 $12.99
0 sold
Color
QTY
Qty 1000 in stock

FEATURES

  • 🦋Seeing And Smelling Spring In The Car🦋
  • 🦋 Lifelike Fragrance Butterfly Effect: Exquisite and Beautiful Embroidery Craft Butterfly Decorations.Five-star hotel scent, like spring,dancing and fluttering as if in a dreamy performance, enhancing the aesthetic appeal of your car
  • 🔗 Easy Installation Design: Uniquely designed for hassle-free installation, requiring no specialized tools. Transform your vehicle's appearance with ease, anytime and anywhere.Add silicone protection clips, safe and solid, do not fall, do not hurt the air outlet.
  • 🌈 Multicolor Options: With a vibrant array of butterfly colors, you can effortlessly find the perfect match for your vehicle, breaking away from monotony and expressing your unique style.
  • 💎🚗BEST CAR GIFT: When someone else own a new car, It can be a satisfactory gift to give him/her.A good gift that you can give it to your family, friends, roommates, colleagues and more on different festivals and occasions, like home party, have the new car, housewarming, birthday and New Year.

SPECIFICATIONS

  • Material: Alloy + Spun thread

  • Craftsmanship: Hand Embroidery Craft

  • Size: 4.34 x 2.37 in

PACKAGE INCLUDES

  • 1 x Embroidery Fragrance Butterfly Decoration

NOTE

  • There may be a slight color difference due to different monitors/brightness. Thank you for your understanding.
  • Please allow a tiny difference due to manual measurement.
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);