Branch: 86 South Main Street, Pine Island
0 $0.00
items in your cartto quote To cart
Ooops no items were found.
Try something else.
Ok
Loading…
Search & Filter
Age Verification

Hand Tools

977 items found
Sort by
Vulcan 34497 Replacement Pick Handle, 36 in L, Fiberglass
Landscapers Select GS2103C Tree Pole Pruner, 1-1/4 in Cutting Capacity, Teflon Coated Blade, Steel Blade
Landscapers Select GS2103C-1 Saw Blade, 12 in Blade, 6 TPI, Carbon Steel Blade
Landscapers Select 34603 Square Point Shovel, Steel Blade, Wood Handle, 48 in L Handle
Fiskars 78806935C Triple-Claw Weeder, Stainless Steel Blade, Aluminum Handle, 39 in L Handle
Fiskars 96086966 Pruning Shear, 8 in Cutting Capacity, Stainless Steel Blade, Ergonomic, Soft-Grip Handle
Fiskars 393440-1001 Pruning Saw, Steel Blade, D-Shaped Handle
Fiskars 78616984J Blade Sharpener
Fiskars 394801-1001 Power Gear Lopper, 2 in Cutting Capacity, Bypass Blade, Steel Blade, Steel Handle, Round Handle
Fiskars 392861-1002 Hedge Shear, 10 in L Blade, Steel Blade, Aluminum Handle, Round Handle, 23 in OAL
Fiskars L5525 Power Gear Lopper, 1-3/4 in Cutting Capacity, Bypass Blade, Steel Blade, Steel Handle, Round Handle
Fiskars 394751-1002 Power Gear Lopper, 1-1/2 in Cutting Capacity, Bypass Blade, Steel Blade, Steel Handle, Round Handle
Total 977 products
show per page
SEARCH ×

/** * ⚡ EvoX AJAX Variant Handler – Optimized UX Version * Shows instant loading effect, polls DOM for update, and syncs product data */ (function () { // Pre-variant change hook (instant feedback) document.addEventListener('change', function (e) { if (e.target.matches('.product-option select, .variant-selector select')) { console.log("Variant change triggered – showing loading UI"); const productContainer = document.querySelector('.productView, .product'); if (productContainer) { productContainer.style.opacity = '0.5'; // Visual cue for loading productContainer.style.transition = 'opacity 0.2s ease-in-out'; } // EVOX Instant Variant Switcher (No AJAX Lag) const variantCache = { "305446082": { image: "https://cdn11.bigcommerce.com/s-xxxxx/images/stencil/1280x1280/products/1175/10474/calm-water.jpg", price: "$45.99", description: "Trex Enhance® Naturals in Calm Water finish with natural wood grain texture. Low-maintenance composite decking." }, "305446083": { image: "https://cdn11.bigcommerce.com/s-xxxxx/images/stencil/1280x1280/products/1175/10476/toasted-sand.jpg", price: "$48.49", description: "Trex Enhance® Naturals in Toasted Sand finish. Durable, splinter-free and fade-resistant decking." }, "305446084": { image: "https://cdn11.bigcommerce.com/s-xxxxx/images/stencil/1280x1280/products/1175/10478/rocky-harbor.jpg", price: "$48.49", description: "Rocky Harbor color in the Trex Enhance® Naturals collection. Rich tone, weather-resistant surface." }, "305446087": { image: "https://cdn11.bigcommerce.com/s-xxxxx/images/stencil/1280x1280/products/1175/10480/clam-shell.jpg", price: "$42.49", description: "Trex Enhance® Basics in Clam Shell finish. Budget-friendly, easy to clean, and stain-resistant." } }; // Listen for variant selection document.addEventListener('change', function (e) { if (e.target.name === 'VariantID') { const variantId = e.target.value; const variant = variantCache[variantId]; if (variant) { console.log("⚡ Switching to variant:", variantId); // Update image const imageEl = document.querySelector('.productView-image img, .product-image img'); if (imageEl) imageEl.src = variant.image; // Update price const priceEl = document.querySelector('.product-price .price, .productView-price .price'); if (priceEl) priceEl.textContent = variant.price; // Update description const descEl = document.querySelector('.product-description, .productView-description'); if (descEl) descEl.textContent = variant.description; } } }); } }); // EvoX callback after variant AJAX update window.evoXProductChangeCallback = function () { console.log("EvoX AJAX response received – polling for updated DOM"); const start = Date.now(); const timeoutLimit = 3000; // Fail-safe after 3s const interval = setInterval(() => { const imageEl = document.querySelector('.product-image img, .product-main-image img'); const priceEl = document.querySelector('.product-price .price, .pricing .price, .productView-price .price'); const descEl = document.querySelector('.product-description, .productView-description, .description'); if (imageEl && priceEl && descEl) { console.log("Updated DOM ready"); // Product Image const imageSrc = imageEl.src; console.log("New Image:", imageSrc); // Product Price const price = priceEl.textContent.trim(); console.log("New Price:", price); // Product Description const description = descEl.textContent.trim(); console.log("New Description:", description); // Optional: update mirrored DOM elements here // document.getElementById('myCustomPriceBox').innerText = price; // Restore full UI const productContainer = document.querySelector('.productView, .product'); if (productContainer) { productContainer.style.opacity = '1'; } clearInterval(interval); // Stop polling } if (Date.now() - start > timeoutLimit) { console.warn("Timeout: AJAX content did not load in time"); clearInterval(interval); } }, 50); // Fast polling every 50ms }; })();