Spend
£50

to qualify for free shipping

Congratulations! Your order qualifies for free shipping
Tubeless
Cart
Open navigation menu

Custom Builds for sale Custom Builds
Electric
★★★★★great shop. Traded in my bike for a second hand road bike. Great service, good prices. Would definitely recommend.Theo Golden The two guys that welcomed me were amazing! Very spot on with all their advice and extremely helpful, as well as honest. What more can you ask for from a bike shop? 🤔😜👍Antonio Iglesias
★★★★★
These guys are great! Super helpful, affordable, and friendly. They don't talk down to you as a woman which I always appreciate!Tiki Muir
Iain Orr <
Open search bar Header Image < ★★★★★
William Gui
Open search bar Ben Ross
Home
HAVE A QUESTION? Bikes  
We love chatting about your next bike adventure. Get in touch and we can go through the perfect bike along with any accessories needed to get you to your final destination. If you are local to our branch in Edinburgh, please pop in for a coffee and feel free to test ride the bikes in stock.New Bikes
<
No filters available
Home
settings: settings } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } } function updateCartSellingPlans() { // Wait for the API to be available with retries const maxRetries = 10; const retryDelay = 500; function attemptCartCheck(attempt = 1) { if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) { window._RestockRocket.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } else if (attempt maxRetries) { console.debug(`STOQ - API not ready, retry ${attempt}/${maxRetries}`); setTimeout(() => attemptCartCheck(attempt + 1), retryDelay); } else { console.debug('STOQ - API not loaded after max retries, skipping cart selling plan check'); } } attemptCartCheck(); }