Hand & Neck & Shoulder Massager

$155.00
const TAG = "spz-custom-product-automatic"; class SpzCustomProductAutomatic extends SPZ.BaseElement { constructor(element) { super(element); this.variant_id = 'b0ea26d0-1f24-4fda-9bd0-a28c838e9ed9'; this.isRTL = SPZ.win.document.dir === 'rtl'; } static deferredMount() { return false; } buildCallback() { this.action_ = SPZServices.actionServiceForDoc(this.element); this.templates_ = SPZServices.templatesForDoc(this.element); this.xhr_ = SPZServices.xhrFor(this.win); this.setupAction_(); this.viewport_ = this.getViewport(); } mountCallback() { this.init(); // 监听事件 this.bindEvent_(); } async init() { this.handleFitTheme(); const data = await this.getDiscountList(); this.renderApiData_(data); } async getDiscountList() { const productId = '7a50ac64-76af-4837-93d4-e30eb3394946'; const variantId = this.variant_id; const productType = 'default'; const reqBody = { product_id: productId, variant_id: variantId, discount_method: "DM_AUTOMATIC", customer: { customer_id: window.C_SETTINGS.customer.customer_id, email: window.C_SETTINGS.customer.customer_email }, product_type: productType } const url = `/api/storefront/promotion/display_setting/text/list`; const data = await this.xhr_.fetchJson(url, { method: "post", body: reqBody }).then(res => { return res; }).catch(err => { this.setContainerDisabled(false); }) return data; } async renderDiscountList() { this.setContainerDisabled(true); const data = await this.getDiscountList(); this.setContainerDisabled(false); // 重新渲染 抖动问题处理 this.renderApiData_(data); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } async renderApiData_(data) { const parentDiv = document.querySelector('.automatic_discount_container'); const newTplDom = await this.getRenderTemplate(data); if (parentDiv) { parentDiv.innerHTML = ''; parentDiv.appendChild(newTplDom); } else { console.log('automatic_discount_container is null'); } } doRender_(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, renderData) .then((el) => { this.clearDom(); this.element.appendChild(el); }); } async getRenderTemplate(data) { const renderData = data || {}; return this.templates_ .findAndRenderTemplate(this.element, { ...renderData, isRTL: this.isRTL }) .then((el) => { this.clearDom(); return el; }); } setContainerDisabled(isDisable) { const automaticDiscountEl = document.querySelector('.automatic_discount_container_outer'); if(isDisable) { automaticDiscountEl.setAttribute('disabled', ''); } else { automaticDiscountEl.removeAttribute('disabled'); } } // 绑定事件 bindEvent_() { window.addEventListener('click', (e) => { let containerNodes = document.querySelectorAll(".automatic-container .panel"); let bool; Array.from(containerNodes).forEach((node) => { if(node.contains(e.target)){ bool = true; } }) // 是否popover面板点击范围 if (bool) { return; } if(e.target.classList.contains('drowdown-icon') || e.target.parentNode.classList.contains('drowdown-icon')){ return; } const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { node.classList.remove('open-dropdown'); }) // 兼容主题 this.toggleProductSticky(true); }) // 监听变体变化 document.addEventListener('dj.variantChange', async(event) => { // 重新渲染 const variant = event.detail.selected; if (variant.product_id == '7a50ac64-76af-4837-93d4-e30eb3394946' && variant.id != this.variant_id) { this.variant_id = variant.id; this.renderDiscountList(); } }); } // 兼容主题 handleFitTheme() { // top 属性影响抖动 let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ productInfoEl.classList.add('force-top-auto'); } } // 兼容 wind/flash /hero 主题 (sticky属性影响 popover 层级展示, 会被其他元素覆盖) toggleProductSticky(isSticky) { let productInfoEl = null; if (window.SHOPLAZZA.theme.merchant_theme_name === 'Wind' || window.SHOPLAZZA.theme.merchant_theme_name === 'Flash') { productInfoEl = document.querySelector('.product-info-body .product-sticky-container'); } else if (window.SHOPLAZZA.theme.merchant_theme_name === 'Hero') { productInfoEl = document.querySelector('.product__info-wrapper .properties-content'); } if(productInfoEl){ if(isSticky) { // 还原该主题原有的sticky属性值 productInfoEl.classList.remove('force-position-static'); return; } productInfoEl.classList.toggle('force-position-static'); } } setupAction_() { this.registerAction('handleDropdown', (invocation) => { const discount_id = invocation.args.discount_id; const nodes = document.querySelectorAll('.automatic-container'); Array.from(nodes).forEach((node) => { if(node.getAttribute('id') != `automatic-${discount_id}`) { node.classList.remove('open-dropdown'); } }) const $discount_item = document.querySelector(`#automatic-${discount_id}`); $discount_item && $discount_item.classList.toggle('open-dropdown'); // 兼容主题 this.toggleProductSticky(); }); } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, `${ TAG }.${ name }`, data || {}); this.action_.trigger(this.element, name, event); } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } } SPZ.defineElement(TAG, SpzCustomProductAutomatic);
Color:  1pcs
Quantity
/** @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);

Description

  • ✔️Partial or full refund depend on the situation
  • ✔️Handling time>> Priority is given to delivery after payment.

📣BUY MORE SAVE MORE!

SHIPPING WORLDWIDE.

💯Payments Via PayPal® and CreditCard.


Normal price: $320

Today's price: $155!

Product Description:


(Integrating "human-like ergonomics", "precision deep relaxation", and "hands-free convenience" for office, business trips, and home use—with after-sales guarantees included)

1. Core Selling Points: Solve Neck & Shoulder Soreness, Relax Deeply Anytime, Anywhere

🤦‍♀️ Tired of neck & shoulder stiffness caused by phone use (head down), prolonged sitting at work, or tiring business trips? This Airlandolists massager targets these pain points perfectly—bionic human-hand design + constant-temperature heating + 3-speed intensity adjustment—works like a professional masseuse. It covers everything from neck/shoulders to lower abdomen and legs, and its lightweight, portable design lets you relax without location limits!

2. Core Functions: Upgraded Details for Better Experience

① Human-Like 4D Deep Kneading: Precise Relaxation Without Discomfort

  • Adopts "Zoserx Bionic Hand" design—massage heads fit the natural curve of neck & shoulders. Made of 30° flexible silicone (soft yet tough), it precisely targets trapezius muscles and stiff knots in the neck/shoulders, avoiding the "hard, bone-jarring" issue of ordinary massagers.
  • 4D kneading mimics the rhythm of real human pressing and 推拿 (tuina) , relieving muscle tension deeply—more even and effortless than manual massage.

② 42-45℃ Constant-Temperature Heating: Warms Muscles to Boost Circulation

  • 2-speed precise temperature control (42℃ gentle warmth / 45℃ deep cold relief). Heating and massage work simultaneously to quickly ease the "tightness" in neck & shoulders from prolonged sitting. It’s extra comfortable in autumn and winter, avoiding "ineffective" low-temperature heating or "skin-scalding" high temperatures.

③ Hands-Free Adjustable Shoulder Straps: Free Your Hands for Practical Use

  • Added detachable, adjustable shoulder straps—no need to hold the massager with your hands after wearing it. Use it while working, traveling by car, or binge-watching at home—completely free your hands. You can relax your neck & shoulders while typing, reading documents, or applying a face mask.

④ 3 Speeds + Full-Body Use: One Massager for the Whole Family

  • 3 intensity levels (low/medium/high) to choose from: Low for daily relaxation, medium/high for deep fatigue relief—suitable for both the elderly and young people.
  • More than just neck & shoulders! It fits muscles in the back, lower abdomen, and legs—use it for warm abdominal relief during menstruation or post-workout leg relaxation. One massager replaces multiple, offering great value.

⑤ Lightweight & Long Battery Life: Take Your "Masseuse" On-the-Go

  • Net weight only 0.76kg, dimensions 5.5"L × 5.3"W × 1.7"H—smaller than a magazine, easy to fit in a commute bag or suitcase.
  • USB-C fast charging (cable included)—up to 60-70 minutes of continuous use on a full charge. No frequent charging needed for 3-4 day business trips; use it anytime during layovers or car rides.

3. Application Scenarios: Covers All Life Scenarios, Perfect for Gifting

Scenario Usage Description
🖥️ Office Sitting Wear the shoulder straps, use low speed + 42℃ heating—relieve neck stiffness while typing, avoiding "stiffness from prolonged sitting".
✈️ Business Trips/Commutes Put it in your carry-on, use medium speed for kneading during high-speed train/plane rides—ease back and leg soreness from long sitting.
🏠 Home Relaxation Use high speed to massage the lower abdomen/legs while lounging on the sofa watching shows; pair with 45℃ heating to relieve daily fatigue.
🎁 Holiday Gifting Lightweight design + practical functions—ideal for parents, office workers, or drivers. Solves the "no creative gift" problem.

4. Product Specification Table: Transparent Details for Informed Choices

Parameter Category Specifications Notes
Product Name Dushangart Hand & Neck & Shoulder Massager With heating / 3-speed adjustment, full-body use
Core Material 100% Silicone (massage heads) + ABS Body Skin-friendly, odorless, drop-resistant and durable
Massage Modes 4D Kneading (3 speeds: Low/Medium/High) Adapts to different relaxation needs
Heating Function 2-speed temperature control (42℃/45℃) Constant heating, no overheating risk
Battery Life & Charging 60-70 mins on full charge, USB-C fast charging (cable included) Compatible with ordinary phone chargers
Dimensions & Weight 5.5"L × 5.3"W × 1.7"H, Net Weight 0.76kg Portable, no burden when wearing
Package Includes 1 × Massager + 1 × USB-C Charging Cable + 1 × Adjustable Shoulder Strap Ready to use out of the box
SKU B0FWCQXFTZ Confirm the model to avoid wrong purchase