Hire Lazer Compact HelmetAbout Us
Contact Us£0.00Blog
t_selector":"","preorder_payment_insert_selector_type":"afterend","preorder_price_container_selector":"","preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":"","preorder_terms_insert_selector_type":"afterend","preorder_original_price_selector":"","preorder_price_format":"{{amount}} {{currency}}","show_badge_if_any_variant_is_preorder":false,"enable_console_debug":false,"inline_form_enabled":false,"inline_form_selector":null,"inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"storefront_form_show_image":false,"storefront_form_text_color":"#202223","storefront_form_background_color":"#FFFFFF","storefront_form_border_radius":0,"market_setup_type":"single_market","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":null,"preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","cache":true,"cached_at":"2026-01-08T16:12:13.364Z","multi_language_en abled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,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,43936152060130,43936152092898,43936152125666,43936193118434,43936250429666,43936255803618,43936266682594,43936266715362,43936293978338,43936294011106,43936316424418,43936316457186,43936320880866,43936320913634,43936320946402,43936327041250,43936327074018,43936327106786,4393
6331661538,43936332349666,43936333103330,43936351224034,43936353714402,43936362889442,43936362922210,43936388153570,43936389333218,43936395526370,43936398508258,43936401522914,43936408568034,43936414400738,43936700727522,43936706101474,43936706134242,43936706167010,43936706199778,43936706232546,43936706265314,43938308587746,43938308653282,43938308718818,43938308751586,43938308784354,43938308817122,43938322612450,43938322645218,43938322677986,43981336051938,43981336084706,43981336117474,43981336150242,43981345587426,43981345620194,43981345652962,43981345685730,43981357580514,43981357613282,43981362462946,43981362495714,43981362528482,43981369016546,43981369049314,43981374914786,43981374947554,43981374980322,43981392773346,43981392838882,43981392904418,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987905762,43981987938530,43981989085410,43981989118178,43981989150946,43981990887650,43981990920418,43981990953186,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,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-02-12T23:42:02Z","market_locations_enProduct Detailsabled":false,"market_id":382140642,"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-12T23:20:01Z","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-12T23:20:01Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_pla
le=\"KSFHU0Y\"\u003e\u003cpicture\u003e\u003csource media=\"(max-width: 768px)\" srcset=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-c.jpg\" data-element=\"lazy_mobile_image\"\u003e\u003cimg alt=\"\" title=\"\" src=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-c.jpg\" data-element=\"lazy_image\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 class=\"text-xl font-medium\" data-content-type=\"heading\" data-appearance=\"default\" data-element=\"main\" data-pb-style=\"KFWRVY9\"\u003eBusch \u0026amp; Muller Lighting\u003c\/h3\u003e\n\u003cdiv class=\"h-40\" data-content-type=\"text\" data-appearance=\"default\" data-element=\"main\" data-pb-style=\"NEXI8A7\"\u003e\n\u003cp id=\"NM8TUA9\"\u003eLumotec IQ-X headlight and Secula Plus tail light not only keep you seen in urban environments, but are plenty powerful enough to navigate at night.\u003c\/p\u003e\n\u003c\/div\The one sizeu003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"carousel__slide carousel__slide--clone\" aria-hidden=\"true\"\u003e\n\u003cdiv class=\"carousel__item pagebuilder-column\" data-content-type=\"slide\"\u003e\n\u003cfigure class=\"pagebuilder-image\" data-content-type=\"image\" data-appearance=\"full-width\" data-element=\"main\" data-pb-style=\"HA5R2S1\"\u003e\u003cpicture\u003e\u003csource media=\"(max-width: 768px)\" srcset=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-b.jpg\" data-element=\"lazy_mobile_image\"\u003e\u003cimg alt=\"\" title=\"\" src=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-b.jpg\" data-element=\"lazy_image\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 class=\"text-xl font-medium\" data-content-type=\"heading\" data-appearance=\"default\" data-element=\"main\" data-pb-style=\"J7KOQ0B\"\u003eAVS Compatible\u003c\/h3\u003e\n\u003cdiv class=\"h-40\" data-content-type=\"text\" data-appearance=\"default\" data-element=\"main\" data-pb-style=\"UQJWAU9\"\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\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"carousel__slide carousel__slide--clone carousel__slide--prev\" aria-hidden=\"true\"\u003e\n\u003cdiv class=\"carousel__item pagebuilder-column\" data-content-type=\"slide\"\u003e\n\u003cfigure class=\"pagebuilder-image\" data-content-type=\"image\" data-appearance=\"full-width\" data-element=\"main\" data-pb-style=\"FJQ10Y7\"\u003e\u003cpicture\u003e\u003csource media=\"(max-width: 768px)\" srcset=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-a.jpg\" data-element=\"lazy_mobile_image\"\u00 3e\u003cimg alt=\"\" title=\"\" src=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-a.jpg\" data-element=\"lazy_image\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 class=\"text-xl font-medium\" data-content-type=\"heading\" data-appearance=\"default\" data-element=\"main\" data-pb-style=\"DOXP5QN\"\u003eLowrider\u003c\/h3\u003e\n\u003cdiv class=\"h-40\" data-content-type=\"text\" data-appearance=\"default\" data-element=\"main\" data-pb-style=\"PIGS7QJ\"\u003e\n\u003cp id=\"NM8TUA9\"\u003eA traditional AtranVelo Explorer front pannier rack keeps luggage as low as possible to maintain the Tour De Fer's sublime handling when fully loaded.\u003cpicture\u003e\u003csource media=\"(max-width: 768px)\" srcset=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-d.jpg\" data-element=\"lazy_mobile_image\"\u003e\u003c\/picture\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv clLazer Compact Helmetass=\"carousel__item pagebuilder-column\" data-content-type=\"slide\"\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","published_at":"2024-08-15T12:15:00+01:00","created_at":"2024-08-15T12:15:19+01:00","vendor":"Genesis","type":"Bicycles","tags":["bicycle","bike","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled","Tour De Fer"],"price":184700,"price_min":184700,"price_max":184700,"available":true,"price_varies":false,"compare_at_price":219900,"compare_at_price_min":219900,"compare_at_price_max":219900,"compare_at_price_varies":false,"variants":[{"id":45817780601058,"title":"Extra Small","option1":"Extra Small","option2":null,"option3":null,"sku":"GN13210XS","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Genesis Tour De Fer 40 - Extra Small","public_title":"Extra Small","options":["Extra Small"],"price":184700,"weight":0,"compare_at_price":219900,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45817780633826,"title":"Small","option1":"Small","option2":null,"option3":null,"sku":"GN13210SM","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Genesis Tour De Fer 40 - Small","public_title":"Small","options":["Small"],"price":184700,"weight":0,"compare_at_price":219900,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45817780666594,"title":"Medium","option1":"Medium","option2":null,"option3":null,"sku":"GN13210MD","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Genesis Tour De Fer 40 - Medium","public_title":"Medium","options":["Medium"],"price":184700,"weight":0,"compare_at_price":219900,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45817780699362,"title":"Lar ge","option1":"Large","option2":null,"option3":null,"sku":"GN13210LG","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Genesis Tour De Fer 40 - Large","public_title":"Large","options":["Large"],"price":184700,"weight":0,"compare_at_price":219900,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45817780732130,"title":"Extra Large","option1":"Extra Large","option2":null,"option3":null,"sku":"GN13210XL","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Genesis Tour De Fer 40 - Extra Large","public_title":"Extra Large","options":["Extra Large"],"price":184700,"weight":0,"compare_at_price":219900,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_01.jpg?v=1723720519","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_02.jpg?v=1723720519","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_03.jpg?v=1723720519","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_04.jpg?v=1723720519","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_05.jpg?v=1723720519","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_06.jpg?v=1723720519","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_07.jpg?v=1723720519","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_08.jpg?v=1723720519","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_09.jpg?v=1723720519","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_10.jpg?v=1723720519","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_11.jpg?v=1723720519","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_12.jpg?v=1723720519","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_13.jpg?v=1723720519","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_14.jpg?v=1723720519"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_01.jpg?v=1723720519",is all you need to get started. This compact adult bike helmet provides comfort, safety and style, in an attractive and low-priced package."options":["Size"],"media":[{"alt":null,"id":34464634241250,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_01.jpg?v=1723720519"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_01.jpg?v=1723720519","width":1800},{"alt":null,"id":34464634274018,"position":2,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_02.jpg?v=1723720519"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_02.jpg?v=1723720519","width":1800},{"alt":null,"id":34464634306786,"position":3,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_03.jpg?v=1723720519"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_det
ail_03.jpg?v=1723720519","width":1800},{"alt":null,"id":34464634339554,"position":4,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_04.jpg?v=1723720519"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_04.jpg?v=1723720519","width":1800},{"alt":null,"id":34464634372322,"position":5,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_05.jpg?v=1723720519"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_05.jpg?v=1723720519","width":1800},{"alt":null,"id":34464634405090,"position":6,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_06.jpg?v=1723720519"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/s hop\/files\/gn13210_detail_06.jpg?v=1723720519","width":1800},{"alt":null,"id":34464634437858,"position":7,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_07.jpg?v=1723720519"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_07.jpg?v=1723720519","width":1800},{"alt":null,"id":34464634470626,"position":8,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_08.jpg?v=1723720519"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_08.jpg?v=1723720519","width":1800},{"alt":null,"id":34464634503394,"position":9,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_09.jpg?v=1723720519"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_09.jpg?v=1723720519","width":1800},{"alt":null,"id":34464634536162,"position":10,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_10.jpg?v=1723720519"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_10.jpg?v=1723720519","width":1800},{"alt":null,"id":34464634568930,"position":11,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_11.jpg?v=1723720519"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_11.jpg?v=1723720519","width":1800},{"alt":null,"id":34464634601698,"position":12,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_12.jpg?v=1723720519"},"aspect_ratio":1.0,"height":1800,"media_type":"image"Features & Benefits:,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_12.jpg?v=1723720519","width":1800},{"alt":null,"id":34464634634466,"position":13,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_13.jpg?v=1723720519"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_13.jpg?v=1723720519","width":1800},{"alt":null,"id":34464634667234,"position":14,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_14.jpg?v=1723720519"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13210_detail_14.jpg?v=1723720519","width":1800}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cdiv data-content-type=\"row\" data-appearance=\"contained\" data-element=\"main\"\u003e\n\u003cdiv class=\"col-pr-4\" data-enable-parallax=\"0\" data-parallax-speed=\"0.5\" data-background-images=\"{}\" data-background-type=\"image\" data-video-loop=\"true\" data-video-play-only-visible=\"true\" data-video-lazy-load=\"true\" data-video-fallback-src=\"\" data-element=\"inner\" data-pb-style=\"C46558U\"\u003e\n\u003cdiv class=\"pagebuilder-column-group\" data-background-images=\"{}\" data-content-type=\"column-group\" data-appearance=\"default\" data-grid-size=\"12\" data-element=\"main\" data-pb-style=\"U6VMSY5\"\u003e\n\u003cdiv class=\"pagebuilder-column-line\" data-content-type=\"column-line\" data-element=\"main\" data-pb-style=\"YPFQNMN\"\u003e\n\u003cdiv class=\"pagebuilder-column\" data-content-type=\"column\" data-appearance=\"full-height\" data-background-images=\"{}\" data-element=\"main\" data-pb-style=\"D14MB7N\"\u003e\n\u003ch2 data-content-type=\"heading\" data-appearance=\"default\" data-element=\"main\"\u003eEscapism Perfection\u003c\/h2\u003e\n\u003cdiv data-content-type=\"text\" data-appearance=\"default\" data-element=\"main\"\u003e\n\u003cp\u0 03e\u003cspan\u003eReady for any escape, the Tour De Fer 40 comes jam packed with details and add-ons right out of the box.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eWe've done the tinkering, the fettling, and the \"what if?\" head scratching so you don't have to. This model is ready for a round-the-world tour straight from new bike day.\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003csection class=\"carousel\" dir=\"ltr\" aria-label=\"Gallery\" tabindex=\"0\"\u003e\n\u003cdiv class=\"carousel__viewport\"\u003e\n\u003col class=\"carousel__track\"\u003e\n\u003cli class=\"carousel__slide carousel__slide--clone\" aria-hidden=\"true\"\u003e\n\u003cdiv class=\"carousel__item pagebuilder-column\" data-content-type=\"slide\"\u003e\n\u003cfigure class=\"pagebuilder-image\" data-content-type=\"image\" data-appearance=\"full-width\" data-element=\"main\" data-pb-style=\"O8RCGJI\"\u003e\u003cpicture\u003e\u003csourc- e media=\"(max-width: 768px)\" srcset=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-d.jpg\" data-element=\"lazy_mobile_image\"\u003e\u003cimg alt=\"\" title=\"\" src=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-d.jpg\" data-element=\"lazy_image\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 class=\"text-xl font-medium\" data-content-type=\"heading\" data-appearance=\"default\" data-element=\"main\" data-pb-style=\"Q0MSQ0C\"\u003eRefined Drivetrain\u003c\/h3\u003e\n\u003cdiv class=\"h-40\" data-content-type=\"text\" data-appearance=\"default\" data-element=\"main\" data-pb-style=\"DVY85TJ\"\u003e\n\u003cp id=\"NM8TUA9\"\u003eGone are the triple chainsets of yesteryear, replaced with a wide ratio 11-34T cassette and our own 46-30T double chainset.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"carousel__slide carousel__sl
ide--clone\" aria-hidden=\"true\"\u003e\n\u003cdiv class=\"carousel__item pagebuilder-column\" data-content-type=\"slide\"\u003e\n\u003cfigure class=\"pagebuilder-image\" data-content-type=\"image\" data-appearance=\"full-width\" data-element=\"main\" data-pb-style=\"KSFHU0Y\"\u003e\u003cpicture\u003e\u003csource media=\"(max-width: 768px)\" srcset=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-c.jpg\" data-element=\"lazy_mobile_image\"\u003e\u003cimg alt=\"\" title=\"\" src=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-c.jpg\" data-element=\"lazy_image\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 class=\"text-xl font-medium\" data-content-type=\"heading\" data-appearance=\"default\" data-element=\"main\" data-pb-style=\"KFWRVY9\"\u003eBusch \u0026amp; Muller Lighting\u003c\/h3\u003e\n\u003cdiv class=\"h-40\" data-content-type=\"text\" data-appearance=\"default
- \" data-element=\"main\" data-pb-style=\"NEXI8A7\"\u003e\n\u003cp id=\"NM8TUA9\"\u003eLumotec IQ-X headlight and Secula Plus tail light not only keep you seen in urban environments, but are plenty powerful enough to navigate at night.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"carousel__slide carousel__slide--clone\" aria-hidden=\"true\"\u003e\n\u003cdiv class=\"carousel__item pagebuilder-column\" data-content-type=\"slide\"\u003e\n\u003cfigure class=\"pagebuilder-image\" data-content-type=\"image\" data-appearance=\"full-width\" data-element=\"main\" data-pb-style=\"HA5R2S1\"\u003e\u003cpicture\u003e\u003csource media=\"(max-width: 768px)\" srcset=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-b.jpg\" data-element=\"lazy_mobile_image\"\u003e\u003cimg alt=\"\" title=\"\" src=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-b.jpg\" dStyle and performance on a budgetata-element=\"lazy_image\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 class=\"text-xl font-medium\" data-content-type=\"heading\" data-appearance=\"default\" data-element=\"main\" data-pb-style=\"J7KOQ0B\"\u003eAVS Compatible\u003c\/h3\u003e\n\u003cdiv class=\"h-40\" data-content-type=\"text\" data-appearance=\"default\" data-element=\"main\" data-pb-style=\"UQJWAU9\"\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\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli class=\"carousel__slide carousel__slide--clone carousel__slide--prev\" aria-hidden=\"true\"\u003e\n\u003cdiv class=\"carousel__item pagebuilder-column\" data-content-type=\"slide\"\u003e\n\u003cfigure class=\"pagebuilder-image\" data-content-type=\"image\" data-appearance=\"full-width\" data-element=\"main \" data-pb-style=\"FJQ10Y7\"\u003e\u003cpicture\u003e\u003csource media=\"(max-width: 768px)\" srcset=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-a.jpg\" data-element=\"lazy_mobile_image\"\u003e\u003cimg alt=\"\" title=\"\" src=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-a.jpg\" data-element=\"lazy_image\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 class=\"text-xl font-medium\" data-content-type=\"heading\" data-appearance=\"default\" data-element=\"main\" data-pb-style=\"DOXP5QN\"\u003eLowrider\u003c\/h3\u003e\n\u003cdiv class=\"h-40\" data-content-type=\"text\" data-appearance=\"default\" data-element=\"main\" data-pb-style=\"PIGS7QJ\"\u003e\n\u003cp id=\"NM8TUA9\"\u003eA traditional AtranVelo Explorer front pannier rack keeps luggage as low as possible to maintain the Tour De Fer's sublime handling when fully loaded.\u003cpicture\u003e\u003csource media =\"(max-width: 768px)\" srcset=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_40\/800x1000-tdf40-keyfeature-d.jpg\" data-element=\"lazy_mobile_image\"\u003e\u003c\/picture\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"carousel__item pagebuilder-column\" data-content-type=\"slide\"\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"}; window._RestockRocketConfig.variantsInventoryPolicy = {45817780601058 : "deny",45817780633826 : "deny",45817780666594 : "deny",45817780699362 : "deny",45817780732130 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {45817780601058 : parseInt("1"),45817780633826 : parseInt("1"),45817780666594 : parseInt("1"),45817780699362 : parseInt("1"),45817780732130 : parseInt("1"),}; window._RestockRocketConfig.variantsPreorderCount = {45817780601058 : parseInt(""),45817780633826 : parseI
- nt(""),45817780666594 : parseInt(""),45817780699362 : parseInt(""),45817780732130 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {45817780601058 : null,45817780633826 : null,45817780666594 : null,45817780699362 : null,45817780732130 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {45817780601058 : parseInt(""),45817780633826 : parseInt(""),45817780666594 : parseInt(""),45817780699362 : parseInt(""),45817780732130 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {45817780601058 : null,45817780633826 : null,45817780666594 : null,45817780699362 : null,45817780732130 : null,}; window._RestockRocketConfig.variantsShippingText = {45817780601058 : "",45817780633826 : "",45817780666594 : "",45817780699362 : "",45817780732130 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {45817780601058 : null,45817780633826 : null,45817780666594 : null,45817780699362 : null,45817780732130 : null,}; window._RTurnfit TS plus adjustment: simply turn the dial at the rear of the helmet for a great fitestockRocketConfig.selected_variant_id = 45817780601058; window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/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.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 const LIQUID_CACHE_MAX_AGE = 2 * 60 * 60; // 2 hours in seconds // Calculate Liquid cache freshness once at initialization const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt; // Validate timestamp and calculate cache age if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) { console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh'); window._RestockRocketConfig.isLiquidCacheFresh = true; } else { const now = Math.floor(Date.now() / 1000); // Current time in seconds const liquidCacheAge = now - liquidRenderedAt; // Age in seconds // Handle client clock ahead of server if (liquidCacheAge <
- 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 In-mould construction< = 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 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
- age = Date.now() - updatedAt.getTime(); if (age 20 cooling vents< 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 || !settings.multi_language_enabled) { return settings; } if
- (!settings.translations) { console.debug('STOQ - No translations found, skipping translation'); return settings; } const normalizedLocale = window._RestockRocketConfig.normalizedLocale; const translations = settings.translations; if (!normalizedLocale) { // No matching locale has translations; drop payload to save memory console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {})); delete settings.translations; return settings; } console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`); const translatedFields = translations[normalizedLocale]; if (translatedFields && typeof translatedFields === 'object') { Object.keys(translatedFields).forEach(function(key) { const value = translatedFields[key]; if (value !== null && value !== undefined && value !== '') { Weight: 325g 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', 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('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'] = wind ow.Shopify.theme.schema_name; headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version; headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id; } fetch( `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, { headers } ) .then(function(response) { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { // If request failed and we have cached settings (even if expired), use them as fallback if (cachedSettings) { console.debug('STOQ - using expired cached settings as fallback'); initializeScripts(cachedSettings); } else { console.error('STOQ - failed to load settings:', error); } }) .catch(function(e) { console.error(e) })
- } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); // 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)) { Size: Uni-size createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'product') { createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct); } else if(hijackIntegration) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`); } // Dispatch custom event when app is loaded // Cart selling plan updates will be triggered by
Bike Hire With ProjektRide
Here at ProjektRide, we rent out our in-house built Surly and Brothers bike packing bikes. These have been custom-built with care and attention to ensure you have an awesome and hassle-free time on your bike trip!
