null
// ========================================================================= // 5. CART DESKTOP — SPLIT TITLE ROW ABOVE SKU/QTY/PRICE // JS restructures each cart row so product name spans full width on // its own row, with SKU/qty/price on a second row below it. // Only runs on cart.php at >800px. Added: March 23 2026 // ========================================================================= (function fixCartDesktop() { if (!window.location.pathname.includes('cart.php')) return; if (!window.matchMedia('(min-width: 801px)').matches) return; function doFix() { document.querySelectorAll('.cart-item').forEach(function(row) { if (row.querySelector('.jrc-cart-row-top')) return; // already done var figure = row.querySelector('.cart-item-figure'); var title = row.querySelector('.cart-item-title'); var price = row.querySelector('.cart-item-price'); var qty = row.querySelector('.cart-item-quantity'); var total = row.querySelector('.cart-item-total'); var edit = row.querySelector('.cart-item-edit'); if (!figure || !title || !price || !qty || !edit) return; // Extract just the product name element from title var nameEl = title.querySelector('.cart-item-name, h2.cart-item-name, .cart-item-name a'); if (!nameEl) nameEl = title.querySelector('h2, h3'); // Pull SKU/options/change out of title into a new cell var skuCell = document.createElement('td'); skuCell.className = 'cart-item-block jrc-cart-sku-cell'; // Move everything from title except the name into skuCell Array.from(title.childNodes).forEach(function(node) { if (!nameEl || !nameEl.contains(node) && node !== nameEl) { skuCell.appendChild(node.cloneNode(true)); } }); // Leave only the name in title Array.from(title.childNodes).forEach(function(node) { if (node !== nameEl && !(nameEl && nameEl.parentNode === title && node === nameEl.parentNode)) { // keep only nameEl } }); // Clear title and re-append just the name title.innerHTML = ''; if (nameEl) title.appendChild(nameEl.cloneNode(true)); // Set colspan/rowspan figure.setAttribute('rowspan', '2'); title.setAttribute('colspan', '5'); title.style.cssText = 'padding-bottom: 4px !important;'; // Build top row from existing row row.classList.add('jrc-cart-row-top'); // Remove price/qty/total/edit from top row [price, qty, total, edit].forEach(function(el) { if (el) el.parentNode && el.parentNode.removeChild(el); }); // Build bottom row var bottomRow = document.createElement('tr'); bottomRow.className = 'cart-item jrc-cart-row-bottom'; bottomRow.appendChild(skuCell); if (price) bottomRow.appendChild(price); if (qty) bottomRow.appendChild(qty); if (total) bottomRow.appendChild(total); if (edit) bottomRow.appendChild(edit); row.parentNode.insertBefore(bottomRow, row.nextSibling); }); } doFix(); var attempts = 0; var interval = setInterval(function() { if (window.matchMedia('(min-width: 801px)').matches) doFix(); attempts++; if (attempts >= 10) clearInterval(interval); }, 300); var observer = new MutationObserver(function() { if (window.matchMedia('(min-width: 801px)').matches) doFix(); }); observer.observe(document.body, { childList: true, subtree: true }); })();

► Moerman

Spray Ray Complete Moerman

$106.92
SKU:
64-810
UPC:
00669893074118
MPN:
28550
Availability:
Current Stock:

Frequently Bought Together:

Moerman Spray Ray Complete Moerman, portable spraying system with blue hoses, bottles, and spray gun in a black carrying case.
Inc. Tax
Ex. Tax

Description

Spray Ray Complete Moerman

Spray-Ray: Clean Smarter, Not Harder

Leave the bucket in the truck! The Spray-Ray is the ultimate tool for professionals tackling high windows, long storefronts, and hot summer days. This lightweight, portable system lets you clean without stopping to rewet your strip washer—carry your solution on your hip and keep moving. Designed for efficiency, this system attaches seamlessly to any 28 mm - 35 mm circular extension pole, giving you the reach and control you need.

     Adjustable Spray Positions – Spray over or under with ease.
     Dual Bottle System – Includes two spray bottles for your preferred cleaning solution.
     30 Feet of Tubing – Allows for use on multi-story surfaces.
     Universal Compatibility – Attaches to the Excelerator 2.0 handle or the Gekko pad holder.
     Belt Clip – Keeps your solution on your hip for ease of movement.
     Manual Pump Control – Adjust spray force and amount for precision cleaning.

Upgrade your window cleaning routine with Spray-Ray—because every detail matters.

Order now and take control of your clean!


Details

Reviews

Q&A

Don't Miss Out