2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
8/8
2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
2 IN 1 TRAVEL MASK AND PILLOW
8/8

2 IN 1 TRAVEL MASK AND PILLOW

$14.99
$27.99
Save $13.00
ColorDark gray
Please select a color
Quantity
  • BEST PILLOW FOR TRAVEL: 2-in-1 travel pillow with eye mask is made to support your neck while the eye mask is to prevent disturbing by strong glare, a full set to guarantee your good sleep during travelling
  • SUPER COZY! YOU WILL LOVE IT. Made of premium cotton, the pillow is soft and comfortable to lie on and touch, with no skin allergy risk. The silicone made earplug so soft and small that you even could not notice it, no any discomfort when inserting.
  • COMFORTABLE NECK PILLOW.The unique ergonomic design provides you superior neck support, stops neck from leaning on neighborhood, relieves neck pain during travel.
  • PERFECT GIFT. Help travelers rest well in car, train or airplane, would be very considerate and caring gift for your friends with countless business trip, and saving their energy for more important agendas.

Our 2 In 1 Travel mask and Pillow?comes with 1 x travelling pillow with eye mask +1 pair of earplug, a full set to guarantee your good sleep during travelling.
Made of pure cotton, it is soft and comfortable to lie on. By supporting your neck and stop disturbing from strong glare, noise blocked.
Both being compact and light, portable for travelling.?
Order soon if in need.?

Feature?
material: cotton + silicone?
size: 9.45¡Á5.11¡Á5.51inch?
weight: 0.24lb

?

    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.