Working Hoursimg src="//projektride.co.uk/cdn/shop/products/ftp_f_freewheel_imagessportlinefwbikesgn21800_detail_3_98x.jpg?v=1709550518" alt="" class="product-single__thumbnail-img">
u003cp\u003eWhat is your inside leg?\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 distance from the top edge of the ruler to the ground to find your inside leg measurement. Your inside leg is very important to your final bike size so please measure carefully.\u003c\/p\u003e\n\u003csection data-v-05762449=\"\" id=\"SizingComponent\" data-magellan-target=\"SizingComponent\" class=\"sizing-and-fit-aftermarket-component sizing-table grid-container mb-6\"\u003e\n\u003cdiv data-v-05762449=\"\" class=\"rider-sizing mb-2\"\u003e\n\u003cdiv data-v-4052fbf6=\"\" data-v-05762449=\"\"\u003e\n\u003cdiv data-v-4052fbf6=\"\" class=\"size-table\"\u003e\n\u003ctable data-v-3ac87600=\"\" data-v-4052fbf6=\"\" class=\"trek-table trek-table--hstripe trek-table--borderless trek-table--centered tr
ek-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-XS\"\u003eXS\u003c\/th\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e147 - 155 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e4'10\" - 5'1\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"
tra Small","option2":"White","option3":null,"sku":"5258699","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek FX 3 Disc Gen 3 - Extra Small \/ White","public_title":"Extra Small \/ White","options":["Extra Small","White"],"price":102500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46035212206306,"title":"Small \/ Black","option1":"Small","option2":"Black","option3":null,"sku":"5258682","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek FX 3 Disc Gen 3 - Small \/ Black","public_title":"Small \/ Black","options":["Small","Black"],"price":102500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46035212239074,"title":"Small \/ Blue","option1":"Small","option2":"Blue","option3":null,"sku":"5258694","requires_shipping":true,"taxable
a class="product__media product__media--featured"
href="/collections/road-gravel-touring/products/brother-big-bro-hardtail-bike-complete-shop-stock-build-copy"
title="Brother Big Bro Hardtail Bike - Complete Shop Stock 2025 Build"
aria-label="Brother Big Bro Hardtail Bike - Complete Shop Stock 2025 Build"
style="background-image: url(//projektride.co.uk/cdn/shop/files/79896E59-29D3-472C-8660-BC590EFF2D69_600x.jpg?v=1761673251)">
":true,"featured_image":null,"available":true,"name":"Trek FX 3 Disc Gen 3 - Small \/ Blue","public_title":"Small \/ Blue","options":["Small","Blue"],"price":102500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46035266306274,"title":"Small \/ Red","option1":"Small","option2":"Red","option3":null,"sku":"5258688","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek FX 3 Disc Gen 3 - Small \/ Red","public_title":"Small \/ Red","options":["Small","Red"],"price":102500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46035266339042,"title":"Small \/ White","option1":"Small","option2":"White","option3":null,"sku":"5258700","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek FX 3 Disc Gen 3 - Small \/ White","public_title":"Small \/ White
","options":["Small","White"],"price":102500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46035212271842,"title":"Medium \/ Black","option1":"Medium","option2":"Black","option3":null,"sku":"5258681","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek FX 3 Disc Gen 3 - Medium \/ Black","public_title":"Medium \/ Black","options":["Medium","Black"],"price":102500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46035212304610,"title":"Medium \/ Blue","option1":"Medium","option2":"Blue","option3":null,"sku":"5258693","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek FX 3 Disc Gen 3 - Medium \/ Blue","public_title":"Medium \/ Blue","options":["Medium","Blue"],"price":102500,"weight":0,"compare_at_price":null,"inventory_management":"s
span class="visually-hidden">Brother Big Bro Hardtail Bike - Complete Shop Stock 2025 BuildBontrager Riser, steel, 25.4 mm, 30 mm rise, 600 mm widthhopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46035266371810,"title":"Medium \/ Red","option1":"Medium","option2":"Red","option3":null,"sku":"5258689","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek FX 3 Disc Gen 3 - Medium \/ Red","public_title":"Medium \/ Red","options":["Medium","Red"],"price":102500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46035266404578,"title":"Medium \/ White","option1":"Medium","option2":"White","option3":null,"sku":"5258701","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek FX 3 Disc Gen 3 - Medium \/ White","public_title":"Medium \/ White","options":["Medium","White"],"price":77500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.
Loading more
Brother Kepler World Touring Bike 2024 - Complete Shop Stock BuildSize:
.
.
L.Forks
Bontrager alloy, 25.4 mm clamp, 10-degree, 110 mm length
a class="product__media product__media--featured"
href="/collections/road-gravel-touring/products/brother-kepler-touring-bike-complete-shop-stock-build"
title="Brother Kepler World Touring Bike 2024 - Complete Shop Stock Build"
aria-label="Brother Kepler World Touring Bike 2024 - Complete Shop Stock Build"
style="background-image: url(//projektride.co.uk/cdn/shop/files/DSC02663_600x.jpg?v=1709982890)">
Front Suspensionspan class="visually-hidden">Brother Kepler World Touring Bike 2024 - Complete Shop Stock Build
>
>
Rear Suspension
Head setWeight
<
Weight
M - 12.48 kg / 27.52 lb
<
Weight limit
This bike has a maximum total weight limit (combined weight of bicycle, rider and cargo) of 136 kg (300 lb).
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.
3e\n\u003ctd data-v-05762449=\"\"\u003eM - 12.48 kg \/ 27.52 lb\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" scope=\"row\"\u003eWeight limit\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eThis bike has a maximum total weight limit (combined weight of bicycle, rider and cargo) of 136 kg (300 lb).\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\u003c\/div\u003e\n\u003cdiv class=\"mb-1\"\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eWe 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.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"mb-1\"\u003e\n\u0
42800","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek FX 1 Stagger Gen 3 - Medium","public_title":"Medium","options":["Medium"],"price":50000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45843394986210,"title":"Large","option1":"Large","option2":null,"option3":null,"sku":"1042801","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek FX 1 Stagger Gen 3 - Large","public_title":"Large","options":["Large"],"price":50000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/FX1Stagger_21_32770_A_Primary.webp?v=1724406171","\/\/projektride.co.uk\/cdn\/shop\/files\/FX1Stagger_21_32770_A_Alt2.webp?v=1724406184","\/\/projektride.co.uk\/cdn\/shop\/files\/FX1Stagger_21_32770_A_Alt4.webp?v=172440619
age":{"aspect_ratio":1.333,"height":900,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX1Stagger_21_32770_A_Alt4.webp?v=1724406196"},"aspect_ratio":1.333,"height":900,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX1Stagger_21_32770_A_Alt4.webp?v=1724406196","width":1200},{"alt":null,"id":34501918818530,"position":4,"preview_image":{"aspect_ratio":1.333,"height":900,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX1Stagger_21_32770_A_Alt5.webp?v=1724406205"},"aspect_ratio":1.333,"height":900,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/FX1Stagger_21_32770_A_Alt5.webp?v=1724406205","width":1200}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eThe FX 1 Stagger is a hybrid bike with a classic stepthrough frame design that's easier to mount and dismount wherever you like to ride. It's perfect for anyone looking to get out more, ride as a family, do a bit of w.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentcolor\" aria-hidden=\"true\" role=\"presentation\" class=\"pdl-collapse-item__icon pdl-icon pdl-icon--size-24 is-active\" qaid=\"\"\u003e\u003cpath d=\"M0 0h24v24H0z\" fill=\"none\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-5bd42f3c=\"\" id=\"pdl-collapse-content-995a02\" role=\"tabpanel\" aria-labelledby=\"pdl-collapse-head-995a02\" class=\"pdl-collapse-item__wrap\" data-old-padding-top=\"\" data-old-padding-bottom=\"\" data-old-overflow=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"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
a href="{{ it.product.url }}" class="result__image-link" aria-label='{{ it.product.title }}'>
>
<
span>{{ it.product.badgeText | safe }}
<
>
<
>
{{/if}}
>
<
<
FAQ
Questions and answers
<
500,"shop_id":38436,"currency":"GBP","created_at":"2025-07-26T09:13:57.337Z","updated_at":"2025-12-28T14:44:23.508Z","enable_app":true,"enable_signup_widget":false,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":true,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"disa
ariant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it's restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":null,"preorder_add_to_cart_button_selector":"","preorder_badge_selector":"","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_enabled":false,"preorder_collection_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector"
003c\/div\u003e\n\u003cdiv class=\"mb-1\"\u003e\n\u003cp\u003eBike and frame weights are based on pre-production painted frames at time of publication. Weights may vary in final production.\u003c\/p\u003e\n\u003c\/div\u003e","published_at":"2025-11-12T16:23:38+00:00","created_at":"2024-08-23T10:44:03+01:00","vendor":"Trek","type":"bike","tags":["FX"],"price":50000,"price_min":50000,"price_max":50000,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":45843394920674,"title":"Small","option1":"Small","option2":null,"option3":null,"sku":"1042799","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek FX 1 Stagger Gen 3 - Small","public_title":"Small","options":["Small"],"price":50000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45843394953442,"title":"Medium","optio
Track Service Progressn1":"Medium","option2":null,"option3":null,"sku":"1042800","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek FX 1 Stagger Gen 3 - Medium","public_title":"Medium","options":["Medium"],"price":50000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45843394986210,"title":"Large","option1":"Large","option2":null,"option3":null,"sku":"1042801","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek FX 1 Stagger Gen 3 - Large","public_title":"Large","options":["Large"],"price":50000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/FX1Stagger_21_32770_A_Primary.webp?v=1724406171","\/\/projektride.co.uk\/cdn\/shop\/files\/FX1Stagger_21_32770_A_Alt2.webp?v=1724406184","\/\/projektride.co.uk\/cdn\/shop
king to get out more, ride as a family, do a bit of exercise or commute to work on a versatile bike backed by a lifetime warranty.\u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv role=\"tablist\" aria-multiselectable=\"true\" class=\"pdl-collapse pdp-spec-collapse\" qaid=\"pdp-spec-collapse\"\u003e\n\u003cp\u003e*Please note – spec applies to all sizes unless listed separately\u003c\/p\u003e\n\u003cdiv data-v-5bd42f3c=\"\" data-v-05762449=\"\" id=\"pdl-collapse-item-995a02\" name=\"347\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-995a02\" aria-describedby=\"pdl-collapse-content-995a02\" class=\"\" aria-expanded=\"true\" qaid=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003eFrameset\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-995a02\" type=\"button\" class=\"pdl-collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e
Insure Your Bike7396ba=\"\" data-v-5bd42f3c=\"\" 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-collapse-item__icon pdl-icon pdl-icon--size-24 is-active\" qaid=\"\"\u003e\u003cpath d=\"M0 0h24v24H0z\" fill=\"none\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-5bd42f3c=\"\" id=\"pdl-collapse-content-995a02\" role=\"tabpanel\" aria-labelledby=\"pdl-collapse-head-995a02\" class=\"pdl-collapse-item__wrap\" data-old-padding-top=\"\" data-old-padding-bottom=\"\" data-old-overflow=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"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=\"\" ro
v-05762449=\"\"\u003eBontrager alloy, 27.2 mm, 12 mm offset, 330 mm length\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eHandlebar\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eBontrager Riser, steel, 25.4 mm, 30 mm rise, 600 mm width\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eGrips\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eBontrager Satellite\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"2\" scope=\"row\"\u003e*Stem\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003e\n\u003cspan data-v-05762449=\"\"\u003eSize:\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003eS, M\u003cbr data-v-05762449=\"\"\u003e\u003ca data-v-05762449=\"\" href=\"https:\/\/www.trekbikes.com\/gb\/en_GB\/p\/W325325\"\u003eBontrager alloy, 25.4 mm clamp, 10-degree, 90 mm length\u
003c\/a\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003ctd data-v-05762449=\"\"\u003e\n\u003cspan data-v-05762449=\"\"\u003eSize:\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003eL\u003cbr data-v-05762449=\"\"\u003e\u003ca data-v-05762449=\"\" href=\"https:\/\/www.trekbikes.com\/gb\/en_GB\/p\/W325326\"\u003eBontrager alloy, 25.4 mm clamp, 10-degree, 110 mm length\u003c\/a\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eHead set\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003e1 1\/8\" steel threadless\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eBrake\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eTektro alloy linear-pull\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
tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"mb-1\"\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eWe 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.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"mb-1\"\u003e\n\u003cp\u003eBike and frame weights are based on pre-production painted frames at time of publication. Weights may vary in final production.\u003c\/p\u003e\n\u003c\/div\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {45843394920674 : "deny",45843394953442 : "deny",45843394986210 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {45843394920674
: parseInt("0"),45843394953442 : parseInt("1"),45843394986210 : parseInt("20"),};
window._RestockRocketConfig.variantsPreorderCount = {45843394920674 : parseInt(""),45843394953442 : parseInt(""),45843394986210 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {45843394920674 : null,45843394953442 : null,45843394986210 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {45843394920674 : parseInt(""),45843394953442 : parseInt(""),45843394986210 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {45843394920674 : null,45843394953442 : null,45843394986210 : null,};
window._RestockRocketConfig.variantsShippingText = {45843394920674 : "",45843394953442 : "",45843394986210 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {45843394920674 : null,45843394953442 : null,45843394986210 : null,};
window._RestockRocketConfig.selected_variant_id = 45843394953442;
window._RestockRocketConfig.selected_v
<
Workshop Prices 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
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
Delivery & Returnsage = Date.now() - updatedAt.getTime();
if (age
!settings.multi_language_enabled) {
return settings;
}
if (!settings.translations) {
console.debug('STOQ - No translations found, skipping translati
on');
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 -
e.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
BassoINFORMATION._RestockRocketConfig.settings = settings;
console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`);
// Setup cart selling plan updater BEFORE loading any scripts to avoid race conditions
setupCartSellingPlanUpdater(settings);
if(settings.enable_app) {
const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) {
return integration.type === 'hijack' && integration.enabled && integration.page_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(
251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-02-17T04:29:37Z","market_locations_enabled":false,"market_id":13779632354,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-02-17T04:38:15Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2026-02-17T04:38:15Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642
medium";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,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":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preord
ntdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}];windo
NEWw._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":"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.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019c4de0-280f-760f-b566-2e2f8e837eb8/restock-rocket-shopify-454/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019c4de0-280f-760f-b566-2e2f8e837eb8/restock-rocket-shopify-454/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.sub
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
New<
t);
if (isNaN(updatedAt.getTime())) {
console.debug('STOQ - Invalid updated_at date format in settings');
return null;
}
const age = Date.now() - updatedAt.getTime();
if (age
new<
];
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) {
if (!settings || !settings.preorder_enabled) {
return;
}
// Listen for stoq:preorder-api-ready event dispatched by preorder.js
window.addEventListener('stoq:preorder-api-ready'
new bikes, function(event) {
console.debug('STOQ - Preorder API ready, updating cart selling plans');
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);
});
}
});
}
// First try to get settings from metafields with expiry check
const cachedSettings = window._RestockRocketConfig.cachedSettings;
const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
if (validCachedSettings) {
console.debug('STOQ - using cached settings');
initializeScripts(validCachedSettings);
} else {
console.debug('S
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2024-03-17at10.30.07_600x.png?v=1710671639)">
<
a class="product__media product__media--featured"
href="/collections/road-gravel-touring-bikes/products/surly?_pos=8&_fid=e097f4e04&_ss=c"
title="Surly Midnight Special - Frameset"
aria-label="Surly Midnight Special - Frameset"
style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2023-08-09at13.16.15_600x.png?v=1691583383)">
<span class="visually-hidden">Surly Midnight Special - FramesetTrek Émonda SL 6 Disc>
<
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2023-07-06at10.09.35_600x.png?v=1688635035)">
Trek Émonda SL 6 Disc Pro
From £3,510.00
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot_2024-10-01_at_16.23.29_600x.png?v=1727796235)">
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Kinesis-RTD-Frames---White_1000x1000_d70bc41b-3a66-4ebe-a3dc-b2db8ca0f02d_600x.jpg?v=1683968840)">