Search for products on our site
Sale
Portugal (EUR€)
Slovenia (EUR€)
Isle of Man (GBP£)
Trek District+ 5 Lowstep Suggested search terms
Handlebars
Stems
Grips & Bar-Tape
Headsets
Brakes
Complete Brakes
| Close |
|---|
| About Us | |
| Contact Us | window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || []; console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')'); } } else { // When using old format (stale cache), don't trust disabled_plan_ids window._RestockRocketConfig.disabledSellingPlanIds = []; console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')'); } } })();window._RestockRocketConfig.enabledNotifyMeVariantIds = [];window._RestockRocketConfig.disabledNotifyMeVariantIds = [];window._RestockRocketConfig.backInStockTemplates = [];window._RestockRocketConfig.restockNotes = {};window._RestockRocketConfig.integrations = [{"id":"15c94526-b6b8-4de1-9bc1-23b1ca52ddb0","shop_id":38436,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"toastDuration":10000,"toastPosition-fa0c522c=\"\"\u003e \u003c\/p\u003e\n\u003cdiv data-v-631a2fc2=\"\" class=\"pdl-collapse\"\u003e\n\u003cp data-v-631a2fc2=\"\"\u003e*Please note – spec applies to all sizes unless listed separately\u003c\/p\u003e\n\u003cdiv data-v-631a2fc2=\"\" id=\"pdl-collapse-item-49zm7\" class=\"pdl-collapse-item is-active\" data-name=\"47870629-10df-4f8c-b932-dd239bddda09\"\u003e\n\u003ch2 class=\"\"\u003e\u003cbutton id=\"pdl-collapse-head-49zm7\" class=\"pdl-collapse-item__header font-medium is-active flex-row-reverse items-center font-heading font-bold text-lg border-b-2 focusing\" type=\"button\" aria-expanded=\"true\" aria-controls=\"pdl-collapse-content-49zm7\" tabindex=\"0\"\u003e\u003cspan class=\"flex items-center grow\"\u003eFrameset\u003c\/span\u003e\u003csvg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentcolor\" aria-hidden=\"true\" role=\"presentation\" class=\"pdl-icon inline-block align-middle fill-current pdl-collapse-item__icon is-active\"\ | d Aluminium, internal cable routing, rack \u0026amp; mudguard mounts, post mount disc, kickstand mount, 135x5 mm QR\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/dd\u003e\n\u003cdt class=\"flex-none w-full md:w-1\/5 mb-0 py-2 pr-1 font-medium border-b-2 md:border-r-2 border-gray-10\"\u003eFork\u003c\/dt\u003e\n\u003cdd class=\"flex-none w-full md:w-4\/5 font-normal\"\u003e\n\u003cdiv class=\"p-2 border-b-2 border-gray-10\"\u003e\n\u003cdiv\u003eFX carbon, flat-mount disc, rack mounts, 410mm axle-to-crown, ThruSkew 5mm QR\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-631a2fc2=\"\" id=\"pdl-collapse-item-8wihrq\" class=\"pdl-collapse-item is-active\" data-name=\"e9a1d5c0-b773-4feb-bba5-cde65e24a411\"\u003e\n\u003ch2 class=\"\"\u003e\u003cbutton id=\"pdl-collapse-head-8wihrq\" class=\"pdl-collapse-item__header font-medium is-active flex-row-reverse items-center font-heading font-bold text-lg border-b-2 focusing\"Blog
| s\"\u003e\n\u003cdt class=\"flex-none w-full md:w-1\/5 mb-0 py-2 pr-1 font-medium border-b-2 md:border-r-2 border-gray-10\"\u003eShifter\u003c\/dt\u003e\n\u003cdd class=\"flex-none w-full md:w-4\/5 font-normal\"\u003e\n\u003cdiv class=\"p-2 border-b-2 border-gray-10\"\u003e\n\u003cdiv\u003eShimano CUES U6000 w\/optical gear display, 10-speed\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/dd\u003e\n\u003cdt class=\"flex-none w-full md:w-1\/5 mb-0 py-2 pr-1 font-medium border-b-2 md:border-r-2 border-gray-10\"\u003eRear derailleur\u003c\/dt\u003e\n\u003cdd class=\"flex-none w-full md:w-4\/5 font-normal\"\u003e\n\u003cdiv class=\"p-2 border-b-2 border-gray-10\"\u003e\n\u003cdiv\u003eShimano CUES U6000 GS\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/dd\u003e\n\u003cdt class=\"flex-none w-full md:w-1\/5 mb-0 py-2 pr-1 font-medium border-b-2 md:border-r-2 border-gray-10\"\u003e*Crank\u003c\/dt\u003e\n\u003cdd class=\"flex-none w-full md:w-4\/5 font-normal\"\u003e\n\u003cdiv class=\"p-2 border-b-2 border-gray-10\"\u00Track Service Progress | INKGLIDE, 11-48, 10-speed\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/dd\u003e\n\u003cdt class=\"flex-none w-full md:w-1\/5 mb-0 py-2 pr-1 font-medium border-b-2 md:border-r-2 border-gray-10\"\u003eChain\u003c\/dt\u003e\n\u003cdd class=\"flex-none w-full md:w-4\/5 font-normal\"\u003e\n\u003cdiv class=\"p-2 border-b-2 border-gray-10\"\u003e\n\u003cdiv\u003eShimano LG500\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/dd\u003e\n\u003cdt class=\"flex-none w-full md:w-1\/5 mb-0 py-2 pr-1 font-medium border-b-2 md:border-r-2 border-gray-10\"\u003ePedal\u003c\/dt\u003e\n\u003cdd class=\"flex-none w-full md:w-4\/5 font-normal\"\u003e\n\u003cdiv class=\"p-2 border-b-2 border-gray-10\"\u003e\u003ca href=\"https:\/\/www.trekbikes.com\/b2b\/gb\/en_GB\/p\/5254979\" class=\"block underline\"\u003eBontrager City pedals\u003c\/a\u003e\u003c\/div\u003e\n\u003c\/dd\u003e\n\u003c\/dl\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-631a2fc2=\"\" id=\"pdl-collapse-item-sqmfrp\" class=\"pdl-collapselapse-item__wrap\" role=\"region\" aria-hidden=\"false\" aria-labelledby=\"pdl-collapse-head-sqmfrp\" data-old-padding-top=\"\" data-old-padding-bottom=\"\" data-old-overflow=\"\"\u003e\n\u003cdiv class=\"pdl-collapse-item__content is-active flex-row-reverse items-center font-heading font-bold text-lg border-b-2 focusing\"\u003e\n\u003cdl class=\"font-body flex flex-row flex-wrap text-gray-80 text-lg\" aria-label=\"Specifications\"\u003e\n\u003cdt class=\"flex-none w-full md:w-1\/5 mb-0 py-2 pr-1 font-medium border-b-2 md:border-r-2 border-gray-10\"\u003eSaddle\u003c\/dt\u003e\n\u003cdd class=\"flex-none w-full md:w-4\/5 font-normal\"\u003e\n\u003cdiv class=\"p-2 border-b-2 border-gray-10\"\u003e\n\u003cdiv\u003eBontrager H1\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/dd\u003e\n\u003cdt class=\"flex-none w-full md:w-1\/5 mb-0 py-2 pr-1 font-medium border-b-2 md:border-r-2 border-gray-10\"\u003e*Seatpost\u003c\/dt\u003e\n\u003cdd class=\"flex-none w-full md:w-4\/5 font-normal\"\u003e\n\u003cdiv class=\"p-2 bo | alloy, 31.8 mm, 15 mm rise, 600 mm width\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"p-2 border-b-2 border-gray-10\"\u003e\n\u003cspan\u003eSize:\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003e\u003cspan\u003eL, XL\u003cbr\u003e\u003c\/span\u003e\n\u003cdiv\u003eBontrager Comp Lowriser, alloy, 31.8 mm, 15 mm rise, 660 mm width\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/dd\u003e\n\u003cdt class=\"flex-none w-full md:w-1\/5 mb-0 py-2 pr-1 font-medium border-b-2 md:border-r-2 border-gray-10\"\u003eGrips\u003c\/dt\u003e\n\u003cdd class=\"flex-none w-full md:w-4\/5 font-normal\"\u003e\n\u003cdiv class=\"p-2 border-b-2 border-gray-10\"\u003e\u003ca href=\"https:\/\/www.trekbikes.com\/b2b\/gb\/en_GB\/p\/5325950\" class=\"block underline\"\u003eTrek Line Ergonomic Pro, lock-on\u003c\/a\u003e\u003c\/div\u003e\n\u003c\/dd\u003e\n\u003cdt class=\"flex-none w-full md:w-1\/5 mb-0 py-2 pr-1 font-medium border-b-2 md:border-r-2 border-gray-10\"\u003e*Stem\u003c\/dt\u003e\n\u003cdd class=\"flex-none w-full
| FX","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":95000,"price_min":95000,"price_max":95000,"available":true,"price_varies":false,"compare_at_price":100000,"compare_at_price_min":100000,"compare_at_price_max":100000,"compare_at_price_varies":false,"variants":[{"id":56386097217919,"title":"XS \/ Magic Mint","option1":"XS","option2":"Magic Mint","option3":null,"sku":"5336769","requires_shipping":true,"taxable":true,"featured_image":{"id":80674887467391,"product_id":15395564454271,"position":1,"created_at":"2025-11-12T16:19:48+00:00","updated_at":"2025-11-12T16:19:53+00:00","alt":null,"width":1920,"height":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX3Stepover-26-57290-C-Primary.png?v=1762964393","variant_ids":[56386097217919,56386097316223,56386097414527,56386097512831,56386097611135]},"available":true,"name":"FX 3 Stepover Gen 4 - XS \/ Magic Mint","public_title":"XS \/ Magic Mint","options":["XS","Magic Mint"],"price":95000,"weight":0,"compare_at_price":100000,"inv | r Silver","options":["XS","Lunar Silver"],"price":95000,"weight":0,"compare_at_price":100000,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":68646730432895,"position":2,"preview_image":{"aspect_ratio":1.333,"height":1440,"width":1920,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX3Stepover-26-57290-B-Primary.png?v=1762964393"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":56386097283455,"title":"XS \/ Dark Carmine","option1":"XS","option2":"Dark Carmine","option3":null,"sku":"5336759","requires_shipping":true,"taxable":true,"featured_image":{"id":80674887532927,"product_id":15395564454271,"position":3,"created_at":"2025-11-12T16:19:48+00:00","updated_at":"2025-11-12T16:19:53+00:00","alt":null,"width":1920,"height":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX3Stepover-26-57290-A-Primary.png?v=1762964393","variant_ids":[56386097283455,56386097381759,56386097480063,56386097578367,56386097676673","variant_ids":[56386097217919,56386097316223,56386097414527,56386097512831,56386097611135]},"available":true,"name":"FX 3 Stepover Gen 4 - S \/ Magic Mint","public_title":"S \/ Magic Mint","options":["S","Magic Mint"],"price":95000,"weight":0,"compare_at_price":100000,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":68646730400127,"position":1,"preview_image":{"aspect_ratio":1.333,"height":1440,"width":1920,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX3Stepover-26-57290-C-Primary.png?v=1762964393"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":56386097348991,"title":"S \/ Lunar Silver","option1":"S","option2":"Lunar Silver","option3":null,"sku":"5336765","requires_shipping":true,"taxable":true,"featured_image":{"id":80674887500159,"product_id":15395564454271,"position":2,"created_at":"2025-11-12T16:19:48+00:00","updated_at":"2025-11-12T16:19:53+00:00","alt":null,"width":1920,"height":1440,"src":"\ | :00","updated_at":"2025-11-12T16:19:53+00:00","alt":null,"width":1920,"height":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX3Stepover-26-57290-A-Primary.png?v=1762964393","variant_ids":[56386097283455,56386097381759,56386097480063,56386097578367,56386097676671]},"available":true,"name":"FX 3 Stepover Gen 4 - S \/ Dark Carmine","public_title":"S \/ Dark Carmine","options":["S","Dark Carmine"],"price":95000,"weight":0,"compare_at_price":100000,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":68646730465663,"position":3,"preview_image":{"aspect_ratio":1.333,"height":1440,"width":1920,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX3Stepover-26-57290-A-Primary.png?v=1762964393"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":56386097414527,"title":"M \/ Magic Mint","option1":"M","option2":"Magic Mint","option3":null,"sku":"5336771","requires_shipping":true,"taxable":true,"featured_image":{"id":8067
| aspect_ratio":1.333,"height":1440,"width":1920,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX3Stepover-26-57290-B-Primary.png?v=1762964393"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":56386097578367,"title":"L \/ Dark Carmine","option1":"L","option2":"Dark Carmine","option3":null,"sku":"5336762","requires_shipping":true,"taxable":true,"featured_image":{"id":80674887532927,"product_id":15395564454271,"position":3,"created_at":"2025-11-12T16:19:48+00:00","updated_at":"2025-11-12T16:19:53+00:00","alt":null,"width":1920,"height":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX3Stepover-26-57290-A-Primary.png?v=1762964393","variant_ids":[56386097283455,56386097381759,56386097480063,56386097578367,56386097676671]},"available":true,"name":"FX 3 Stepover Gen 4 - L \/ Dark Carmine","public_title":"L \/ Dark Carmine","options":["L","Dark Carmine"],"price":95000,"weight":0,"compare_at_price":100000,"inventory_management":"shopify","ba | "price":95000,"weight":0,"compare_at_price":100000,"inventory_management":"shopify","barcode":null,"featured_media":{"alt":null,"id":68646730400127,"position":1,"preview_image":{"aspect_ratio":1.333,"height":1440,"width":1920,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX3Stepover-26-57290-C-Primary.png?v=1762964393"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":56386097643903,"title":"XL \/ Lunar Silver","option1":"XL","option2":"Lunar Silver","option3":null,"sku":"5336768","requires_shipping":true,"taxable":true,"featured_image":{"id":80674887500159,"product_id":15395564454271,"position":2,"created_at":"2025-11-12T16:19:48+00:00","updated_at":"2025-11-12T16:19:53+00:00","alt":null,"width":1920,"height":1440,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX3Stepover-26-57290-B-Primary.png?v=1762964393","variant_ids":[56386097250687,56386097348991,56386097447295,56386097545599,56386097643903]},"available":false,"name":"FX 3 Stepove|
097316223 : parseInt(""),56386097348991 : parseInt(""),56386097381759 : parseInt(""),56386097414527 : parseInt(""),56386097447295 : parseInt(""),56386097480063 : parseInt(""),56386097512831 : parseInt(""),56386097545599 : parseInt(""),56386097578367 : parseInt(""),56386097611135 : parseInt(""),56386097643903 : parseInt(""),56386097676671 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {56386097217919 : null,56386097250687 : null,56386097283455 : null,56386097316223 : null,56386097348991 : null,56386097381759 : null,56386097414527 : null,56386097447295 : null,56386097480063 : null,56386097512831 : null,56386097545599 : null,56386097578367 : null,56386097611135 : null,56386097643903 : null,56386097676671 : null,}; window._RestockRocketConfig.variantsShippingText = {56386097217919 : "",56386097250687 : "",56386097283455 : "",56386097316223 : "",56386097348991 : "",56386097381759 : "",56386097414527 : "",56386097447295 : "",56386097480063 : "",56386097512831 : "",56386097her this shop has preorders // configured at all — an enabled selling plan plus at least one preorder variant id, // independent of the block toggle. Fail-open: on error the flag stays unset and both // consumers no-op. try { var _sqCfg = window._RestockRocketConfig; var _sqPlanEnabled = Array.isArray(_sqCfg.sellingPlans) && _sqCfg.sellingPlans.some(function (p) { return p && p.enabled; }); var _sqPreCount = ((_sqCfg.cachedPreorderVariantIds && _sqCfg.cachedPreorderVariantIds.preorder_variant_ids) || []).length; _sqCfg.preordersConfigured = !!(_sqPlanEnabled && _sqPreCount); } catch (e) { /* fail open */ } // STOQ-1612: block (not hide) Buy Now / Shop Pay until our JS runs, so a tap in the // load window can't bypass preorder. pointer-events via .stoq-buy-now-pending (no // reflow); timeout releases; renderPreorderButton / featured_product.js lift it. // Gated by the `block_accelerated_checkout` toggle (default OFF) for gradual rollout. // Armed ONLY when we' | {
_sqc.acceleratedGateArmed = true;
document.documentElement.classList.add('stoq-buy-now-pending');
setTimeout(function () {
document.documentElement.classList.remove('stoq-buy-now-pending');
}, 6000);
}
} catch (e) { /* fail open */ }
window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019faf5b-94c9-7a24-9306-bf1118ca3099/restockrocket-1-554/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019faf5b-94c9-7a24-9306-bf1118ca3099/restockrocket-1-554/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptUrlProductBis = 'https://cdn.shopify.com/extensions/019faf5b-94c9-7a24-9306-bf1118ca3099/restockrocket-1-554/assets/restockrocket-product-bis.js'
window._RestockRocketConfig.scriptUrlCollectionBis = 'https://cdn.shopify.com/extensions/019faf5b-94c9-7a24-9306-bf1118ca3099/restockrocket-1-554/assets/restockrocket-collection-bis.js'
window._RestockRocke|
| < | che age if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) { console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh'); window._RestockRocketConfig.isLiquidCacheFresh = true; window._RestockRocketConfig.liquidCacheAge = null; } else { const now = Math.floor(Date.now() / 1000); // Current time in seconds const liquidCacheAge = now - liquidRenderedAt; // Age in seconds // Surfaced into funnel events: a stale cache means the app rendered with // outdated inventory/selling-plan data — a real "had the opportunity but // failed" cause. Negative (client clock ahead) clamps to 0. window._RestockRocketConfig.liquidCacheAge = Math.max(0, liquidCacheAge); // Handle client clock ahead of server if (liquidCacheAge0) { 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 | = 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
| onStorage.getItem('_stoq_pls') || '0', 10) || 0) + 1; window.sessionStorage.setItem('_stoq_pls', String(_stoqPageSeq)); } catch (e) { /* sessionStorage unavailable (private mode) — leave 0 */ } Shopify?.analytics?.publish?.('stoq_initialized', { cart_token: _stoqInitConfig.cartToken || '', page_url: window.location.href, page_type: _stoqInitConfig.pageType || '', shop_domain: _stoqInitConfig.shop || '', market_id: _stoqInitConfig.marketId || '', // Buyer's storefront country (localization.country.iso_code). Seeds the // pixel's extension_details blob so it rides forward onto Shopify's native // events too — a market can span countries, so this is the finer signal. country_code: _stoqInitConfig.countryIsoCode || '', detected_variant_ids: _stoqDetectedVariantIds, selected_variant_id: _stoqSelectedVariantId || '', page_load_seq: _stoqPageSeq, liquid_rendered_at: _stoqInitConfig.liquidRenderedAt || 0, app_version | rm so it's correct on collection/index/search too. block_accelerated_checkout // context (STOQ-1612) rides in `properties` (forwarded verbatim by the pixel, no schema // change): a buy_now click on a preorder variant while the gate was armed is a visible // bypass signal for order debug. Also sends page_url (top-level, like the pixel's native // events) and two preorder signals in properties (see below). try { var _sqTrack = window._RestockRocketConfig; if (_sqTrack.preordersConfigured) { document.addEventListener('click', function (e) { try { var t = e.target; if (!t || !t.closest) return; var host = t.closest('.shopify-payment-button, shopify-payment-terms'); if (!host) return; var channel = host.matches && host.matches('shopify-payment-terms') ? 'shop_pay_installments' : 'buy_now'; var form = host.closest('form'); var vidEl = form && form.querySelector('[name="id"]'); var variantId =k.marketId || '',
country_code: _sqTrack.countryIsoCode || '',
page_type: _sqTrack.pageType || '',
cart_token: _sqTrack.cartToken || '',
page_url: (window.location && window.location.href) || '',
properties: {
// Mirror the bundle's own preorder check (preorder.js checkInventoryProvider-
// WithCachedFallback): the live set config.preorderVariantIds (refreshed after
// page load by loadVariantInventoryData) OR the Liquid-injected
// cachedPreorderVariantIds — always present, so it covers clicks before the
// bundle loads (why this tracker is inline). ORing both (not preferring one)
// matches the bundle and is correct even if the live set is an empty array. Both
// hold integer ids; the click-time id comes off a DOM input (.value → string) or
// selected_variant_id, so coerce with Number for a like-typed compare.
is_preordinstock_variant: (function () {
var has = function (a) { return Array.isArray(a) && a.indexOf(_sqVidNum) !== -1; };
return has(_sqTrack.inStockVariantIds) ||
has(_sqTrack.cachedInStockVariantIds &&
_sqTrack.cachedInStockVariantIds.in_stock_variant_ids);
})(),
// The enrolled plan's Shopify selling-plan id + inventory_provider (stoq = STOQ tracks
// the OOS count; shopify = in-stock preorder). Tells order-debug what kind of preorder
// the Buy Now bypassed, without a downstream lookup.
enrolled_plan_id: (_sqPlan && (_sqPlan.shopify_selling_plan_id || _sqPlan.shopify_selling_plan_group_id)) || '',
enrolled_plan_provider: (_sqPlan && _sqPlan.inventory_provider) || '',
block_enabled: !!(_sqTrack.cachedSettings && _sqTrack.cachedSettings.block_accelerated_checkout),
gate_armed: !!_sqTrack.acceleratedGateArmed,
gate_active 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;
}
}
// Setup event listener for cart selling plan updates
// This must be called before any scripts are loaded to avoid race conditions
function setupCartSellingPlanUpdater(settings) {
ned `cachedSettings` comes from the app-embed Liquid render, which
// Shopify edge-caches and can serve stale. Reading the same `settings` metafield
// back over the Storefront API is a POST to /api/ |
|
Shop by Brand | See More|
| Gloria | |
| Amflow | |
| Ridgeback |
Brother
Genesis |
|
Mon - Fri: 09:00 - 18:30 EnigmaSat: 9:00 - 16:00S, M, L, XL
Sun: Closed SKS plastic, front 0131 374 5324 Frog |
Newington Road
UTO (ex Eovolt)
Weight
await import("//projektride.co.uk/cdn/shopifycloud/shop-js/modules/v2/loader.shop-follow-button.en.esm.js");
Early Rider
| Weight GBP£ | M - 26.70 kg / 58.87 lb (excluding battery) | Second-Hand Bikes
|---|---|
| Weight limit | This bike has a maximum total weight limit (combined weight of bicycle, rider and cargo) of 160 kg (352 lb). Albania (ALLL) | Shop All Second-Hand
Custom Builds for sale
We reserve the right to make changes to the product information contained on this site at any time without notice, including with respect to equipment, specifications, models, colours, materials and pricing. Due to supply chain issues, compatible parts may be substituted at any time without notice. The prices shown are the manufacturer's suggested retail prices. Angola (GBP£)
Bike and frame weights are based on pre-production painted frames at time of publication. Weights may vary in final production. Armenia (AMDդր.)






UTO (ex Eovolt)
Second-Hand Bikes
Shop All Second-Hand
See More

Slovakia (EUR€)
Ireland (EUR€)