🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
1 / 11
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree
50% OFF

🎁Handmade Surprise Christmas gift🎄Succulent Christmas Tree

$36.99 $73.98
0 sold
Style
BUY 2 FREE SHIPPING
Qty 992 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);
    • 🍭Fast refund>>100% Money Back Guarantee.
    • 🏆Payments Via PayPal®
    • Limited Stock At This Price.🔥
    • 💯Free Shipping Over $69.9
    • 24-hour customer hezizi0215@gmail.com

😍💝If you love having a Christmas tree but dislike the maintenance—and its inevitable disposal—then Michicety Corner has a welcome alternative.

Not just for the holidays, our Succulent Trees make a beautiful addition to any home and a great gift for the succulent lover in your life. 🎄💝

🎄✨Our creates succulent trees that are miniature versions of the tall decorated conifers seen every year. Our creations are 12 inches tall and include a variety of succulents that even come with their own darling tree topper.🎄💝

🎁The succulent trees are ideal if you’re celebrating in a small space. Our produces two types: the Aurora Succulent Tree and the Alpine Succulent Tree.🎄💝

💚The Aurora version contains nearly 25 echeverias and is adorned with pinecones, moss, and a star. Our Alpine design has a distinctly evergreen feel with approximately 50 Haworthias and a dozen other varieties that include Echeverias, Graptoverias, sedums, and more. But no matter which succulent tree you choose, it can bring you a different surprise.🎄💚

Perhaps best of all, this type of Christmas tree comes with an eco-friendly twist; You can put it wherever you want and enjoy it in another way.🎄💓

What our customers are saying:

“Your craftsmanship is so nice! Your customer service is over the top….”

“What a magnificent Succulent! Thank you for taking the time to create the perfect Succulent for my home. It's already up and ready for the Christmas. Thank you! Thank you!”

“Absolutely Beautiful! Exactly what I wanted - Thank You!!!”

【Warm Tips】: If you encounter any problems in the process of using our products, please contact us in time, our after-sales team will promptly solve the problems you encounter.

OUR GUARANTEE

Shipping Times:
  • United States: 3 to 20 business days( Ship from California)
  • Canada: 3 to 20 business days( Ship from Ottawa)
  • United Kingdom:3 to 20 business days( Ship from London)
  • Europe: 3 to 20 business days( Ship from United Kingdom)
  • Australia: 3 to 20 business days( Ship from  Canberra)

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 or become defective within 30 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.

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