Mudguards

Bike Packing
Socks
Sell Your Bike

Contact Us
Header Image
Contact Us
MudguardsShop All New BikesBlog
Workshop Prices
Kids BikesLightsDelivery & Returns

Electric Bikes

Components

Shop All New Bikes
Hybrid / City BikesElectric BikesKids Bikes
Brake Spares

Maintenance

Cleaners, Degreasers and Lubrication

    Tubeless
  • gracefully use default locale from base fields if (window._RestockRocketConfig.normalizedLocale && !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } // Don't return null - continue using cache even for untranslated locales } const updatedAt = new Date(settings.updated_at); if (isNaN(updatedAt.getTime())) { console.debug('STOQ - Invalid updated_at date format in settings'); return null; } const age = Date.now() - updatedAt.getTime(); if (age <
  • 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.src = scriptUrl; document.body.appendChild(restockRocketScriptElement); } createRestockRocketContainer() console.debug('STOQ - extension activated') function applyTranslations(settings) { try { // Skip translation logic entirely if multi-language is not enabled if (!settings || <
  • ]; if (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No translated fields found for locale:', normalizedLocale); } delete settings.translations; return settings; } catch (eonfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, { headers } ) .then(function(response) { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { // If request failed and we have cached settings (even if expired), use them as fallback if (cachedSettings) { console.debug('STOQ - using expired cached settings as fallback'); initializeScripts(cachedSettings); } else { console.error('STOQ - failed to load settings:', error); } }) .catch(function(e) { console.error(e) }) } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); if(sett
  • 0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animation:.5s forwards slide-out-left;animation:.5s forwards slide-out-left}.restock-rocket-toast-right{right:0;transform:translateX(100%);-webkit-transform:translateX(100%);border-radius:10px 0 0 10px}.restock-rocket-toast-right.slide-out{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-right}@keyframes slide{100%{transform
Book a Service Open search bar
Track Your Service

<
Sell Your Bike window.appBlockPlacements ||= []; if (window.klarnaAppBlocksManager) { window.klarnaAppBlocksManager.push({ productVariants: [{"id":44140302500066,"title":"2.4L","option1":"2.4L","option2":null,"option3":null,"sku":"FRM","requires_shipping":true,"taxable":true,"featured_image":{"id":39357255188706,"product_id":8108874957026,"position":1,"created_at":"2023-06-25T10:50:02+01:00","updated_at":"2023-06-25T10:50:04+01:00","alt":null,"width":1286,"height":984,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at10.48.11.png?v=1687686604","variant_ids":[44140302500066]},"available":true,"name":"RACING FRAME PACK - 2.4L","public_title":"2.4L","options":["2.4L"],"price":9800,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31960255856866,"position":1,"preview_image":{"aspect_ratio":1.307,"height":984,"width":1286,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at10.48.11.png?v=1687686604"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44140302532834,"title":"4L","option1":"4L","option2":null,"option3":null,"sku":"FRL","requires_shipping":true,"taxable":true,"featured_image":{"id":39357255352546,"product_id":8108874957026,"position":3,"created_at":"2023-06-25T10:50:34+01:00","updated_at":"2023-06-25T10:50:36+01:00","alt":null,"width":1286,"height":910,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at10.50.27.png?v=1687686636","variant_ids":[44140302532834]},"available":true,"name":"RACING FRAME PACK - 4L","public_title":"4L","options":["4L"],"price":9800,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31960256020706,"position":3,"preview_image":{"aspect_ratio":1.413,"height":910,"width":1286,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at10.50.27.png?v=1687686636"}},"requires_selling_plan":false,"selling_plan_allocations":[]}], templateName: 'product', dataKey: 'top-strip-promotion-badge', storefrontCurrency: 'GBP', storefrontCountry: 'GB', storefrontLanguage: 'en', shopLocale: 'en', shopDomain: 'projektride.co.uk', variantPrice: '9800', cartPrice: '0', selector: 'shopify-osm-ASUorQUNvQS9uckFQO__klarna_on_site_messaging_app_block_8gNReH', topPadding: '0', bottomPadding: '0', }); } else { window.appBlockPlacements.push({ productVariants: [{"id":44140302500066,"title":"2.4L","option1":"2.4L","option2":null,"option3":null,"sku":"FRM","requires_shipping":true,"taxable":true,"featured_image":{"id":39357255188706,"product_id":8108874957026,"position":1,"created_at":"2023-06-25T10:50:02+01:00","updated_at":"2023-06-25T10:50:04+01:00","alt":null,"width":1286,"height":984,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at10.48.11.png?v=1687686604"," "4L","options":["4L"],"price":9800,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31960256020706,"position":3,"preview_image":{"aspect_ratio":1.413,"height":910,"width":1286,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at10.50.27.png?v=1687686636"}},"requires_selling_plan":false,"selling_plan_allocations":[]}], templateName: 'product', shopLocale: 'en', dataKey: 'top-strip-promotion-badge', storefrontCurrency: 'GBP', storefrontCountry: 'GB', storefrontLanguage: 'en', shopDomain: 'projektride.co.uk', variantPrice: '9800', cartPrice: '0', selector: 'shopify-osm-ASUorQUNvQS9uckFQO__klarna_on_site_messaging_app_block_8gNReH', topPadding: '0', bottomPadding: '0', }); } Size Small