🎁Free Shipping on Orders Over $59🎉
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
1 / 15
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
Lemon Squeezer
14% OFF
Fnkus

Lemon Squeezer

$12.00 $13.99
0 sold
Color
Style
Qty 1000 in stock

Drizzle lemonade, more delicious

Easy to operate, very suitable for squeezing lemon and lime slices.

Avoid spilling juice on your fingers.

  • Ergonomic Design -- Elegant bird-like design, put in a lemon slice and you can drink lemonade in a flash with a simple press. A sophisticated gadget for the kitchen.

📌 Features

  • Cost Saving -- Lemons are squeezed directly from the fruit, modifying your recipes to provide the freshest juice for your delicious meals in the most magical way.
  • Environmentally Friendly -- With the acrylic lemon squeezer, you can keep the juice in the fridge for later use. Reduces food waste.
  • Easy to Clean -- Wipes clean with a soft towel in seconds. Rinse and dry after each use for longer use.
  • Widely Used-- Lemon squeezed directly from the fruit for shrimp, salmon, cocktails, teas, vegetables, chicken and beef to add flavour to your cuisine.

    📍Product Specifications

    • Size: 12*3.5*5.1cm
    • Material: PMMA/Stainless Steel

    🎁Package Includes

    • 1 x Acrylic Lemon Squeezer
    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);