šŸ’”Halloween Mini Pumpkin Night LightšŸŽƒ

$34.99 $47.99 Save $13.00
/** * ä¼˜ęƒ ē ē»„ä»¶ęØ”åž‹ē±» * å¤„ē†ä¼˜ęƒ ē ēš„ę˜¾ē¤ŗå’Œäŗ¤äŗ’é€»č¾‘ */ class SpzCustomDiscountCodeModel extends SPZ.BaseElement { constructor(element) { super(element); // å¤åˆ¶ęŒ‰é’®å’Œå†…å®¹ēš„ē±»å this.copyBtnClass = "discount_code_btn" this.copyClass = "discount_code_value" } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { // åˆå§‹åŒ–ęœåŠ” this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); } /** * ęø²ęŸ“ä¼˜ęƒ ē ē»„ä»¶ * @param {Object} data - ęø²ęŸ“ę•°ę® */ doRender_(data) { return this.templates_ .findAndRenderTemplate(this.element, Object.assign(this.getDefaultData(), data) ) .then((el) => { this.clearDom(); this.element.appendChild(el); // ē»‘å®šå¤åˆ¶ä»£ē åŠŸčƒ½ this.copyCode(el, data); }); } /** * čŽ·å–ęø²ęŸ“ęØ”ęæ * @param {Object} data - ęø²ęŸ“ę•°ę® */ getRenderTemplate(data) { const renderData = Object.assign(this.getDefaultData(), data); return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); return el; }); } /** * 清除DOM内容 */ clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } /** * čŽ·å–é»˜č®¤ę•°ę® * @returns {Object} é»˜č®¤ę•°ę®åÆ¹č±” */ getDefaultData() { return { isMobile: appDiscountUtils.judgeMobile(), isRTL: appDiscountUtils.judgeRTL(), image_domain: this.win.SHOPLAZZA.image_domain, copyBtnClass: this.copyBtnClass, copyClass: this.copyClass } } /** * å¤åˆ¶ä¼˜ęƒ ē åŠŸčƒ½ * @param {Element} el - å½“å‰å…ƒē“  */ copyCode(el) { const copyBtnList = el.querySelectorAll(`.${this.copyBtnClass}`); if (copyBtnList.length > 0) { copyBtnList.forEach(item => { item.onclick = async () => { // ē”®äæčŽ·å–ę­£ē”®ēš„å…ƒē“ å’Œå†…å®¹ const codeElement = item.querySelector(`.${this.copyClass}`); if (!codeElement) return; // čŽ·å–ēŗÆę–‡ęœ¬å†…å®¹ const textToCopy = codeElement.innerText.trim(); // å°čÆ•ä½æē”ØēŽ°ä»£APIļ¼Œå¦‚ęžœå¤±č“„åˆ™ä½æē”Øå¤‡ē”Øę–¹ę”ˆ try { if (navigator.clipboard && navigator.clipboard.writeText) { await navigator.clipboard.writeText(textToCopy); } else { throw new Error('Clipboard API not available'); } // ę˜¾ē¤ŗå¤åˆ¶ęˆåŠŸęē¤ŗ this.showCopySuccessToast(textToCopy, el); } catch (err) { console.error('Modern clipboard API failed, trying fallback...', err); // ä½æē”Øå¤‡ē”Øå¤åˆ¶ę–¹ę”ˆ this.fallbackCopy(textToCopy, el); } const discountId = item.dataset["discountId"]; // 跳转决策: is_redirection + link(åÆé€‰č¦†ē›–) const setting = { is_redirection: item.dataset["redirection"] === "true", link: item.dataset["link"], }; const landingUrl = `/promotions/discount-default/${discountId}`; const finalUrl = appDiscountUtils.resolveDiscountHref(setting, landingUrl); if (finalUrl && appDiscountUtils.inProductBody(this.element)) { this.win.open(finalUrl, '_blank', 'noopener'); } } }) } } /** * 使用 execCommand ēš„å¤åˆ¶ę–¹ę”ˆ * @param {string} codeText - č¦å¤åˆ¶ēš„ę–‡ęœ¬ * @param {Element} el - å½“å‰å…ƒē“  */ fallbackCopy(codeText, el) { const textarea = this.win.document.createElement('textarea'); textarea.value = codeText; // č®¾ē½®ę ·å¼ä½æę–‡ęœ¬ę”†äøåÆč§ textarea.style.position = 'fixed'; textarea.style.left = '-9999px'; textarea.style.top = '0'; // 添加 readonly å±žę€§é˜²ę­¢ē§»åŠØē«Æč™šę‹Ÿé”®ē›˜å¼¹å‡ŗ textarea.setAttribute('readonly', 'readonly'); this.win.document.body.appendChild(textarea); textarea.focus(); textarea.select(); try { this.win.document.execCommand('copy'); // ę˜¾ē¤ŗå¤åˆ¶ęˆåŠŸęē¤ŗ this.showCopySuccessToast(codeText, el); } catch (err) { console.error('Copy failed:', err); } this.win.document.body.removeChild(textarea); } /** * åˆ›å»ŗ Toast å…ƒē“  * @returns {Element} åˆ›å»ŗēš„ Toast å…ƒē“  */ createToastEl_() { const toast = document.createElement('ljs-toast'); toast.setAttribute('layout', 'nodisplay'); toast.setAttribute('hidden', ''); toast.setAttribute('id', 'discount-code-toast'); toast.style.zIndex = '1051'; return toast; } /** * ęŒ‚č½½ Toast å…ƒē“ åˆ° body * @returns {Element} ęŒ‚č½½ēš„ Toast å…ƒē“  */ mountToastToBody_() { const existingToast = this.win.document.getElementById('discount-code-toast'); if (existingToast) { return existingToast; } const toast = this.createToastEl_(); this.win.document.body.appendChild(toast); return toast; } /** * å¤åˆ¶ęˆåŠŸēš„ęé†’ * @param {string} codeText - č¦å¤åˆ¶ēš„ę–‡ęœ¬ * @param {Element} el - å½“å‰å…ƒē“  */ showCopySuccessToast(codeText, el) { const $toast = this.mountToastToBody_(); SPZ.whenApiDefined($toast).then(toast => { toast.showToast("Discount code copied !"); this.codeCopyInSessionStorage(codeText); }); } /** * å¤åˆ¶ä¼˜ęƒ ē ęˆåŠŸåŽč¦å­˜äø€ä»½åˆ°ęœ¬åœ°å­˜å‚Øäø­ļ¼Œč“­ē‰©č½¦ä½æē”Ø * @param {string} codeText - č¦å¤åˆ¶ēš„ę–‡ęœ¬ */ codeCopyInSessionStorage(codeText) { try { sessionStorage.setItem('other-copied-coupon', codeText); } catch (error) { console.error(error) } } } // ę³Øå†Œč‡Ŗå®šä¹‰å…ƒē“  SPZ.defineElement('spz-custom-discount-code-model', SpzCustomDiscountCodeModel);
/** * Custom discount code component that handles displaying and managing discount codes * @extends {SPZ.BaseElement} */ class SpzCustomDiscountCode extends SPZ.BaseElement { constructor(element) { super(element); // API endpoint for fetching discount codes this.getDiscountCodeApi = "\/api\/storefront\/promotion\/code\/list"; // Debounce timer for resize events this.timer = null; // Current variant ID this.variantId = "1fa63202-9500-4b86-a121-baa68dff5f29"; // Store discount code data this.discountCodeData = {} } /** * Check if layout is supported * @param {string} layout - Layout type * @return {boolean} */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** * Initialize component after build */ buildCallback() { this.templates_ = SPZServices.templatesForDoc(); this.viewport_ = this.getViewport(); // Bind methods to maintain context this.render = this.render.bind(this); this.resize = this.resize.bind(this); this.switchVariant = this.switchVariant.bind(this); } /** * Setup component when mounted */ mountCallback() { this.getData(); // Add event listeners this.viewport_.onResize(this.resize); this.win.document.addEventListener('dj.variantChange', this.switchVariant); } /** * Cleanup when component is unmounted */ unmountCallback() { this.viewport_.removeResize(this.resize); this.win.document.removeEventListener('dj.variantChange', this.switchVariant); // ęø…é™¤å®šę—¶å™Ø if (this.timer) { clearTimeout(this.timer); this.timer = null; } } /** * Handle resize events with debouncing */ resize() { if (this.timer) { clearTimeout(this.timer) this.timer = null; } this.timer = setTimeout(() => { if (appDiscountUtils.inProductBody(this.element)) { this.render(); } else { this.renderSkeleton(); } }, 200); } /** * Handle variant changes * @param {Event} event - Variant change event */ switchVariant(event) { const variant = event.detail.selected; if (variant.product_id == '823e20f0-c1b3-42f0-8ff9-c4330f9a912d' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } /** * Fetch discount code data from API */ getData() { if (appDiscountUtils.inProductBody(this.element)) { const reqBody = { product_id: "823e20f0-c1b3-42f0-8ff9-c4330f9a912d", variant_id: this.variantId, product_type: "default", } if (!reqBody.product_id || !reqBody.variant_id) return; this.discountCodeData = {}; this.win.fetch(this.getDiscountCodeApi, { method: "POST", body: JSON.stringify(reqBody), headers: { "Content-Type": "application/json" } }).then(async (response) => { if (response.ok) { let data = await response.json(); if (data.list && data.list.length > 0) { data.list[0].product_setting.template_config = JSON.parse(data.list[0].product_setting.template_config); // Format timestamps to local timezone const zone = this.win.SHOPLAZZA.shop.time_zone; data.list = data.list.map(item => { if(+item.ends_at !== -1) { item.ends_at = appDiscountUtils.convertTimestampToFormat(+item.ends_at, zone); } item.starts_at = appDiscountUtils.convertTimestampToFormat(+item.starts_at, zone); return item; }); } this.discountCodeData = data; this.render(); } else { this.clearDom(); } }).catch(err => { console.error("discount_code", err) this.clearDom(); }); } else { this.renderSkeleton(); } } /** * Clear component DOM except template */ clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } /** * Render discount codes with formatted dates */ render() { // Render using discount code model SPZ.whenApiDefined(document.querySelector('#spz_custom_discount_code_model')).then(renderApi => { renderApi.doRender_({ discountCodeData: this.discountCodeData }) }).catch(err => { this.clearDom(); }) } renderSkeleton() { // Render template for non-product pages this.templates_ .findAndRenderTemplate(this.element, { isMobile: appDiscountUtils.judgeMobile() }) .then((el) => { this.clearDom(); this.element.appendChild(el); }) .catch(err => { this.clearDom(); }); } } // Register custom element SPZ.defineElement('spz-custom-discount-code', SpzCustomDiscountCode);
Quantity
Share the love
Free worldwide shipping
Free returns
Sustainably made
Secure payments
Description

Flash Sale! Limited stock available at this promotional price!

  •  Secure Payment – SSL encryption + PayPal/Credit Card for safe, worry-free transactions

  •  Money-Back Guarantee – 30-day hassle-free full refund, zero risk after purchase

  • āœ… Quality Assurance – 100% quality inspection on every order, every item strictly checked

  •  Customer Satisfaction – 15-day unconditional support, contact us anytime if you're not satisfied


Why not grab a multi-functional pumpkin silicone night light to spice up your Halloween decor and accompany your kids through peaceful nights?

 

✨ What makes our pumpkin pat lamp stand out from ordinary boring bedside night lights?

Adorable cartoon pumpkin appearance with unique rope leg design
Round plump pumpkin shell printed with classic jack-o'-lantern spooky smile face, matched with two twisted rope legs and mini shoe ornaments. Soft matte orange silicone body releases warm gentle yellow glow, blending cute playful style with classic Halloween festive vibe, looks lovely as both lighting and table ornament.

Safe soft silicone body with touch pat control & adjustable brightness
Made of skin-friendly food-grade soft silicone, squeezable and stress-relieving, no hard sharp edges to hurt kids. Tap the lamp to switch 3 brightness levels for sleep, night feeding and reading separately. Built-in 30-minute auto-off timer avoids all-night power waste, protecting children’s eyes during bedtime.

Rechargeable Type-C design with dual-purpose phone holder function
Built-in rechargeable battery with convenient Type-C fast charging port for cyclic repeated use. The two shoe legs form a stable stand that can prop up all sizes of mobile phones, combining night light, Halloween decor and desktop phone bracket into one compact multi-use item.

Multi-Scenario Usage

  • Kids bedroom bedside sleep companion night light
  • Halloween tabletop, mantel and shelf festive decoration
  • Living room desk multi-functional phone stand lamp
  • Nursery room night feeding dim lighting
  • Halloween party gift bag filler and table centerpiece
  • Camping, travel portable mini warm light

Ideal Gift Choices

Perfect holiday gift for Halloween lovers, toddlers, kids, silicone decor collectors, parents of young children, housewarming, Halloween party, birthday and Thanksgiving seasonal presents.

Product Specs

  • Main Material: Soft safe silicone
  • Charging Port: Universal Type-C USB charging
  • Light Modes: 3 adjustable brightness levels + 30min auto-off timer
  • Feature: Touch pat control, squeezable stress relief, built-in phone stand

ā“ FAQ

Q: Is the silicone surface safe for toddlers to squeeze and chew lightly?
Non-toxic soft silicone without harmful substances, safe for kids’ daily touch.
 
Q: How long can the light work after a full Type-C charge?
Low brightness mode supports up to 10 hours of continuous lighting.
 
Q: Does the warm glow cause eye strain for children sleeping beside it?
Dim warm yellow light without harsh flicker, gentle enough for night sleep.
 
Q: Can this pumpkin lamp hold large smartphones steadily as a stand?
Thick shoe legs form a stable bracket that fits most standard mobile phone models.

ļø User Real Reviews

⭐⭐⭐⭐⭐ "This pumpkin night light is my kid’s favorite Halloween item! The squeezable silicone is super fun, three brightness settings fit bedtime and night feeds perfectly."
 
⭐⭐⭐⭐⭐ "Dual function as a phone stand is such a clever design, it decorates my mantel for Halloween and lights my bedroom every night."
 
⭐⭐⭐⭐⭐ "The 30-minute auto shut-off timer saves electricity, Type-C charging is convenient and fast, no need to replace disposable batteries."
 
⭐⭐⭐⭐⭐ "I bought this as a Halloween gift for my niece, she loves the cute rope leg design and carries it everywhere around the house."
 
⭐⭐⭐⭐⭐ "Soft warm glow won’t disturb sleep, no sharp edges so I totally feel safe leaving it beside my toddler’s bed all night long."

WHY USā“

We work directly with manufacturers all over the world to ensure the best quality of our products. We have a Quality Control department which helps us to keep our promise!
  • Price is always competitive.
  • Awesome Customer Service.
  • Amazing products along with High Quality.
  • Read reviews from our lovely customers.

Worldwide Shipping✈  

Please note that shipping is insured. However, you may receive your items earlier. Tracking Numbers will ALWAYS be sent so you can track it every step of the way! Cool things are worth waiting for!

100% Risk-Free Purchase 

If the product you received is damaged, don't worry. Just hit the Contact Us button and send us a message, and we will make it right by offering you a replacement or refund. It 100% Simple & Risk-Free process.

Our Warehouse

Please consider any holidays that might impact delivery times. Please consider the transportation methods and unexpected situations that may affect the delivery time.