Customer Loyalty Program

Loyalty Program

EFFECTIVE AS OF: 5th July 2025

We Value Loyalty & Reward It Generously

Our customers are valuable to us and because of this we try our best to reward them with a fair loyalty program with subsequent engagements with us for carpeting requirements. So when customers purchase more carpets from us that are based on a room-by-room scenario, we are happy to apply as generous a discount as we can to help ease the burden of installing new carpets to the same property (a three month gap between purchases apply as the qualifying condition).

This loyalty program extends only to domestic clients with carpet installations taking place at residential dwellings conducted only by our own contractors.

In order to qualify for future discounts, clients must have purchased a minimum of £500.00 worth of carpet at the initial purchase, and once the installation has taken place, your details will be saved on our systems as a qualifying client for all future carpet purchases.

The loyalty program applies to complete room/s only. Carpet purchases must be accompanied with underlay and not just carpet. Accessory purchases on their own are not included.

Thank you for your loyalty

MANAGEMENT

const marqueeString = "Please let our staff know that you are a returning customer to qualify for loyalty discounts."; const lines = marqueeString.split(//).map(line => line.trim()).filter(Boolean); const wrapper = document.getElementById('marquee-wrapper'); const content = document.getElementById('marquee-content'); let index = 0; function showMarqueeLine() { content.innerHTML = lines[index]; content.style.transition = 'none'; content.style.transform = `translateX(${wrapper.offsetWidth}px)`; // Wait for DOM update before measuring requestAnimationFrame(() => { const contentWidth = content.offsetWidth; const totalDistance = wrapper.offsetWidth + contentWidth; const speedPerPixel = 0.007; // Reduced for faster scrolling const duration = totalDistance * speedPerPixel; // Start animation content.style.transition = `transform ${duration}s linear`; content.style.transform = `translateX(-${contentWidth}px)`; // Schedule next line after animation completes setTimeout(() => { index = (index + 1) % lines.length; showMarqueeLine(); }, duration * 1000); }); } showMarqueeLine();