Open cart
Insure Your Bike
Parts & Components

Brands See More
Brands
Header Image

Feimin FP-H863[email protected] Maintenance
) where on of the team will be more than happy to help.
Jack The Bike Rack, Front Rack and all fittings
Jack The Bike Rack, Front Rack and all fittings
ons":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","countdown_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,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true}];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":{"t
r you.\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-93fh9r\" name=\"377\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-93fh9r\" aria-describedby=\"pdl-collapse-content-93fh9r\" 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-93fh9r\" type=\"button\" class=\"pdl-collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px
ntegrated Battery, internal cable routing, Motor Armour, post-mount disc, 135x5 mm QR\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\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" scope=\"row\"\u003eMax compatible fork travel\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003e63mm\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-gd40h8\" name=\"380\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-gd40h8\" aria-describedby=\"pdl-collapse-content-gd40h8\" cl 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\"\u003eHub front\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eBontrager sealed bearing, 32-hole, 15 mm alloy thru-axle\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eHub rear\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eEnviolo Trekking, 32-hole, 6-bolt disc, 44T\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eRim\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003e\u003ca data-v-05762449=\"\" href=\"https:\/\/www.trekbikes.com\/gb\/en_GB\/p\/581062\"\u003eBontre\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003eE-system\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-gzsk4v\" type=\"button\" class=\"pdl-collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" 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-gzsk4v\" role=\"tabpanel\" aria-labelledby=\"pdl-collapse-head-gzsk4v\" class=\"pdl-collapse-item__wrap\" data-old-padding-top=\"\" data-old-padding-bottom=\"\" data-old-overftor\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eBosch Performance Line, 250 W, 75 Nm, 20 mph (25 km\/h in Europe)\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-v28yzv\" name=\"386\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-v28yzv\" aria-describedby=\"pdl-collapse-content-v28yzv\" class=\"\" aria-expanded=\"true\" qaid=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003eDrivetrain\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-v28yzv\" type=\"button\" class=\"pdl-collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"cu-v-05762449=\"\"\u003eSize:\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003eS, M, L, XL\u003cbr data-v-05762449=\"\"\u003e\u003ca data-v-05762449=\"\" href=\"https:\/\/www.trekbikes.com\/gb\/en_GB\/p\/W1043753\"\u003eSKS plastic, rear\u003c\/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\u003eS, M, L, XL\u003cbr data-v-05762449=\"\"\u003e\u003ca data-v-05762449=\"\" href=\"https:\/\/www.trekbikes.com\/gb\/en_GB\/p\/W1051529\"\u003eSKS plastic, front\u003c\/a\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\u003c\/div\u003e\n\u003cdiv data-v-5bd42f3c=\"\" data-v-05762449=\"\" id=\"pdl-collapse-item-yj3jvu\" name=\"395\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-yj3jvu\" aria-describedby=\"
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=\"\" scope=\"row\"\u003eWeight\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eM - 26.70 kg \/ 58.87 lb (excluding battery)\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 160 kg (352 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\u003eW
:"400WH","option3":null,"sku":"5295128","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 5 Lowstep - Medium \/ 400WH","public_title":"Medium \/ 400WH","options":["Medium","400WH"],"price":450000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45856716685538,"title":"Medium \/ 545WH","option1":"Medium","option2":"545WH","option3":null,"sku":"5295129","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek District+ 5 Lowstep - Medium \/ 545WH","public_title":"Medium \/ 545WH","options":["Medium","545WH"],"price":472500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45856716718306,"title":"Medium \/ 725WH","option1":"Medium","option2":"725WH","option3":null,"sku":"5295130","requires_shipping":true,"taxable":true,"featured_imag"\" scope=\"row\"\u003eMax tyre size\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003e27.5x2.40\"\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-gzsk4v\" name=\"383\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-gzsk4v\" aria-describedby=\"pdl-collapse-content-gzsk4v\" class=\"\" aria-expanded=\"true\" qaid=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003eE-system\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-gzsk4v\" type=\"button\" class=\"pdl-collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentcolor\" aria-hidde
03e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eController\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eBosch Intuvia 100, smart system\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eComputer\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eBosch LED remote, smart system\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eMotor\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eBosch Performance Line, 250 W, 75 Nm, 20 mph (25 km\/h in Europe)\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-v28yzv\" name=\"386\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pd
-collapse-head-v28yzv\" 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\"\u003eShifter\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eEnviolo Automatic Controller\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"2\" scope=\"row\"\u003e*Crank\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003e\n\u003cspan data-v-05762449=\"\"\u003eSize:\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003eS\u003cbr data-v-05762449=\"\"\u003e\u003ca data-v-05762449=\"\" href=\"https:\/\/www.trekbikes.com\/gb\/en_GB\/p\/W572000\"\u003eProWheel alloy, 170 mm length\u003c\/a\u003e\n\u003c\/
50
span class="visually-hidden">Hire Ortlieb 40L Pannier Bags
Steel > 50 Thanks for considering ProjektRide for your next purchase. All bikes are fully assembled and test rode before leaving our bike shop in Edinburgh.  Please allow 5-7 days for bicycle delivery although we aim to post bikes out the same day.
Life Systems Pocket First Aid Kit - HIRE a class="product__media product__media--featured" href="/products/kryptolok-standard-u-lock-with-4-foot-kryptoflex-cable-hire" title="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" aria-label="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849_600x.png?v=1691610428)">
span class="visually-hidden">Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable { "@context": "http://schema.org/", "@type": "Product", "name": "Kona Dew Deluxe Hybrid Bike", "url": "https:\/\/projektride.co.uk\/products\/kona-dew-deluxe","image": [ "https:\/\/projektride.co.uk\/cdn\/shop\/products\/dew_deluxe_3429x.jpg?v=1678722446" ],"description": "The Dew Deluxe is the workhorse of choice for commuters from all around the world, whether riding to work or to the grocery store. A reliable, easy-to-ride bike ensures a safe and efficient ride every time you’re on it. With upright and comfortable geometry, a reliable 11-speed drivetrain, hydraulic disc brakes, fast-rolling, puncture-resistant 650x47c tires, and fenders with mud flaps, the Dew Deluxe will get you there in no time at all. \n \n\n\n\nSPECIFICATIONS\n\n\n\n\nFRAME MATERIAL\nKona 6061 Aluminum Butted\n\n\nSIZES\nS, M, L, XL\n\n\nREAR SHOCK\nn\/a\n\n\nFORK\nKona Project Two Aluminum Disc\n\n\nCRANKARMS\nSamox\n\n\nCHAINRINGS\n38t\n\n\nB\/B\nFSA 68mm\n\n\nPEDALS\nKona JS2\n\n\nCHAIN\nKMC X11\n\n\nCASSETTE\nShimano Deore 11-51t 11spd\n\n\nCHAINGUIDE\nn\/a\n\n\nF\/D\nn\/a\n\n\nR\/D\nShimano Deore\n\n\nSHIFTERS\nShimano Deore\n\n\nBRAKE CALIPERS\nTektro HDM275 Hydraulic\n\n\nFRONT BRAKE ROTOR\nTektro TR160 160mm\n\n\nREAR BRAKE ROTOR\nTektro TR160 160mm\n\n\nBRAKE LEVERS\nTektro HDM275 Hydraulic\n\n\nHEADSET\nFeimin FP-H863\n\n\nHANDLEBAR\nKona Aluminum Riser\n\n\nSTEM\nKona Commuter\n\n\nSEATPOST\nKona Thumb w\/Offset 27.2mm\n\n\nSEAT CLAMP\nKona Clamp\n\n\nGRIPS\nKona Key Grip\n\n\nSADDLE\nKona Commuter\n\n\nFRONT HUB\nFormula 100x9mm\n\n\nREAR HUB\nFormula 135x10mm\n\n\nSPOKES\nStainless Black 14g\n\n\nRIMS\nDouble Wall alloy\n\n\nFRONT TIRE\nWTB Horizon Comp w\/ Puncture Protection 650x47c\n\n\nREAR TIRE\nWTB Horizon Comp w\/ Puncture Protection 650x47c\n\n\nPAINT COLOR\nGloss Porcelain w\/ Charcoal \u0026amp; Cyan Decals\n\n\nEXTRAS\nFenders w\/ Mudflaps \u0026amp; Kickstand\n\n\n\n\nAll specifications are subject to change without notice\n\n\nGEOMETRYmminches\n\n\n\n\n\n\n \nSIZE\nS\nM\nL\nXL\n\n\n1\nST LENGTH\n420\n470\n520\n580\n\n\n2\nTT LENGTH\n550\n597\n636\n686\n\n\n3\nREACH\n398\n423\n439\n465\n\n\n4\nSTACK\n569\n607\n644\n682\n\n\n5\nSTANDOVER\n687\n722\n757\n798\n\n\n6\nHT ANGLE\n70.0\n70.0\n70.0\n70.0\n\n\n7\nHT LENGTH\n135\n175\n215\n255\n\n\n8\nST ANGLE\n75.0\n74.0\n73.0\n72.0\n\n\n9\nCS LENGTH\n450\n450\n450\n450\n\n\n10\nBB DROP\n70\n70\n70\n70\n\n\n11\nBB HEIGHT\n272\n272\n272\n272\n\n\n12\nWHEELBASE\n1077\n1116\n1146\n1185\n\n\n13\nFRONT CENTER\n636\n675\n705\n744\n\n\n14\nFORK LENGTH\n410\n410\n410\n410\n\n\n15\nFORK OFFSET\n50\n50\n50\n50\n\n\n\n\n\n\n\nThanks for considering ProjektRide for your next purchase. All bikes are fully assembled and test rode before leaving our bike shop in Edinburgh.  Please allow 5-7 days for bicycle delivery although we aim to post bikes out the same day.\nIf any purchases are to be made using any cycle to work schemes, please either pop into the shop or get in touch via email\/phone to get the ball rolling. If you are not 100% sure with bike sizing, please feel free to contact us to double check.\nAll bike sales include a free running in service after 6-10 weeks.\n\n\n\n","sku": "KN23B-DWDE-SM-WH","brand": { "@type": "Thing", "name": "Kona" },"gtin8": "","offers": [{ "@type" : "Offer","sku": "KN23B-DWDE-SM-WH","availability" : "http://schema.org/OutOfStock", "price" : 799.0, "priceCurrency" : > > Select variant dropdown Extra Large - £1,799.00 GBP
1
1+div class="featured-image__bg bg-pos-center-center" style="background-image: url('//projektride.co.uk/cdn/shop/files/2571D9FF-E9AE-4004-9A55-C7FD4DD999D6_2048x.jpg?v=1640941114');"> >
Buy Sell Ride Confident
If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item. window.appBlockPlacements ||= []; if (window.klarnaAppBlocksManager) { window.klarnaAppBlocksManager.push({ productVariants: [{"id":45817778045154,"title":"Extra Small","option1":"Extra Small","option2":null,"option3":null,"sku":"GN13110XS","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Genesis Tour De Fer 30 2024 - Extra Small","public_title":"Extra Small","options":["Extra Small"],"price":179900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45817778077922,"title":"Small","option1":"Small","option2":null,"option3":null,"sku":"GN13110SM","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Genesis Tour De Fer 30 2024 - Small","public_title":"Small","options":["Small"],"price":179900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45817778110690,"title":"Medium","option1":"Medium","option2":null,"option3":null,"sku":"GN13110MD","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Genesis Tour De Fer 30 2024 - Medium","public_title":"Medium","options":["Medium"],"price":179900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45817778143458,"title":"Large","option1":"Large","option2":null,"option3":null,"sku":"GN13110LG","requires_shipping":true,"taxable":true,"featurePostage is free on orders over £50. Orders under £50, our postage charge is £3.99. cartPrice: '0', selector: 'shopify-osm-Ac2tTRTlRaTI0R3BZb__klarna_on_site_messaging_app_block_8gNReH', topPadding: '0', bottomPadding: '0', }); } else { window.appBlockPlacements.push({ productVariants: [{"id":45817778045154,"title":"Extra Small","option1":"Extra Small","option2":null,"option3":null,"sku":"GN13110XS","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Genesis Tour De Fer 30 2024 - Extra Small","public_title":"Extra Small","options":["Extra Small"],"price":179900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45817778077922,"title":"Small","option1":"Small","option2":null,"option3":null,"sku":"GN13110SM","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Genesis Tour De Fer 30 2024 - Small","public_title":"Small","options":["Small"],"price":179900,"weight":0,"compare_at_prWe also have a physical store, if you are local please pop in -,"option1":"Extra Large","option2":null,"option3":null,"sku":"GN13110XL","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Genesis Tour De Fer 30 2024 - Extra Large","public_title":"Extra Large","options":["Extra Large"],"price":179900,"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: '179900', cartPrice: '0', selector: 'shopify-osm-Ac2tTRTlRaTI0R3BZb__klarna_on_site_messaging_app_block_8gNReH', topPadding: '0', bottomPadding: '0', }); } ProjektRide Bike Shop EdinburghProduct Details
.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; }Flat Simplicity
img src="//projektride.co.uk/cdn/shop/files/logo_header_2048x2048.png?v=1634060673" alt="" class="logo--footer"> Building Your Bike From the Box
Insure Your Bike
rm_enabled":false,"inline_form_selector":null,"inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"market_setup_type":"single_market","shopify_app_id":5940125,"cache":true,"cached_at":"2025-11-11T14:27:02.333Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43590980075746,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074,43936000835810,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,43936078037218,43936078069986,43936088195298,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,43936142393570,43936142426338,43936142459106,439
5877346,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,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097sMarketKey = "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":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07rty_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":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","preorder_min_quantreated_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":8182075949282,"title":"Jack The Bike Rack, Front Rack and all fittings","handle":"jack-the-bike-rack-front-rack-and-all-fittings","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eWho's JACK?\u003c\/span\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eJACK is a universal-fit front bicycle rack that securely straps to almost any bike, offering a straightforward solution to carrying your things with you while you ride. A ‘Rack of all Trades’, JACK fits to your bike with a tool-free strap system, requiring no special bicycle frame or fork, no specialist equipment and no bike maintenance skills.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e","published
ektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-23at13.28.51.png?v=1698064283","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-23at13.28.58.png?v=1698064281","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-23at13.29.03.png?v=1698064281","\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-23at13.29.09.png?v=1698064282"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-23at13.28.55.png?v=1698064281","options":["Title"],"media":[{"alt":null,"id":32381260136674,"position":1,"preview_image":{"aspect_ratio":1.008,"height":732,"width":738,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-23at13.28.55.png?v=1698064281"},"aspect_ratio":1.008,"height":732,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-23at13.28.55.png?v=1698064281","width":738},{"alt":null,"id":32381260169442,"position":2,"preview_image":{"aspect_ratio":1.008,"height":732,"width":738,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screatio":0.956,"height":814,"width":778,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-23at13.29.09.png?v=1698064282"},"aspect_ratio":0.956,"height":814,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-23at13.29.09.png?v=1698064282","width":778}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eWho's JACK?\u003c\/span\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003cspan data-mce-fragment=\"1\"\u003eJACK is a universal-fit front bicycle rack that securely straps to almost any bike, offering a straightforward solution to carrying your things with you while you ride. A ‘Rack of all Trades’, JACK fits to your bike with a tool-free strap system, requiring no special bicycle frame or fork, no specialist equipment and no bike maintenance skills.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\
7616255,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":" 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","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shu003e\n\u003ctd class=\"label\"\u003eST LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e420\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e470\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e520\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e580\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e2\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eTT LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e550\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e597\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e636\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e686\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e3\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eREACH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e398\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e423\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e439\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e465\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"yment_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":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e7\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eHT LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e135\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e175\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e215\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e255\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e8\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eST ANGLE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e75.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e74.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e73.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e72.0\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e9\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eCS LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e450\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e450\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e450\u003c\/td\u003e\n\u003ctd
stockrocket-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 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_u003e1146\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1185\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e13\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eFRONT CENTER\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e636\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e675\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e705\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e744\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e14\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eFORK LENGTH\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e410\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e410\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e410\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e410\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e15\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eFORK OFFSET\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e50\u003c\/td\u003e\n\u003ct !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
ug('STOQ - Invalid updated_at date format in settings'); return null; } const age = Date.now() - updatedAt.getTime(); if (age ent=\"1\"\u003eAll bike sales include a free running in service after 6-10 weeks.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {43916579799266 : "deny",43916579832034 : "deny",43916579864802 : "deny",43916579897570 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {43916579799266 : parseInt("0"),43916579832034 : parseInt("0"),43916579864802 : parseInt("0"),43916579897570 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {43916579799266 : parseInt(""),43916579832034 : parseInt(""),43916579864802 : parseInt(""),43916579897570 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {43916579799266 : null,43916579832034 : null,43916579864802 : null,43916579897570 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {43916579799266 : parseInt(""),43916579832034 : parseInt(""),43916579864802 : parseInt(""),43916579897570 #FeaturedImage--template--24610452406655__1645734801adfd4c07 { --overlay-opacity: 0.2; }hed 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) {
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 || 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 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 d rder_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._RestockRocketCon fig.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; function attemptCartCheck(attempt = 1) { if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) { window._RestockRocket.updateCartSellingPlans() <-Brother Mehteh - 2025 Colours]; 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._RestockRocketConfig.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?.themw() - updatedAt.getTime(); if (age .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 a class="product__media product__media--featured" href="/collections/brother-cycles/products/brother-cycles-mr-wooden" title="-Brother Cycles Mr Wooden Frameset" aria-label="-Brother Cycles Mr Wooden Frameset" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot_2024-10-01_at_16.22.50_600x.png?v=1727796235)"> << d 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.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.pag 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 || 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(); } span class="visually-hidden">-Brother Cycles Mr Wooden Frameset { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { 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._RestockRocketConfig.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': ' > console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } else if (attempt ProjektRidediv 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)">max-width:480px){.restock-rocket-preorder-countdown-timer{padding:12px}.restock-rocket-preorder-countdown-timer .countdown-units{width:100%;gap:10px}.restock-rocket-preorder-countdown-timer .countdown-box{width:100%;min-width:50px;padding:12px 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX ment-input{margin-right:10px;margin-top:-3px;vertical-align:middle;margin-left:0;accent-color:#202223}.restock-rocket-payment-description{margin-top:4px;flex:1 1 100%}.restock-rocket-preorder-badge{font-size:13px;line-height:1;padding:5px 13px 6px;border-radius:40px;height:auto;border:none;width:auto;z-index:2;margin:0;background:0 0}.preorder-badge-collection{position:absolute;top:10px;right:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restock-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;Buy Sell Ride Confident
QUICK LINKS
a class="product__media product__media--featured" href="/collections/brother-cycles/products/brother-big-bro-2025" title="-Brother Big Bro 2025" aria-label="-Brother Big Bro 2025" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2025-09-30at13.32.25_600x.png?v=1759240885)"> About Us
span class="visually-hidden">-Brother Big Bro 2025Contact Us
> Blog
traditional AtranVelo Explorer front pannier rack keeps luggage as low as possible to maintain the Tour De Fer's sublime handling when fully loaded.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli aria-hidden=\"true\" class=\"carousel__slide carousel__slide--clone carousel__slide--prev\"\u003e\n\u003cdiv data-content-type=\"slide\" class=\"carousel__item pagebuilder-column\"\u003e\n\u003cfigure data-pb-style=\"WJGR38C\" data-element=\"main\" data-appearance=\"full-width\" data-content-type=\"image\" class=\"pagebuilder-image\"\u003e\u003cpicture\u003e\u003csource data-element=\"lazy_mobile_image\" srcset=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_30\/800x1000-tdf30-keyfeature-d.jpg\" media=\"(max-width: 768px)\"\u003e\u003cimg data-element=\"lazy_image\" src=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_30\/800x1000-tdf30-keyfeature-d.jpg\" title=\"\" alt=\"\"\u003e\u003c\/picture\u003e\u003c\/fi
gure\u003e\n\u003ch3 data-pb-style=\"HOT2T7R\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"heading\" class=\"text-xl font-medium\"\u003eAVS Compatible\u003c\/h3\u003e\n\u003cdiv data-pb-style=\"SKOXE2S\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"text\" class=\"h-40\"\u003e\n\u003cp id=\"NM8TUA9\"\u003eThe AtranVelo Tour Lite rear rack is a sturdy companion with a 27kg load capacity. The AVS interface allows rapid installation and removal of compatible accessories without compromising traditional pannier fittings.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv data-content-type=\"slide\" class=\"carousel__item pagebuilder-column\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!----\u003e","published_at":"2024-08-15T12:14:33+01:00","created_at":"2024-08-15T12:14:55+01:00","vendor":"Genesis","type":"Bicycles","t nits{width:100%;gap:10px}.restock-rocket-preorder-countdown-timer .countdown-box{width:100%;min-width:50px;padding:12px 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animatispan class="visually-hidden">Brother Mehteh Custom Build on:.5s forwards slide-out-left;animation:.5s forwards slide-out-left}.restock-rocket-toast-right{right:0;transform:translateX(100%);-webkit-transform:translateX(100%);border-radius:10px 0 0 10px}.restock-rocket-toast-right.slide-out{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-right}@keyframes slide{100%{transform:translateX(0)}}@-webkit-keyframes slide{100%{-webkit-transform:translateX(0)}}@keyframes slide-out-left{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}}
>