See More
Tyres
Tools & Maintenance
Cleaners, Degreasers and LubricationSee More
Accessories
Components
Maintenance
E-bike Batteries and chargers
Skip to content
- Sell Your Bike /* Prevent CLS on page load */ :root { --announcement-height: calc(0.75rem * 1.1 * 1.5 + 10px * 2 + var(--BORDER-WIDTH)); } @media screen and (min-width: 768px) { :root { --announcement-height: calc(0.75rem * 1.1 * 1.5 + 10px * 2 + var(--BORDER-WIDTH)); } } @font-face { font-family: "Space Mono"; font-weight: 400; font-style: normal; font-display: swap; src: url("//projektride.co.uk/cdn/fonts/space_mono/spacemono_n4.9ee60bbbb57a3b43dbcb22a7f53e18140cb3b40f.woff2") format("woff2"), url("//projektride.co.uk/cdn/fonts/space_mono/spacemono_n4.0c1ebe3659065af9a832b4a469bdd1fdc9521024.woff") format("woff"); } #announcement-bar--sections--26542717862271__announcement-bar .announcement { --font-family: "Space Mono", monospace; --font-style: normal; --font-weight: 400; --adjust-text-size: 1.1; --padding: 10px; --letter-spacing: 0.1em; --line-height: 1.5; --text: #000000; --border: #000000; } #announcement-bar--sections--26542717862271__announcement-bar .flickity-enabled .ticker--animated, #announcement-bar--sections--26542717862271__announcement-bar .announcement__ticker { padding: 0 30px; } @media screen and (max-width: 767px) { #announcement-bar--sections--26542717862271__announcement-bar .announcement { --adjust-text-size: 1.1; } }WheelsContact Us See More
- Finance Complete Wheels Please call ahead to confirm bike hire availability for same-day bookings.


= LIQUID_CACHE_MAX_AGE) {
console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`);
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else {
console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`);
window._RestockRocketConfig.isLiquidCacheFresh = false;
}
}
function checkSettingsExpiry(settings) {
try {
if (!settings || !settings.updated_at) {
console.debug('STOQ - Invalid settings data structure');
return null;
}
if (!settings.cache) {
console.debug('STOQ - settings caching disabled');
return null;
}
if (settings.multi_language_enabled) {
if (!settings.translations) {
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
if (window._RestockRocketConfig.normalizedLocale &
Terms of Service
SETTINGS_CACHE_DURATION) {
console.debug('STOQ - settings changed recently, skipping cache');
return null;
}
return settings;
} catch (error) {
console.debug('STOQ - Error checking settings cache:', error);
return null;
}
}
function createRestockRocketContainer() {
const restockRocketContainer = document.createElement('div');
restockRocketContainer.id = 'restock-rocket';
document.body.appendChild(restockRocketContainer);
}
function createRestockRocketScript(scriptUrl) {
const restockRocketScriptElement = document.createElement('script');
restockRocketScriptElement.setAttribute('defer', 'defer');
restockRocketScriptElement.crossOrigin = 'anonymous';
restockRocketScriptElement.onerror = function () {
restockRocketScriptElement.onerror = null;
const plainScriptElement = document.createElement('script');
plainScriptElement.setAttribute('defer', 'defer');
plainScriptElement.src = scriptUrl;
document
Front Suspension
Rear Suspension