Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner
Descaling Fragrance Toilet Cleaner

Descaling Fragrance Toilet Cleaner

Price
$19.99
$9.99
Save  $10.00
Fragrance
Please select a fragrance
Buy more save more
Please select a buy more save more
Quantity
Worldwide shipping
Free returns
24/7 Service
Payment Security
  • TIPS: All goods are authentic, with genuine patents, counterfeit must be investigated! Customers, please identify our products!!!
  • 😊If you are not satisfied with the goods you received, please contact us within 15 days after receiving, we will give you the best help!
  • 🚢 Shipping>>Worldwide express shipping available.
  • 🔥98.9% of customers buy 2 or more

FEATURES

POWERFUL DESCALING ACTION: Formulated to effectively dissolve hard water stains, limescale, and mineral deposits, ensuring your toilet remains clean and free from buildup for a sparkling finish.

LONG-LASTING FRAGRANCE: Infused with a refreshing fragrance, this toilet cleaner not only cleans but also leaves your bathroom smelling fresh and inviting, eliminating unpleasant odors.

99.9% ANTIBACTERIAL FORMULA: This toilet cleaner kills 99.9% of bacteria and germs, providing a hygienic clean that helps protect your family from harmful pathogens.

EASY APPLICATION: The convenient basket design allows for easy dissolution at the toilet rim, making it simple to target tough stains without mess. Suitable for all toilet types, including standard and low-flow models, this cleaner provides effective results in various settings, from homes to commercial restrooms.

ECO-FRIENDLY INGREDIENTS: Made with biodegradable and environmentally friendly components, this cleaner is safe for both your plumbing and the planet, letting you clean with peace of mind.

SPECIFICATION

Net: 50g

Fragrance: Grapefruit, Green Lemon, Truffle

Package Includes: 1 * Descaling Fragrance Toilet Cleaner

NOTE

Store in a cool dry place and avoid direct sunlight.

Keep out of reach of children.

Before using this product, carefully observe and locate the location where the maximum amount of water comes out of the toilet and secure it to the water outlet.

Monthly replacement is recommended.

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.