Returns and compliants

Filing a complaint

To file a complaint, follow the steps below:

01. Complaint letter

Write a letter of complaint and attach it to the shipment. The document should contain the following data: name and surname, e-mail address or correspondence address, telephone number and a detailed description of the product defect and the date of its discovery.

Remember to attach the wheel passport with proof of purchase. If the damage extends to the rim beads, include the tire and inner tube used when the damage occurred. In other cases, please deliver only wheels without tires, inner tubes, cassette, discs, valves, quickreelease skewers and computer magnet.

02. Shipping

Deliver the product under complaint together with the complaint letter in person or send it by courier to the following address:

Dandy Horse Wheels
Jordanowska 2a
04-204 Warsaw
Phone no.: +48798360370

The buyer covers the shipping costs of the wheels.

Returns

In accordance with the law, you have 14 days to return the goods. To withdraw from the contract and return a product purchased from us, please complete the return form below.

Wheels must be returned in the condition in which they were delivered to you: unused, with all additional elements, in the original packaging, and without any signs of mounting components (e.g. cassette, discs, tires, tubes, valves, counter magnet, etc.). The wheels must also be accompanied by a wheel passport and proof of purchase (receipt or invoice).

Please attach the completed return form to the shipment and provide your personal details and the bank account number to which we should return the money. The refund will be made within 14 days of receipt of the returned goods. The costs of returning the goods to our company’s headquarters are not refundable.

If the above conditions are not met, we reserve the right to refuse to accept the goods.

The product you wish to return, together with the above-mentioned documents and proof of purchase, should be delivered in person or sent by courier to the following address:

Dandy Horse Wheels
Jordanowska 2a
04-204 Warsaw, Poland
Phone no.: +48798360370

Wheelsets made for individual orders are not returnable. In the case of items manufactured according to customer specifications, point 3 of Article 38 of the Consumer Rights Act applies.

Thank you for your cooperation.

Grab an extra 5% off

Sign up for our newsletter to receive exclusive offers

(function() { const popupID = 4091; // <- Twoje ID popupu const requiredMs = 60000; // 60 sekund const startKey = "popupTimerStart_" + popupID; const closedKey = "popupClosed_" + popupID; const shownSessionKey = "popupShownSession_" + popupID; const maxWaitForElementorMs = 10000; // ile maksymalnie czekamy na elementorProFrontend // Jeśli zamknięto już popup (localStorage) — nie pokazuj więcej if (localStorage.getItem(closedKey)) return; // Ustal moment rozpoczęcia liczenia (persistuje między podstronami) let start = localStorage.getItem(startKey); if (!start) { start = Date.now(); localStorage.setItem(startKey, start); } else { start = parseInt(start, 10); } // Oblicz ile jeszcze brakuje do wymaganych 60s function msRemaining() { return Math.max(0, requiredMs - (Date.now() - start)); } // Funkcja pokazująca popup (gdy elementorProFrontend już gotowy) function tryShowPopup() { // jeśli użytkownik zamknął popup w międzyczasie — przerwij if (localStorage.getItem(closedKey)) return; // jeśli już pokazano w tej sesji — nie pokazuj ponownie if (sessionStorage.getItem(shownSessionKey)) return; // upewnij się, że obiekt elementora jest dostępny if (typeof elementorProFrontend !== "undefined" && elementorProFrontend && elementorProFrontend.modules && elementorProFrontend.modules.popup) { elementorProFrontend.modules.popup.showPopup({ id: popupID }); sessionStorage.setItem(shownSessionKey, "1"); } else { // jeśli elementor jeszcze nie załadowany — nic nie robimy tutaj console.warn("Elementor Pro popup module not ready yet."); } } // Czekaj na elementorProFrontend (polling), ale nie dłużej niż maxWaitForElementorMs function waitForElementorReady(cb) { const interval = 200; let waited = 0; const t = setInterval(function() { if (typeof elementorProFrontend !== "undefined" && elementorProFrontend && elementorProFrontend.modules && elementorProFrontend.modules.popup) { clearInterval(t); cb(true); } else { waited += interval; if (waited >= maxWaitForElementorMs) { clearInterval(t); cb(false); } } }, interval); } // Gdy popup zostanie zamknięty — zapisz to na stałe w localStorage (function bindCloseListener() { if (window.jQuery) { jQuery(document).on('elementor/popup/hide', function(event, id) { if (id === popupID) { localStorage.setItem(closedKey, "1"); } }); } else { // jeśli jQuery jeszcze nie dostępne, spróbuj za chwilę let tries = 0; const t = setInterval(function() { tries++; if (window.jQuery) { clearInterval(t); jQuery(document).on('elementor/popup/hide', function(event, id) { if (id === popupID) { localStorage.setItem(closedKey, "1"); } }); } else if (tries > 50) { clearInterval(t); } }, 200); } })(); // Teraz ustaw timeout — jeśli pozostały czas 0 => pokaż natychmiast (po upewnieniu się, że elementor jest gotowy) const remaining = msRemaining(); if (remaining <= 0) { waitForElementorReady(function(ready) { if (ready) tryShowPopup(); else { // jeśli elementor nie gotowy — spróbuj jeszcze raz po krótkim timeout setTimeout(tryShowPopup, 500); } }); } else { // ustaw timeout na pozostały czas; po upływie — spróbuj pokazać popup setTimeout(function() { waitForElementorReady(function(ready) { if (ready) tryShowPopup(); else { // jeśli elementor nie gotowy — spróbuj z małym opóźnieniem setTimeout(tryShowPopup, 500); } }); }, remaining); } // Dodatkowo: jeśli użytkownik zamknął popup w innej karcie/oknie, ten skrypt też to zauważy dzięki storage event window.addEventListener('storage', function(e) { if (e.key === closedKey && e.newValue) { // nic do zrobienia tutaj — warunki wyżej sprawią, że nic się nie pokaże } }); })();