Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains
Fabric Dry Cleaner for Removing Stains

Fabric Dry Cleaner for Removing Stains

Price
$51.99
$35.99
Save  $16.00
Volume
Please select a volume
Quantity
Worldwide shipping
Free returns
24/7 customer support
Secure payments

FEATURES

VERSATILE & POWERFUL STAIN REMOVER: Our fabric dry cleaner tackles a wide range of stains including tea, condiments, sweat, oil, juice, and red wine. Its powerful formula penetrates deep into fabrics to lift stains effectively.

WATERLESS CLEANING: Enjoy the convenience of cleaning without water. This dry cleaner leaves no residue and doesn't require rinsing, freeing up your time and hands for other tasks.

EFFORTLESS CLEANING: Experience easy and hassle-free stain removal with just one spray and one wipe. No need for elaborate washing or dismantling processes, making cleaning quick and convenient.

MILD FORMULA: This cleaner has been formulated with a mild formula that not only removes stains, but also freshens the air with a pleasant scent. It effectively cleans fabrics while providing a refreshing effect.

WIDE APPLICATION: Effective on wool, nylon, acrylic, linen, and cotton carpets, plus clothing, fabric sofas, curtains, and more. Ideal for diverse fabric types, providing convenient stain removal without water. 

SPEC

Volume: 500ML

Shelf Life: 3 Years

Package Include:1* Fabric Dry Cleaner for Removing Stains

NOTES

For best results, follow the usage instructions.

Keep out of reach of children.

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.