Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
1/11
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
Stubborn Stains Cleaner
1/11

Stubborn Stains Cleaner

$21.99
$39.00
Save 44%
🔥92.8% Of Customers Buy 2 Or More
Please select a 🔥92.8% of customers buy 2 or more
Quantity
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

FEATURES

  •  Powerful Decontamination: It is a penetrating foam cleaner that easily dissolves grime, stains, grease, soap scum, etc. Makes deep cleaning easier and keeps the bathroom sparkling.

  • Eliminates Odor-causing and Bacteria: It can kill most viruses and bacteria, preventing odors from emitting and bacteria from multiplying in the corners. Eliminates odor and deodorizes with a fresh scent.
  •  Safe to Use: The mild formula does not damage the glaze, is harmless to the human body, and can be used with confidence.

  • Wide Application: It is widely used in toilets, squatting pans, urinals, sinks, washbasins, tile walls, floors, glass, mirrors, bathtubs, faucets, etc. Great for bathroom and kitchen cleaning, saving you a lot of time and effort.

SPECIFICATION

  • Main Ingredients: Organic Acid, Surfactant, Plant Essence, Deionized Water, etc.

  • Net Content: 60ml

  • Weight: 85g

  • Size: 14*8.7*3.5 cm/ 5.5*3.42*1.37”

  • Package Includes: 1 * Multipurpose Bathroom Foam Cleaner

NOTE

  • Please allow a slight measurement deviation due to manual measurement.

  • Due to the different monitor and light effects, the actual color of the item might be slightly different from the color shown in the pictures.