Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
1/8
Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
Dual Trigger Point Self-Massager for Neck & Shoulders
1/8

Dual Trigger Point Self-Massager for Neck & Shoulders

$14.99
$49.98
Save $34.99
ColorGreen
Please select a color
Quantity
  • Worldwide Express Shipping Available.
  • Ship within 24 Hours after Payment with Traceable Tracking Number for Each Order.
  • Easy Return, Fast Refund, 100% Money Back Guarantee.
  • 99.4% Reviewers Recommend This Product.

Get true pain relief by applying direct pressure on your bodies natural trigger points 😍
    • Relieves Chronic Pain – The two silicone balls help loosen up tense muscles by focusing on the main pressure trigger points in your body. You control how much pressure you apply, and adjust based on your tension levels. 
    • Targeted Deep Tissue Massage - Improve your blood circulation and relieve chronic pain in the neck, shoulders, back, and legs, by targeted your bodies trigger points where stress builds up. 
    • Lightweight & Portable – Lightweight enough to take with you while you travel & work - get relief anywhere and everywhere you go. 
    • Ergonomic Design – The unique design and trigger point activators are easily controlled and allow you to adjust your massage intensity without causing additional strain on your body. 
    • Save money on professional massages - Designed to mirror the benefits of a deep tissue shiatsu massage, only one daily 5-minute session can be more effective than routine masseuse visits. 

    Our Risk-Free 30 Day Guarantee

    • Worldwide Express Shipping Available.
    • Ship within 24 Hours after Payment with Traceable Tracking Number for Each Order.
    • Easy Return, Fast Refund, 100% Money Back Guarantee.
    • We truly believe that a good shopping experience makes our customers return to us.
    • We want you to be happy and satisfied, therefore, we offer a Risk-Free 30 Days Guarantee to exchange or refund your money.

    • If you do not have a positive experience for ANY REASON,we will do WHATEVER it takes to make sure you are 100% satisfied with your purchase. 
    • Buying items online can be a daunting task, so we want you to realize that there is absolutely ZERO RISK in buying something and trying it out.If you don't like it, no hard feelings we'll make it right.
    • We have 24/7 Tickets and Email Support. Please contact us if you need any assistance.
    Customer Reviews

    Here are what our customers say.

    Write a Review
    Customer Reviews
    Wow you reached the bottom
    Newest
    Most liked
    Highest ratings
    Lowest ratings
    ×
    class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
    The review would not show in product details on storefront since it does not support to.