Hire 0) { console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else if (liquidCacheAge Hire

This site has limited support for your browser. We recommend switching to Edge, Chrome, Safari, or Firefox. = 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; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no

age = Date.now() - updatedAt.getTime(); if (age
Bikes 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 || Bikes
Tubeless
Tools & Maintenance
Clothing and Protection

Header Image
< View all
li class="result">
Open carta href="{{ it.product.url }}" class="result__image-link" aria-label='{{ it.product.title }}'>

li class="result result--full"> li class="result result--full">    

p class="result__title">{{ it.item.text }} p class="result__title">{{ it.item.text }}

> SKU: KN23B-DW-SM-RE >

> > Increase quantity SKU: AL22MNEVIS2-99-S
img src="//projektride.co.uk/cdn/shop/files/20-OPEN-BIKE-rack-arriere17342_600x375_66185b6a-2162-4a1f-996e-9a12b42055fb_2048x2048.png?v=1760793482" alt="UTO Afternoon Pro20 Electric Bike" class="mfp-zoom-in-cur" id="68214567240063">

{ "@context": "http://schema.org", "@type": "Organization", "name": "ProjektRide","sameAs": [ null, null, null, null, null, null, null ], "url": "https:\/\/projektride.co.uk" } Size { "@context": "http://schema.org", "@type": "Organization", "name": "ProjektRide","sameAs": [ null, null, null, null, null, null, null ], "url": "https:\/\/projektride.co.uk" }
Size
label for="quantity--template--15326745395426__main">Quantity
>
console.log("pr-product-page");Smallinput type="number" name="quantity" id="quantity--template--15326745395426__main" value="1" min="1"> console.log("pr-product-page");
MediumAdd to cart
img src="//projektride.co.uk/cdn/shop/files/20-FOLD-BIKE-plie13464_600x375_bba67082-738e-43d8-b6b7-0a8a6809c9ef_2048x2048.png?v=1760793505" alt="UTO Afternoon Pro20 Electric Bike" class="mfp-zoom-in-cur" id="68214572122495"> Large
SubmitExtra Large img src="//projektride.co.uk/cdn/shop/files/20-OPEN-BIKE-rack-arriere17341_600x375_55850c8d-e752-4d0c-8f0e-7242a5bbfd03_2048x2048.png?v=1760793517" alt="UTO Afternoon Pro20 Electric Bike" class="mfp-zoom-in-cur" id="68214575890815">
Small - Sold Out window.appBlockPlacements ||= []; if (window.klarnaAppBlocksManager) { window.klarnaAppBlocksManager.push({ productVariants: [{"id":45767010549986,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"BTE8016","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Shimano Steps battery 630Wh, frame down tube mount - BT-E8016","public_title":null,"options":["Default Title"],"price":71900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","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: '71900', cartPrice: '0', selector: 'shopify-osm-ASUorQUNvQS9uckFQO__klarna_on_site_messaging_app_block_8gNReH', topPadding: '0', bottomPadding: '0', }); } else { window.appBlockPlacements.push({ productVariants: [{"id":45767010549986,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"BTE8016","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Shimano Steps battery 630Wh, frame down tube mount - BT-E8016","public_title":null,"options":["Default Title"],"price":71900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","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: '71900', cartPrice: '0', selector: 'shopify-osm-ASUorQUNvQS9uckFQO__klarna_on_site_messaging_app_block_8gNReH', topPadding: '0', bottomPadding: '0', }); } Extra Extra Large RIDE CONFIDENT Small - £65.00 GBPRIDE CONFIDENT #ProductTemplate--template--15326745395426__main { background: #ffffff; } .shop-pay-terms { --payment-terms-background-color: #ffffff } #ProductTemplate--template--15326745395426__main { background: #ffffff; } .shop-pay-terms { --payment-terms-background-color: #ffffff }
[]
Would you like to add on any equipment? Hire Lazer Compact Helmet
< Submit
label for="quantity--template--15326745395426__main">Quantity< img src="//projektride.co.uk/cdn/shop/files/Rail99XOAXS-25-48472-D-Primary_2048x2048.jpg?v=1751647642" alt="Trek Rail+ 9.9 X0 AXS T-Type Gen 5" class="mfp-zoom-in-cur" id="66723262431615"> Hire Lazer Compact Helmet
>
Green£0.00
Contact Us
BlogThe new Pro frame is designed with a place to secretly hide an Apple or Android air tag so you will be able to track and locate your bike.
Cycle to WorkWheels
div class="featured-image__bg bg-pos-center-center" style="background-image: url('//projektride.co.uk/cdn/shop/files/2571D9FF-E9AE-4004-9A55-C7FD4DD999D6_2048x.jpg?v=1640941114');">Delivery & Returns

> All wheels are now made in UTO's (Ex Eovolt) own factory using extruded rims made in France. This process has made the wheels significantly lighter with a saving of 200gms per wheel.

Other features
INFORMATION
< 58TT LENGTH translation data in metafield // Metafield hasn't been backfilled yet - force refresh console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh'); return null; } // Translations object exists in metafield - cache is valid // If current locale isn't translated, applyTranslations will 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 span class="visually-hidden">HIRE - BIKE PACKING BUNDLE 550