Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray
Multi-Purpose Bathroom Cleaner Spray

Multi-Purpose Bathroom Cleaner Spray

Price
$59.99
$41.99
Save  $18.00
Net Content
Please select a net content
Quantity
Worldwide shipping
Free returns
24/7 customer support
Secure payments

KEY FEATURES

POWERFUL STAIN REMOVAL - Formulated with surfactants, composite organic acids, and other ingredients, effectively tackles stubborn stains and inhibits mold growth, leaving surfaces clean and shining like new.

RUST REMOVAL CAPABILITY - This multi-purpose cleaner not only removes limescale, urine stains, yellow stains, soap scum, but also cleans rust, restoring the original shine of bathroom products.

QUICK AND CONVENIENT TO USE - The convenient spray bottle ensures effortless application. Foam or spray can be adjusted freely for different spraying methods in various scenarios.

HOW TO USE - Rotate the nozzle 90° to open, select the appropriate spraying method, aim at the stains, spray evenly, and wait for 1-3 minutes before wiping back and forth with a towel or sponge.

MULTI-PURPOSE CLEANING - From tiles to bathtubs, sinks to showers, our cleaner is versatile enough to handle all bathroom surfaces, providing comprehensive cleaning solutions.

SPECIFICATION

Ingredients: Surfactants, composite organic acids, corrosion inhibitors, additives

Net Content: 650ml

Package Includes: 1 * 650ml Multi-Purpose Bathroom Cleaner Spray 

NOTES

Please keep out of reach of children and pets, and do not ingest.

Do not use on natural marble surfaces, fully glazed polished surfaces, or galvanized surfaces.

Due to the variety of bathroom materials, it is recommended to perform a spot test before use.

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.