Track Your Service
Open navigation menuCustom Build Inspiration
Parts & ComponentsSELL
RIDE CONFIDENTSee MoreOpen search bar
★★★★★Clothing and Protection
Grips & Bar-Tape<
Rear Suspension
Helmets
onfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
window._RestockRocketConfig.host = 'https://app.restockrocket.io'
const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds
function checkSettingsExpiry(settings) {
try {
if (!settings || !settings.updated_at) {
console.debug('STOQ - Invalid settings data
Complete Brakes
span class="visually-hidden">Hire Lazer Compact HelmetClothing and Protection 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 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
<
Brake Pads
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();
}
Hope
Workshop
HomeSee More
Seat Posts & Clamps
<Enve<
Hire
Yetirice: '285000',
cartPrice: '0',
selector: 'shopify-osm-Ac2tTRTlRaTI0R3BZb__klarna_on_site_messaging_app_block_8gNReH',
topPadding: '0',
bottomPadding: '0',
});
} else {
window.appBlockPlacements.push({
productVariants: [{"id":46047053447394,"title":"60","option1":"60","option2":null,"option3":null,"sku":"601679","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Émonda SL 5 Disc - 60","public_title":"60","options":["60"],"price":285000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"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: '285000',
cartPrice: '0',
selector: 'shopify-osm-Ac2t
E-bike Batteries and chargers Wheels
AmflowComplete Wheels
★★★★★Large
negative I could say; everything exceeded expectations. I can wholeheartedly recommend ProjectRide for anyone looking to rent a bike, and their many 5-star reviews are absolutely well deserved.Reply
Absolutely fantastic bike shop. Always willing to help you out when you’re having a problem. Bought many bike components from them over the years and every time they go out of their way to fit them!Would recommend wholeheartedly for any biking needs!Max McMullon
★★★
Took my old bike in for a service and it now feels like new. Great communication and great price. Also took the time to chat about future bike options with me. Cannot recommend Projekt Ride enough!
Calum Thistle
Open search bar
Headsets
Open cart
Complete Brakes
heredata-v-4052fbf6=\"\" class=\"trek-table trek-table--hstripe trek-table--borderless trek-table--centered trek-table--small trek-table--sticky-headers trek-table--row-headers\" qaid=\"size-table\"\u003e\n\u003cthead data-v-3ac87600=\"\"\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"col\" class=\"font-bold\" qaid=\"size-table-column-header-Size\"\u003eSize\u003c\/th\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"col\" class=\"font-bold\" qaid=\"size-table-column-header-Rider Height\"\u003eRider Height\u003c\/th\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"col\" class=\"font-bold\" qaid=\"size-table-column-header-Inseam\"\u003eInseam\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody data-v-3ac87600=\"\"\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"row\" qaid=\"size-table-row-header-47\"\u003e47\u003c\/th\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e152 - 158 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u
to get the ball rolling.\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e76 - 79 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e30\" - 31\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"row\" qaid=\"size-table-row-header-54\"\u003e54\u003c\/th\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e168 - 174 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e5'6\" - 5'9\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e78 - 82 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e31\" - 32\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"row\" qaid=\"size-table-row-header-56\"\u003e56\u003c\/th\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e174 - 180 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e5'9\" - 5'11\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e
GET IN TOUCH3c\/p\u003e\n\u003cp class=\"m-0\"\u003e34\" - 35\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"row\" qaid=\"size-table-row-header-62\"\u003e62\u003c\/th\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e190 - 195 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e6'3\" - 6'5\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e89 - 92 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e35\" - 36\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-05762449=\"\" class=\"rider-sizing__dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection data-v-05762449=\"\" id=\"GeometryComponent\" data-magellan-target=\"GeometryComponent\" class=\"sizing-and-fit-aftermarket-component sizing-table grid-container mb-6\"\u003e\u003c\/section\u003e\Brake Pads
id=\"GeometryComponent\" data-v-05762449=\"\"\u003e\u003c\/section\u003e\n\u003csection data-v-05762449=\"\" id=\"GeometryComponent\" data-magellan-target=\"GeometryComponent\" class=\"sizing-and-fit-aftermarket-component sizing-table grid-container mb-6\"\u003e\u003c\/section\u003e\n\u003csection data-v-05762449=\"\" id=\"GeometryComponent\" data-magellan-target=\"GeometryComponent\" class=\"sizing-and-fit-aftermarket-component sizing-table grid-container mb-6\"\u003e\u003c\/section\u003e\n\u003csection class=\"sizing-and-fit-aftermarket-component sizing-table grid-container mb-6\" data-magellan-target=\"GeometryComponent\" id=\"GeometryComponent\" data-v-05762449=\"\"\u003e\u003c\/section\u003e","published_at":"2024-10-12T16:42:50+01:00","created_at":"2024-10-12T16:12:10+01:00","vendor":"Trek","type":"Bicycles","tags":["Émonda"],"price":285000,"price_min":285000,"price_max":285000,"available":false,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_pr
\/projektride.co.uk\/cdn\/shop\/files\/EmondaSL5Disc_21_32560_A_Primary.webp?v=1728745941","options":["Size"],"media":[{"alt":null,"id":34803261702370,"position":1,"preview_image":{"aspect_ratio":1.333,"height":1080,"width":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/EmondaSL5Disc_21_32560_A_Primary.webp?v=1728745941"},"aspect_ratio":1.333,"height":1080,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/EmondaSL5Disc_21_32560_A_Primary.webp?v=1728745941","width":1440},{"alt":null,"id":34803262750946,"position":2,"preview_image":{"aspect_ratio":1.333,"height":1080,"width":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/EmondaSL5Disc_21_32560_A_Alt2.webp?v=1728745950"},"aspect_ratio":1.333,"height":1080,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/EmondaSL5Disc_21_32560_A_Alt2.webp?v=1728745950","width":1440},{"alt":null,"id":34803263504610,"position":3,"preview_image":{"aspect_ratio":1.333,"height":1080,"width":1440,"src":"\/\/projektride.co.uk\/cdn\/shop
eview_image":{"aspect_ratio":1.333,"height":1080,"width":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/EmondaSL5Disc_21_32560_A_Accessory1.webp?v=1728745995"},"aspect_ratio":1.333,"height":1080,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/EmondaSL5Disc_21_32560_A_Accessory1.webp?v=1728745995","width":1440}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eThe Émonda SL 6 Disc has all the advantages of an ultra-light carbon road bike, with the added benefit of aero tube shaping that will make you faster on flats and up climbs, too. A performance drive train and front and rear thru axles make it a great choice for fast roadies who want the extra confidence of disc brakes that perform in any conditions.\u003c\/p\u003e\n\u003carticle id=\"overview\" data-magellan-target=\"overview\" class=\"pdp-overview--upper kf-block grid-x grid-margin-x\"\u003e\n\u003cdiv class=\"kf-block--intro cell small-12 large-4 mb-4\" qaid=\"product-overview-1\"\u003e\n\u003chBrake Spares
Tools & Maintenance
e speed on any terrain, exceptional handling characteristics, a race-level drivetrain and all-weather stopping power – all without the sticker shock.\u003c\/p\u003e\n\u003ch2\u003eHow tall are you?\u003c\/h2\u003e\n\u003cp\u003e\u003cbr\u003eTo measure your height, stand up straight, barefoot, with your back, heels, shoulders and head all touching a wall. While looking straight ahead, place a book or straight edge on your head and slowly push it against the wall. Your straight edge should be parallel with the floor. Mark the spot where the bottom of the book is touching the wall. The distance from the marked spot to the floor is your height.\u003c\/p\u003e\n\u003ch2\u003eWhat is your inside leg?\u003c\/h2\u003e\n\u003cp\u003e\u003cbr\u003eHow to measure: Stand barefoot with your back straight and against a wall. Tuck a ruler or something that extends to the floor between your legs. Using both hands, and keeping it level, pull the ruler up into your crotch as if you were sitting on the saddle. Measure the di
7600=\"\" scope=\"col\" class=\"font-bold\" qaid=\"size-table-column-header-Rider Height\"\u003eRider Height\u003c\/th\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"col\" class=\"font-bold\" qaid=\"size-table-column-header-Inseam\"\u003eInseam\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody data-v-3ac87600=\"\"\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"row\" qaid=\"size-table-row-header-47\"\u003e47\u003c\/th\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e152 - 158 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e5'0\" - 5'2\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e71 - 75 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e28\" - 30\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"row\" qaid=\"size-table-row-header-50\"\u003e50\u003c\/th\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-
Open navigation menu
p class=\"m-0\"\u003e5'6\" - 5'9\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e78 - 82 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e31\" - 32\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"row\" qaid=\"size-table-row-header-56\"\u003e56\u003c\/th\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e174 - 180 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e5'9\" - 5'11\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e81 - 85 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e32\" - 33\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-3ac87600=\"\"\u003e\n\u003cth data-v-3ac87600=\"\" scope=\"row\" qaid=\"size-table-row-header-58\"\u003e58\u003c\/th\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e180 - 185 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e5'11\" - 6'1\"\u003c\/
ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e89 - 92 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e35\" - 36\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-05762449=\"\" class=\"rider-sizing__dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection data-v-05762449=\"\" id=\"GeometryComponent\" data-magellan-target=\"GeometryComponent\" class=\"sizing-and-fit-aftermarket-component sizing-table grid-container mb-6\"\u003e\u003c\/section\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003csection data-v-05762449=\"\" id=\"GeometryComponent\" data-magellan-target=\"GeometryComponent\" class=\"sizing-and-fit-aftermarket-component sizing-table grid-container mb-6\"\u003e\u003c\/section\u003e\n\u003csection data-v-05762449=\"\" id=\"GeometryComponent\" data-magellan-target=\"GeometryComponent\" class=\"sizing-and-fit-aftermarket-component sizing-table grid-containerForks
Clothing and Protection
ent sizing-table grid-container mb-6\"\u003e\u003c\/section\u003e\n\u003csection class=\"sizing-and-fit-aftermarket-component sizing-table grid-container mb-6\" data-magellan-target=\"GeometryComponent\" id=\"GeometryComponent\" data-v-05762449=\"\"\u003e\u003c\/section\u003e"}See MoreOpen search barSee More
Open search bar
Congratulations! Your order qualifies for free shiCrank#ProductTemplate--template--15326745395426__main { background: #ffffff; }
.shop-pay-terms { --payment-terms-background-color: #ffffff }.site-footer {
--bg: #1f2324;
--text: #ffffff;
--text-alpha-15: rgba(255, 255, 255, 0.15);
--text-alpha-60: rgba(255, 255, 255, 0.6);
--text-alpha-85: rgba(255, 255, 255, 0.85);
}
.footer-content__logo__image { width: 170px; }
ProWheel alloy, 175 mm length
HomeAbout Us
/Contact UsSKS RACEBLADE PRO MUDGUARD SETTrek
Amflow
WARNING: When carrying passengers, rear wheelDo not exceed individual load ratings and max gross weight.
{"id":8126301438178,"title":"B
03cli data-mce-fragment=\"1\"\u003eWheel Guard Boost Mesh\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eUtility Front Tray Black\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e1 x Dual Kickstand\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e \u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eWARNING:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eWhen carrying passengers, rear wheel\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003cstrong data-mce-fragment=\"1\"\u003eMUST\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003ebe covered! Install Benno Wheel Guards or Utility Pannier Bags. Failure to do so could result in serious injury! Make sure that no parts of the body, clothing or load come near moving parts on the bicycle, such as chain, spokes, tyres or brakes.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cbr data-mce-fragment=\"1\"\UTO (ex Eovolt)ory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-03at20.09.39.png?v=1691089786","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-02at12.52.11.png?v=1691089786","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-02at12.52.30.png?v=1691089786"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-03at20.09.39.png?v=1691089786","options":["Title"],"media":[{"alt":null,"id":32054700114146,"position":1,"preview_image":{"aspect_ratio":1.663,"height":600,"width":998,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-03at20.09.39.png?v=1691089786"},"aspect_ratio":1.663,"height":600,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-03at20.09.39.png?v=1691089786","width":998},{"alt":null,"id":32052046201058,"position":2,"preview_image":{"aspect_ratio":1.252,"height":880,"width":1102,"src":"\/\/projektride
fragment=\"1\"\u003eThe Boost Fully Loaded pack comes with the following accessories included to get you and your family straight out for your first adventure:\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eMini Side Loaders\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eHigh Rail Plus\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eRail Clamp Plus Set\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e2 x Rack Pad half size\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e2 x Rail Pads\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eWheel Guard Boost Mesh\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eUtility Front Tray Black\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e1 x Dual Kickstand\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e \u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eWARNING:\u003c\/strong\u003e\u003cspan data-mce-fragment=\
Second-Hand Bikes
SKS plastic, front
pdl-collapse-item__content\"\u003e\n\u003ctable data-v-05762449=\"\" aria-label=\"Specifications\" class=\"sprocket__table spec\"\u003e\n\u003ctbody data-v-05762449=\"\"\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eFrame\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eHigh-performance hydroformed alloy, Removable Integrated Battery, internal cable routing, Motor Armour, post-mount disc\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eFork\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eSR Suntour Mobie 34, air spring, rebound and compression adjust, tapered alloy steerer, 100x15 mm thru axle, 60 mm travel\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-5bd42f3c=\"\" data-v-05762449=\"\" id=\"pdl-collapse-item-xs3y3\" name=\"388\" class=\"pdl-collapse-it0131 374 5324
If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to re
Stems
SERVICES
Maintenance
Gears & DrivetrainServicing
Cleaners, Degreasers and Lubrication
0514,43981357613282,43981362462946,43981362495714,43981362528482,43981369016546,43981369049314,43981374914786,43981374947554,43981374980322,43981392904418,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987905762,43981987938530,44052906967266,44052907327714,44052907360482,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140302827746,44140302893282,44140317016290,44155590508770,44155590541538,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,44957136584930,44957136781538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,55569933074815,55570550194559Headsets
ipping_texts":{},"updated_at":"2025-12-14T23:16:44Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569933140351,55569712382335,55569712415103,55569712480639,55569933173119,55570017616255,55569933074815,55570017550719,55569712447871,55569933107583,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" un
E-bike Batteries and chargers
kground_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"markets_enabled":false,"market_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}
Hire Lazer Compact HelmetTools & MaintenanceSurly Preamble Frameset - Skyrim Bluetion":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false},"type":"hijack","css_config":null,"js_config":null,"created_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":8126301438178,"title":"Boost CX EVO 4 Fully Loaded Easy On","handle":"boost-cx-evo-4-fully-loaded-easy-on","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"col-md-8\" data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Benno Boost Fully Loaded is the large family bike that enables you to ride with up to two kids on the back and all their stuff or other loads stored conveniently up front.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Boost Fully Loaded pack comes with the following accessories included to get you and your family straight out for your first adventure:\u003c\/p\u003e\n\u003cul data-mce-frag
INFORMATION
span data-mce-fragment=\"1\"\u003e \u003c\/span\u003ebe covered! Install Benno Wheel Guards or Utility Pannier Bags. Failure to do so could result in serious injury! Make sure that no parts of the body, clothing or load come near moving parts on the bicycle, such as chain, spokes, tyres or brakes.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cbr data-mce-fragment=\"1\"\u003eDo not exceed individual load ratings and max gross weight.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"col-md-4\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"logo-brand\" data-mce-fragment=\"1\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e","published_at":"2023-08-03T20:06:33+01:00","created_at":"2023-08-02T12:56:37+01:00","vendor":"Benno","type":"Bicycles","tags":["Boost","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":574999,"price_min":574999,"price_max":574999,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compar
£650.00/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-03at20.09.39.png?v=1691089786"},"aspect_ratio":1.663,"height":600,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-03at20.09.39.png?v=1691089786","width":998},{"alt":null,"id":32052046201058,"position":2,"preview_image":{"aspect_ratio":1.252,"height":880,"width":1102,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-02at12.52.11.png?v=1691089786"},"aspect_ratio":1.252,"height":880,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-02at12.52.11.png?v=1691089786","width":1102},{"alt":null,"id":32052046233826,"position":3,"preview_image":{"aspect_ratio":1.111,"height":992,"width":1102,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-02at12.52.30.png?v=1691089786"},"aspect_ratio":1.111,"height":992,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-08-02at12.52.30.png?v=1691089786","width":1102}],"requires_selling_planBrakes
":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"col-md-8\" data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Benno Boost Fully Loaded is the large family bike that enables you to ride with up to two kids on the back and all their stuff or other loads stored conveniently up front.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Boost Fully Loaded pack comes with the following accessories included to get you and your family straight out for your first adventure:\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eMini Side Loaders\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eHigh Rail Plus\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eRail Clamp Plus Set\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e2 x Rack Pad half size\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e2 x Rail Pads\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eWheel Guard Boost M
esh\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eUtility Front Tray Black\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e1 x Dual Kickstand\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e \u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eWARNING:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eWhen carrying passengers, rear wheel\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003cstrong data-mce-fragment=\"1\"\u003eMUST\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003ebe covered! Install Benno Wheel Guards or Utility Pannier Bags. Failure to do so could result in serious injury! Make sure that no parts of the body, clothing or load come near moving parts on the bicycle, such as chain, spokes, tyres or brakes.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cbr data-mce-fragment=\"1\"\u003eDo not exceed individual load ratings and max gro
Wheelsa class="product__media product__media--featured"
href="/products/hire-smith-convoy-helmet"
title="Hire Lazer Compact Helmet"
aria-label="Hire Lazer Compact Helmet"
style="background-image: url(//projektride.co.uk/cdn/shop/files/my2023_tempo-kineticore-black_right_1400x1011800x600-removebg-preview_1_600x.png?v=1747484784)">
ss weight.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"col-md-4\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"logo-brand\" data-mce-fragment=\"1\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {44199654424802 : "continue",};
window._RestockRocketConfig.variantsInventoryQuantity = {44199654424802 : parseInt("5"),};
window._RestockRocketConfig.variantsPreorderCount = {44199654424802 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {44199654424802 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {44199654424802 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {44199654424802 : null,};
window._RestockRocketConfig.variantsShippingText = {44199654424802 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {44199654424802 : null,};
window._RestockRocketConfig.selected_variant_id = 44199654424802;
window._RestockRocketC.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 1
Working HoursComplete Wheels>
< 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 ||
>
ProjektRide Merchandise!settings.multi_language_enabled) {
return settings;
}
if (!settings.translations) {
console.debug('STOQ - No translations found, skipping translation');
return settings;
}
const normalizedLocale = window._RestockRocketConfig.normalizedLocale;
const translations = settings.translations;
if (!normalizedLocale) {
// No matching locale has translations; drop payload to save memory
console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {}));
delete settings.translations;
return settings;
}
console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`);
const translatedFields = translations[normalizedLocale];
if (translatedFields && typeof translatedFields === 'object') {
Object.keys(translatedFields).forEach(function(key) {
const value = translatedFields[key];
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 (e) {
console.debug('STOQ - error applying translations:', e);
return settings;
}
}
// First try to get settings from metafields with expiry check
const cachedSettings = window._RestockR2Brake Rotors
Mon - Fri: 09:00 - 18:30
ocketConfig.cachedSettings;
const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
if (validCachedSettings) {
console.debug('STOQ - using cached settings');
initializeScripts(validCachedSettings);
} else {
console.debug('STOQ - fetching fresh settings');
const headers = {
'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
'ngrok-skip-browser-warning': 'skip'
};
if (window.Shopify?.theme?.role === 'main') {
headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name;
headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version;
headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id;
}
fetch(
`${window._RestockRocketConfig.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(settings.enable_app) {
const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) {
return integration.type === 'hijack' && integration.enabled && integration.pag
Sat: 9:00 - 16:00
e_types.includes(window._RestockRocketConfig.pageType);
})
if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'product') {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct);
} else if(hijackIntegration) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else {
console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`);
}
// Check and update cart selling plans after scripts are loaded
if (settings.preorder_enabled) {
updateCartSellingPlans();
}
// Dispatch custom event when app is loaded
const appLoadedEvent = new CustomEvent('stoq:loaded', {
detail: {
pageType: window._RestockRocketConfig.pageType,
enabled: settings.enable_app,
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;
→
Sun: Closed
HelmetsHire Lazer Compact Helmet 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
Other