The Wash Day Throne
The Wash Day Throne
The Wash Day Throne
The Wash Day Throne

The Wash Day Throne

$49.95
Tax included.

“Instantly cool, vibrant, and my horse loves it!”

James L., Horse Owner

SIZE
Only 0 left in stock!

Pickup available at 578 Coorong Avenue, Red Cliffs, VIC

Usually ready in 24 hours

same day shipping for orders before 11:30am AEST

30 day money back guarantee

Satisfaction guaranteed or your money back

Product Description

Your wash bag. Your bucket organiser. Your wash day MVP.

Meet The Wash Day Throne™ – the wash bag designed by horse people for horse people.

Whether you're heading to the wash bay, a competition or simply bathing your horse at home, this versatile bag keeps your wash day essentials together and ready to go.

Here's the clever part...

Use it as a carry bag for all your favourite Horse Queened products, or simply slide it over a standard 12L bucket to instantly create an organised wash station.

No more bottles falling over.
No more digging through buckets.
No more wash day chaos.

Why You'll Love It

  • 👑 Fits securely over most standard 12L buckets.
  • 👑 Doubles as a carry bag for your wash day essentials. 
  • 👑 Multiple pockets to keep bottles, brushes and accessories organised.
  • 👑 Strong, durable construction made for everyday horse life.
  • 👑 Easy to grab and go for home, shows or clinics.
  • 👑 Keeps everything within arm's reach while you wash.

Perfect For

  • Shampoo
  • Coat sprays
  • Conditioners
  • Brushes
  • Sponges
  • Hoof care
  • Mane and tail products
  • Towels
  • Clippers and accessories
  • All your Horse Queened favourites

Whether you carry it on its own or slip it over your bucket, The Wash Day Throne™ keeps everything organised so you can spend less time searching and more time enjoying your horse.

Because every Queen deserves a throne... even on wash day. 💜

How to Use

+
* Wipe clean with a damp cloth after use.
* For heavier dirt, hand wash with mild soap and cold water.
* Allow to air dry completely before storing.
* Do not bleach or use harsh chemicals.
* Do not tumble dry or iron.
* Store in a cool, dry place away from direct sunlight when not in use.
* Empty the bag after each wash day to help keep it clean and looking its best.

Ingredients & Safety

+
* Always ensure the bag is securely fitted before lifting or carrying.
* Do not overload the bag beyond what can be carried safely.
* When fitted over a bucket, place the bucket on a stable, level surface before use.
* Keep away from open flames and excessive heat.
* Store in a clean, dry place when not in use.
* This product is designed for carrying grooming and wash day accessories. It is not intended to support body weight or be used as a seat or step.
* Keep out of reach of young children when unattended.

Lightweight gel with a fresh, cooling feel

Subtle herbal scent — no overpowering odours

Non-greasy, fast-absorbing formula

Gentle on sensitive skin

Made in Australia with natural ingredients

FREQUENTLY ASKED QUESTIONS

Whether you've got questions about your gear, shipping, or anything in between - we've got answers. And if we don't, we'll get back to you fast.

When will my order ship?

Same day shipping if placed before 11.30am AEST, fast daily shipping

How do I track my order?

Head to our Track Order page and enter your email and order number. You’ll get real-time updates on your shipment status.

What’s your return policy?

We offer a 30-day performance guarantee. If you’re not satisfied with your purchase, reach out to us and we’ll make it right - no questions asked.

Do you offer international shipping?

Yes! We ship worldwide. Shipping rates and delivery times are calculated at checkout based on your location.

How do I contact customer support?

Use the contact form from the “Support” page. Please allow 24 business hours for a response from our support team.

are your products safe?

Sure! All natural, cosmetic formulas, external use only, not a veterinary product.

Recently viewed

/* Product zoom: mouse-follow + touch toggle Works with: product-zoom-element[data-magnify], .product-zoom--wrapper, .product-zoom--enlarged */ (() => { const ZOOM_ATTR = 'data-magnify'; const roots = Array.from(document.querySelectorAll(`product-zoom-element[${ZOOM_ATTR}]`)); if (!roots.length) return; roots.forEach(root => { // ensure root is focusable for keyboard access if (!root.hasAttribute('tabindex')) root.setAttribute('tabindex', '0'); const wrapper = root.querySelector('.product-zoom--wrapper'); const enlarged = root.querySelector('.product-zoom--enlarged'); if (!wrapper) return; const rawZoom = parseFloat(root.getAttribute('data-magnify')) || 1.7; let effectiveZoom = rawZoom; // may be increased if high-res image is larger let isZoomed = false; // compute effective zoom based on the natural size of the enlarged image (if available) function updateEffectiveZoom() { try { if (enlarged && enlarged.naturalWidth && root.offsetWidth) { const imageRatio = enlarged.naturalWidth / root.offsetWidth; // we want at least rawZoom but if enlarged image is bigger, allow larger zoom effectiveZoom = Math.max(rawZoom, imageRatio); } else { effectiveZoom = rawZoom; } } catch (err) { effectiveZoom = rawZoom; } } if (enlarged) { if (enlarged.complete) updateEffectiveZoom(); else enlarged.addEventListener('load', updateEffectiveZoom, { once: true }); // also update on window resize (image/container geometry changes) window.addEventListener('resize', () => { updateEffectiveZoom(); }); } // Utility: set transform-origin and scale for enlarged image function setOriginAndScale(clientX, clientY) { const rect = root.getBoundingClientRect(); // clamp values 0..100 const x = Math.min(100, Math.max(0, ((clientX - rect.left) / rect.width) * 100)); const y = Math.min(100, Math.max(0, ((clientY - rect.top) / rect.height) * 100)); if (enlarged) { enlarged.style.transformOrigin = `${x}% ${y}%`; enlarged.style.transform = `scale(${effectiveZoom})`; } // slight parallax: move wrapper transform-origin to follow cursor (subtle) wrapper.style.transformOrigin = `${x}% ${y}%`; } // Activate zoom (add class, set scale) function activateZoom(clientX, clientY) { updateEffectiveZoom(); root.classList.add('is-zoomed'); isZoomed = true; if (typeof clientX === 'number' && typeof clientY === 'number') { setOriginAndScale(clientX, clientY); } else { // center if no coordinates provided if (enlarged) { enlarged.style.transformOrigin = `50% 50%`; enlarged.style.transform = `scale(${effectiveZoom})`; } wrapper.style.transformOrigin = `50% 50%`; } } // Deactivate zoom (reset transforms) function deactivateZoom() { root.classList.remove('is-zoomed'); isZoomed = false; if (enlarged) { enlarged.style.transform = 'scale(1)'; enlarged.style.transformOrigin = '50% 50%'; } wrapper.style.transform = 'scale(1)'; wrapper.style.transformOrigin = '50% 50%'; } // Mouse handlers function onMouseMove(e) { if (!isZoomed) activateZoom(e.clientX, e.clientY); else setOriginAndScale(e.clientX, e.clientY); } function onMouseEnter(e) { // activate but don't force a jump — set origin from event activateZoom(e.clientX, e.clientY); } function onMouseLeave() { deactivateZoom(); } // Touch handlers (simple toggle on first tap; move origin while zoomed) let lastTouchEnd = 0; function onTouchStart(e) { if (e.touches.length > 1) { // ignore pinch for now — allow browser default return; } const t = e.touches[0]; // toggle on tap if (!isZoomed) { activateZoom(t.clientX, t.clientY); } else { // if already zoomed, just update origin (user may pan) setOriginAndScale(t.clientX, t.clientY); } } function onTouchMove(e) { if (!isZoomed || e.touches.length === 0) return; const t = e.touches[0]; setOriginAndScale(t.clientX, t.clientY); } function onTouchEnd(e) { // if touchend with no subsequent touches, keep zoom active; second tap will close. // implement a quick double-tap-to-close const now = Date.now(); if (now - lastTouchEnd < 300) { // double-tap detected -> close deactivateZoom(); } lastTouchEnd = now; } // Keyboard (Enter/Space toggles) function onKeyDown(e) { if (e.key === 'Enter' || e.key === ' ' || e.key === 'Spacebar') { e.preventDefault(); if (!isZoomed) activateZoom(root.getBoundingClientRect().left + root.offsetWidth / 2, root.getBoundingClientRect().top + root.offsetHeight / 2); else deactivateZoom(); } else if (e.key === 'Escape' && isZoomed) { deactivateZoom(); } } // Bind events root.addEventListener('mousemove', onMouseMove); root.addEventListener('mouseenter', onMouseEnter); root.addEventListener('mouseleave', onMouseLeave); // touch: use passive listeners where safe root.addEventListener('touchstart', onTouchStart, { passive: true }); root.addEventListener('touchmove', onTouchMove, { passive: true }); root.addEventListener('touchend', onTouchEnd, { passive: true }); root.addEventListener('keydown', onKeyDown); // Clean up in case element is removed (optional) // If you dynamically remove elements, consider removing listeners to avoid leaks. // If you dynamically remove elements, consider removing listeners to avoid leaks. // If you dynamically remove elements, consider removing listeners to avoid leaks. }); })();