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?.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;
}
f
img src="//projektride.co.uk/cdn/shop/files/gn13110_detail_03_2048x2048.jpg?v=1723720495" alt="Genesis Tour De Fer 30 2024" class="mfp-zoom-in-cur" id="34464633028834">
img src="//projektride.co.uk/cdn/shop/files/gn13110_detail_07_2048x2048.jpg?v=1723720495" alt="Genesis Tour De Fer 30 2024" class="mfp-zoom-in-cur" id="34464633159906">
Sun: Closed
A traditional AtranVelo Explorer front pannier rack keeps luggage as low as possible to maintain the Tour De Fer's sublime handling when fully loaded.
Location
AVS CompatibleBrother Mehteh Gravel Bike - Complete Shop Stock Build82 Newington Road
Email
Edinburgh
£2,300.00EH9 1QN
The 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.[email protected]
Tequila Sunrise.
Brother Mehteh Custom Build
Stealth Black
£3,650.00© 2025,
Tequila SunriseEmail
ProjektRide
Stealth Black Website by
-Brother Cycles Stroma Frameset
Juan Borges Designs
.
© 2025,
© 2025, span class="visually-hidden">Custom Build - Brothers Cycles Kepler Touring / Gravelalerts to this product.","storefront_mixed_cart_error":"This item needs to be purchased separately. Please check out or clear your cart before adding this item.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_button_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":null,"insert_button_after_selector_index":null,"push_enabled":false,"push_allowed":false,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_p3cimg 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\/figure\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\u003.
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/0170A329-A293-4D72-9D12-F6417A8EC235_1_105_c_600x.jpg?v=1691575791)">/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eCASSETTE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano Deore 11-51t 11spd\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eCHAINGUIDE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003en\/a\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eF\/D\u003c\/td\u003e\n\u003ctd class=\"data\"\u003en\/a\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eR\/D\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano Deore\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eSHIFTERS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano Deore\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eBRAKE CALIPERS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eTektro HDM275 Hydraulic\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolorlder-column\"\u003e\n\u003cfigure data-pb-style=\"TUX7JO8\" 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-b.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-b.jpg\" title=\"\" alt=\"\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 data-pb-style=\"Q3MP9PV\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"heading\" class=\"text-xl font-medium\"\u003eBusch \u0026amp; Muller Lighting\u003c\/h3\u003e\n\u003cdiv data-pb-style=\"UVOMKMH\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"text\" class=\"h-40\"\u003e\n\u003cp id=\"NM8TUA9\"\u003eBusch \u0026amp; Muller
d class=\"label\"\u003eSEATPOST\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Thumb w\/Offset 27.2mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eSEAT CLAMP\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Clamp\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eGRIPS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Key Grip\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eSADDLE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Commuter\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eFRONT HUB\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eFormula 100x9mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eREAR HUB\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eFormula 135x10mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eSPOKES\u003c\/td\u003e\n-element=\"main\" data-appearance=\"default\" data-content-type=\"heading\" class=\"text-xl font-medium\"\u003eLowrider\u003c\/h3\u003e\n\u003cdiv data-pb-style=\"U45W4JQ\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"text\" class=\"h-40\"\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.\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_f\u003ctd class=\"data\"\u003eStainless Black 14g\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eRIMS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eDouble Wall alloy\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eFRONT TIRE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eWTB Horizon Comp w\/ Puncture Protection 650x47c\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eREAR TIRE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eWTB Horizon Comp w\/ Puncture Protection 650x47c\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003ePAINT COLOR\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eGloss Porcelain w\/ Charcoal \u0026amp; Cyan Decals\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eEXTRAS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eFenders w\/ Mudflaps \u0026amp; Kickstand\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/er\/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\/figure\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\u0-Brother Cycles Stroma Frameset"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension
tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003cp class=\"specs_disclaimer\"\u003eAll specifications are subject to change without notice\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bike_geometry\"\u003e\n\u003ch2\u003eGEOMETRY\u003cspan class=\"s-geo\"\u003e\u003cspan class=\"s-current\" id=\"s-geo_mm\"\u003emm\u003c\/span\u003e\u003cspan id=\"s-geo_inch\"\u003einches\u003c\/span\u003e\u003c\/span\u003e\n\u003c\/h2\u003e\n\u003cdiv id=\"geo_mm\"\u003e\n\u003cdiv class=\"table_wrapper\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e \u003c\/td\u003e\n\u003ctd class=\"label\"\u003eSIZE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eM\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eL\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eXL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e1\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eST LENGTH\03e\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"}
ton","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":"","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_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_fo
class=\"label\"\u003eSTACK\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e569\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e607\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e644\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e682\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e5\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eSTANDOVER\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e687\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e722\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e757\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e798\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e6\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eHT ANGLE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70.0\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd
£1,199.0036152060130,43936152092898,43936152125666,43936193118434,43936250429666,43936255803618,43936266682594,43936266715362,43936293978338,43936294011106,43936316424418,43936316457186,43936320880866,43936320913634,43936320946402,43936327041250,43936327074018,43936327106786,43936331661538,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,43981392904418,43981695844578,4398169
c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e10\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eBB DROP\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e70\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"geo_numbers\"\u003e11\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eBB HEIGHT\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e272\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e272\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e272\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e272\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"geo_numbers\"\u003e12\u003c\/td\u003e\n\u003ctd class=\"label\"\u003eWHEELBASE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1077\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1116\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e1146\u003c\/td\u003e\n\u003ctd class=\"dat[]
ProjektRide>
r_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":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_c"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,"featured_image":null,"available":true,"name":"
.>
10,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,43936331661538,43936332349666,43936333103330,43936351224034,43936353714402,43936362889442,43936362922210,43936388153570,43936389333218,43936395526370,43936398508258,43936401522914,4\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_05.jpg?v=1723720495","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_06.jpg?v=1723720495","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_07.jpg?v=1723720495","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_08.jpg?v=1723720495","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_09.jpg?v=1723720495","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_10.jpg?v=1723720495","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_11.jpg?v=1723720495","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_12.jpg?v=1723720495","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_13.jpg?v=1723720495","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_14.jpg?v=1723720495","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_15.jpg?v=1723720495","\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_16.jpg?v=1723720495"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_01.jpg?v=1723720
.
k 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.\u003c\/span\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cdiv class=\"sectionwrapper bike_specs_geo\"\u003e\n\u003cdiv class=\"section\"\u003e\n\u003cdiv class=\"bike_specs\"\u003e\n\u003ch2\u003eSPECIFICATIONS\u003c\/h2\u003e\n\u003cdiv class=\"table_wrapper\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eFRAME MATERIAL\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona 6061 Aluminum Butted\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eSIZES\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eS, M, L, XL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd c housed brake and gear cables as well as a new Shimano CUES LINKGLIDE drivetrain.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\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 aria-label=\"Gallery\" dir=\"ltr\" class=\"carousel is-hover\" tabindex=\"0\"\u003e\n\u003cdiv class=\"carousel__viewport\"\u003e\n\u003col class=\"carousel__track\"\u003e\n\u003cli aria-hidden=\"true\" class=\"carousel__slide carousel__slide--clone\"\u003e\n\u003cdiv data-content-type=\"slide\" class=\"carousel__item pagebuilder-column\"\u003e\n\u003cfigure data-pb-style=\"IQBGNT9\" 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-a.jpg\" media=\"(max-width: 768px)\"\u003e\u003cimg data-element=\"lazy_image\"
471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2025-12-15T03:13:25Z","market_locations_enabled":false,"market_id":13777305826,"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":"2025-12-15T03:15:16Z","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":"2025-12-15T03:15:16Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantShippingTextCustom Build - Brothers Cycles Kepler Touring / Gravel
window._RestockRocketConfig = window._RestockRocketConfig || {}
// Helper function to normalize locale format from hyphen to underscore (e.g., 'en-US' -> 'en_us')
// This matches the backend's Mobility.normalize_locale behavior
// Returns empty string if locale is empty or invalid (matches original behavior)
function normalizeLocale(locale) {
if (!locale || locale.trim() === '') {
return '';
}
return locale.toString().toLowerCase().replace(/-/g, '_');
}
window._RestockRocketConfig.locale = 'en';
window._RestockRocketConfig.normalizedLocale = normalizeLocale('en');
window._RestockRocketConfig.shop = 'projektride.myshopify.com';
window._RestockRocketConfig.pageType = 'collection';window._RestockRocketConfig.marketId = 382140642;window._RestockRocketConfig.countryName = 'United Kingdom';
window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.cartInventoryQuantity = {};window._RestockRocketConfig.cachedSettings = {"id":38500,"shop_id":38436,"currency":"GBP","created_at":"2025-07-26T09:13:57.337Z","updated_at":"2025-11-11T14:27:02.312Z","enable_app":true,"enable_signup_widget":false,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","stctd class=\"data\"\u003e50\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e50\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"geo_diagram\"\u003e\n\u003cimg alt=\"KONA Geometry\" src=\"https:\/\/images.konaworld.com\/36e\/geo_diagram.png\"\u003e\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThanks 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.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eIf 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.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eAll bike sales include a free ru
Electric Blue-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,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_prope
tomer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"","js_config":null,"collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too","show_button_on_collection":false,"sms_default_country":"us","sms_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"Quantity","enable_alerts":true,"sms_allowed":false,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":null,"insert_but,"option1":"Medium","option2":null,"option3":null,"sku":"KN23B-DWDE-MD-WH","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona Dew Deluxe Hybrid Bike - Medium","public_title":"Medium","options":["Medium"],"price":79900,"weight":15000,"compare_at_price":74400,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43916579864802,"title":"Large","option1":"Large","option2":null,"option3":null,"sku":"KN23B-DWDE-LG-WH","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona Dew Deluxe Hybrid Bike - Large","public_title":"Large","options":["Large"],"price":79900,"weight":15000,"compare_at_price":74400,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43916579897570,"title":"Extra Large","option1":"Extra Large","option2":null,"option3":null,"sku":"KN23B-DWDE-XL-WH","requires_shipping":true,"taxable":true,"featured_image"
ity":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":{"toastDuration":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false},"type":"hijack","css_config":null,"js_config":null,"c£2,000.00ion_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_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_srom 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.\u003c\/span\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cdiv class=\"sectionwrapper bike_specs_geo\"\u003e\n\u003cdiv class=\"section\"\u003e\n\u003cdiv class=\"bike_specs\"\u003e\n\u003ch2\u003eSPECIFICATIONS\u003c\/h2\u003e\n\u003cdiv class=\"table_wrapper\"\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eFRAME MATERIAL\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona 6061 Aluminum Butted\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eSIZES\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eS, M, L, XL\u003c\/td\u003
{
"@context": "http://schema.org/",
"@type": "Product",
"name": "Genesis Tour De Fer 30 2024",
"url": "https:\/\/projektride.co.uk\/products\/genesis-tour-de-fer-31","image": [
"https:\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_01_1800x.jpg?v=1723720495"
],"description": "\n\n\n\n\nFlat Simplicity\n\nThe Tour De Fer 30 remains a comfortable long-range stable mate with its flat handlebar, dynamo lights and Reynolds 725 tubeset.\nReady to ride around the globe straight from the box with subtle impovements including a new straight bladed fork, fully housed brake and gear cables as well as a new Shimano CUES LINKGLIDE drivetrain.\n \n\n\n\n\n\n\n\n\n\n\n\nHuelector":"","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":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"pe\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eREAR SHOCK\u003c\/td\u003e\n\u003ctd class=\"data\"\u003en\/a\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eFORK\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona Project Two Aluminum Disc\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eCRANKARMS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eSamox\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eCHAINRINGS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003e38t\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eB\/B\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eFSA 68mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003ePEDALS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eKona JS2\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eCHAIN\u003c\/td\u00ge Range\n\nGone are the triple chainsets and massive front derailleurs of yesteryear, the Tour De Fer 30 is equipped with an incredibly durable LINKGLIDE drivetrain. An 11-39T cassette is paired with our own 46-30T chain rings to provide wide ratios in a compact package.\n\n\n\n\n\n\nBusch \u0026amp; Muller Lighting\n\nBusch \u0026amp; Muller dynamo lights front and rear are not just there to be seen. They pack enough punch to navigate off the beaten path too.\n\n\n\n\n\n\nLowrider\n\nA traditional AtranVelo Explorer front pannier rack keeps luggage as low as possible to maintain the Tour De Fer's sublime handling when fully loaded.\n\n\n\n\n\n\nAVS Compatible\n\nThe 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.\n\n\n\n\n\n\n\n\n\n\n","sku": "GN13110XS","brand": {
"@type": "Thing",
"name": "Genesis"
},"offers": [{
"@type" : "OfRubble Rubble_at":"2023-10-23T13:31:18+01:00","created_at":"2023-10-23T13:31:18+01:00","vendor":"ProjektRide","type":"","tags":["Bags and Transportation","Bike Packing","pannier rack","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":7999,"price_min":7999,"price_max":7999,"available":false,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":44441930006754,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"01-BJACK-BNG-Y","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Jack The Bike Rack, Front Rack and all fittings","public_title":null,"options":["Default Title"],"price":7999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-10-23at13.28.55.png?v=1698064281","\/\/proj
reorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":"","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_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,"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"};win3e\n\u003ctd class=\"data\"\u003eKMC X11\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eCASSETTE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano Deore 11-51t 11spd\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eCHAINGUIDE\u003c\/td\u003e\n\u003ctd class=\"data\"\u003en\/a\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eF\/D\u003c\/td\u003e\n\u003ctd class=\"data\"\u003en\/a\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eR\/D\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano Deore\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"altercolor\"\u003e\n\u003ctd class=\"label\"\u003eSHIFTERS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eShimano Deore\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"label\"\u003eBRAKE CALIPERS\u003c\/td\u003e\n\u003ctd class=\"data\"\u003eTektro HDM275 Hydraulic\u003c\/td\u003efer","sku": "GN13110XS","availability" : "http://schema.org/InStock",
"price" : 1799.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/genesis-tour-de-fer-31?variant=45817778045154"
},
{
"@type" : "Offer","sku": "GN13110SM","availability" : "http://schema.org/InStock",
"price" : 1799.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/genesis-tour-de-fer-31?variant=45817778077922"
},
{
"@type" : "Offer","sku": "GN13110MD","availability" : "http://schema.org/InStock",
"price" : 1799.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/genesis-tour-de-fer-31?variant=45817778110690"
},
{
"@type" : "Offer","sku": "GN13110LG","availability" : "http://schema.org/InStock",
"price" : 1799.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/genesis-tour-de-fer-31?variant=45817778143458"
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 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 || ];
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 cac// If request failed and we have cached settings (even if expired), use them as fallback
if (cachedSettings) {
console.debug('STOQ - using expired cached settings as fallback');
initializeScripts(cachedSettings);
} else {
console.error('STOQ - failed to load settings:', error);
}
})
.catch(function(e) {
console.error(e)
})
}
function initializeScripts(settings) {
settings = applyTranslations(settings);
window._RestockRocketConfig.settings = settings;
console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`);
if(settings.enable_app) {
const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) {
return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType);
})
if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preospan class="visually-hidden">-Brother Mehteh - 2025 Colours<
untdown-timer .countdown-box{min-width:55px;padding:14px 10px;font-size:26px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:11px}}@media (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-
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2024-03-19at10.54.31_600x.png?v=1710846997)">
Stealth Black
t-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}}
Tequila Sunrise01313745324Brother Big Bro Hardtail Bike - Complete Shop Stock 2025 Build
) or email (
[email protected]
) where on of the team will be more than happy to help.
span class="visually-hidden">-Brother Cycles Allday Frameset
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)">
>
>
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.
82 Newington Road, EH91QN, Edinburgh.
QUICK LINKS
Terms of ServiceINFORMATION
SERVICES-Brother Big Bro 2025About Us
Contact UsServicing£949.00BlogWorkshop Prices
Cookie Policy
Track Service ProgressCycle to WorkBlackBuilding Your Bike From the BoxDelivery & Returns
Insure Your Bike
Swamp ThingPrivacy Policy
Refund policy
SERVICES
ProjektRide
Brother Cycles 2025 Kepler Frameset.[email protected]
£799.00 Website by
Juan Borges Designs.
Brother Kepler World Touring Bike 2024 - Complete Shop Stock Build
window._RestockRocketConfig = window._RestockRocketConfig || {}
// Helper function to normalize locale format from hyphen to underscore (e.g., 'en-US' -> 'en_us')
// This matches the backend's Mobility.normalize_locale behavior
// Returns empty string if locale is empty or invalid (matches original behavior)
function normalizeLocale(locale) {
if (!locale || locale.trim() === '') {
return '';
}
return locale.toString().toLowerCase().replace(/-/g, '_');
}
window._RestockRocketConfig.locale = 'en';
window._RestockRocketConfig.normalizedLocale = normalizeLocale('en');
window._RestockRocketConfig.shop = 'projektride.myshopify.com';
window._RestockRocketConfig.pageType = 'product';window._RestockRocketConfig.marketId = 382140642;window._RestockRocketConfig.countryName = 'United Kingdom';
window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.cartInventoryQuantity = {};window._RestockRocketConfig.cachedSettings = {"id":38500,"shop_id":3© 2025,
mail_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"","js_config":null,"collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too","show_button_on_collection":false,"sms_default_country":"us","sms_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_diProjektRide
ush_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value.25-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":8677453725922,"title":"Genesis Tour De Fer 30 2024","handle":"genesis-tour-de-fer-31","description":"\u003cdiv data-element=\"main\" data-appearance=\"contained\" data-content-type=\"row\"\u003e\n\u003cdiv data-pb-style=\"BMLE8X8\" data-element=\"inner\" data-video-fallback-src=\"\" data-video-lazy-load=\"true\" data-video-play-only-visible=\"true\" data-video-loop=\"true\" data-background-type=\"image\" data-background-images=\"{}\" data-parallax-speed=\"0.5\" data-enable-parallax=\"0\" class=\"col-pr-4\"\u003e\n\u003cdiv data-pb-style=\"UW1764S\" data-element=\"main\" data-grid-size=\"12\" data-appearance=\"default\" data-content-type=\"column-group\" data-background-images=\"{}\" class=\"pagebuilder-column-group\"\u003e\n\u003cdiv data-pb-style=\"TROI97R\" data-element=\"main\" data-content-type=\"column-line\" class=\"pagebuilder-column-line\"\u003e\n\u003cdiv data-pb-style=
\"NYF3EBE\" data-element=\"main\" data-background-images=\"{}\" data-appearance=\"full-height\" data-content-type=\"column\" class=\"pagebuilder-column\"\u003e\n\u003ch2 data-element=\"main\" data-appearance=\"default\" data-content-type=\"heading\"\u003eFlat Simplicity\u003c\/h2\u003e\n\u003cdiv data-element=\"main\" data-appearance=\"default\" data-content-type=\"text\"\u003e\n\u003cp\u003e\u003cspan\u003eThe Tour De Fer 30 remains a comfortable long-range stable mate with its flat handlebar, dynamo lights and Reynolds 725 tubeset.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eReady to ride around the globe straight from the box with subtle impovements including a new straight bladed fork, fully housed brake and gear cables as well as a new Shimano CUES LINKGLIDE drivetrain.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\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 aria-label=\"Gallery\" dir=\"ltr\" class=\"car
es\/gn13110_detail_07.jpg?v=1723720495"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_07.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633192674,"position":8,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_08.jpg?v=1723720495"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_08.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633225442,"position":9,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_09.jpg?v=1723720495"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_09.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633258210,"position":10,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektrideion*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":"","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_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_
.co.uk\/cdn\/shop\/files\/gn13110_detail_10.jpg?v=1723720495"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_10.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633290978,"position":11,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_11.jpg?v=1723720495"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_11.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633323746,"position":12,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_12.jpg?v=1723720495"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_12.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633356514,"position":13,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,debug":false,"inline_form_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,4393614242ousel is-hover\" tabindex=\"0\"\u003e\n\u003cdiv class=\"carousel__viewport\"\u003e\n\u003col class=\"carousel__track\"\u003e\n\u003cli aria-hidden=\"true\" class=\"carousel__slide carousel__slide--clone\"\u003e\n\u003cdiv data-content-type=\"slide\" class=\"carousel__item pagebuilder-column\"\u003e\n\u003cfigure data-pb-style=\"IQBGNT9\" 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-a.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-a.jpg\" title=\"\" alt=\"\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 data-pb-style=\"WYWGCGT\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"
heading\" class=\"text-xl font-medium\"\u003eHuge Range\u003c\/h3\u003e\n\u003cdiv data-pb-style=\"CFVQILT\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"text\" class=\"h-40\"\u003e\n\u003cp id=\"NM8TUA9\"\u003eGone are the triple chainsets and massive front derailleurs of yesteryear, the Tour De Fer 30 is equipped with an incredibly durable LINKGLIDE drivetrain. An 11-39T cassette is paired with our own 46-30T chain rings to provide wide ratios in a compact package.\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\"\u003e\n\u003cdiv data-content-type=\"slide\" class=\"carousel__item pagebuilder-column\"\u003e\n\u003cfigure data-pb-style=\"TUX7JO8\" 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_webs
ites\/genesis\/tour_de_fer\/tdf_30\/800x1000-tdf30-keyfeature-b.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-b.jpg\" title=\"\" alt=\"\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 data-pb-style=\"Q3MP9PV\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"heading\" class=\"text-xl font-medium\"\u003eBusch \u0026amp; Muller Lighting\u003c\/h3\u003e\n\u003cdiv data-pb-style=\"UVOMKMH\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"text\" class=\"h-40\"\u003e\n\u003cp id=\"NM8TUA9\"\u003eBusch \u0026amp; Muller dynamo lights front and rear are not just there to be seen. They pack enough punch to navigate off the beaten path too.\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\"\u003e\n\u003cdiv data-content
-type=\"slide\" class=\"carousel__item pagebuilder-column\"\u003e\n\u003cfigure data-pb-style=\"EXCWFPK\" 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-c.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-c.jpg\" title=\"\" alt=\"\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 data-pb-style=\"GQ4TGCS\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"heading\" class=\"text-xl font-medium\"\u003eLowrider\u003c\/h3\u003e\n\u003cdiv data-pb-style=\"U45W4JQ\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"text\" class=\"h-40\"\u003e\n\u003cp id=\"NM8TUA9\"\u003eA
720495"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_01.jpg?v=1723720495","width":1800},{"alt":null,"id":34464632996066,"position":2,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_02.jpg?v=1723720495"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_02.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633028834,"position":3,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_03.jpg?v=1723720495"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_03.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633061602,"position":4,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_04e,"push_allowed":false,"storefront_form_push_label":"Push","storefront_form_push_description":"Click 'Allow' to be notified via push notification","storefront_form_push_error":"Permission rejected! Please review notification settings and try again","storefront_font_family":"OpenSans","insert_button_after_selector_collection_type":"afterend","show_channel_selector":false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_det
.jpg?v=1723720495"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_04.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633094370,"position":5,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_05.jpg?v=1723720495"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_05.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633127138,"position":6,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_06.jpg?v=1723720495"},"aspect_ratio":1.503,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_06.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633159906,"position":7,"preview_image":{"aspect_ratio":1.503,"height":1198,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/filection":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":"form[act"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_13.jpg?v=1723720495"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_13.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633389282,"position":14,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_14.jpg?v=1723720495"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_14.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633422050,"position":15,"preview_image":{"aspect_ratio":1.0,"height":1800,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_15.jpg?v=1723720495"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_15.jpg?v=1723720495","width":1800},{"alt":null,"id":34464633454818,"position":16,"preview_image":{"aspect_ratio":1.0,"height":18006338,43936142459106,43936152060130,43936152092898,43936152125666,43936193118434,43936250429666,43936255803618,43936266682594,43936266715362,43936293978338,43936294011106,43936316424418,43936316457186,43936320880866,43936320913634,43936320946402,43936327041250,43936327074018,43936327106786,43936331661538,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,43981392904418
,"width":1800,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_16.jpg?v=1723720495"},"aspect_ratio":1.0,"height":1800,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/gn13110_detail_16.jpg?v=1723720495","width":1800}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cdiv data-element=\"main\" data-appearance=\"contained\" data-content-type=\"row\"\u003e\n\u003cdiv data-pb-style=\"BMLE8X8\" data-element=\"inner\" data-video-fallback-src=\"\" data-video-lazy-load=\"true\" data-video-play-only-visible=\"true\" data-video-loop=\"true\" data-background-type=\"image\" data-background-images=\"{}\" data-parallax-speed=\"0.5\" data-enable-parallax=\"0\" class=\"col-pr-4\"\u003e\n\u003cdiv data-pb-style=\"UW1764S\" data-element=\"main\" data-grid-size=\"12\" data-appearance=\"default\" data-content-type=\"column-group\" data-background-images=\"{}\" class=\"pagebuilder-column-group\"\u003e\n\u003cdiv data-pb-style=\"TROI97R\" data-element=\"main\" data-content-ty,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987905762,43981987938530,44052906967266,44052907327714,44052907360482,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140302827746,44140302893282,44140317016290,44155590508770,44155590541538,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,44957136584930,44957136781538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,55569933074815,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,563pe=\"column-line\" class=\"pagebuilder-column-line\"\u003e\n\u003cdiv data-pb-style=\"NYF3EBE\" data-element=\"main\" data-background-images=\"{}\" data-appearance=\"full-height\" data-content-type=\"column\" class=\"pagebuilder-column\"\u003e\n\u003ch2 data-element=\"main\" data-appearance=\"default\" data-content-type=\"heading\"\u003eFlat Simplicity\u003c\/h2\u003e\n\u003cdiv data-element=\"main\" data-appearance=\"default\" data-content-type=\"text\"\u003e\n\u003cp\u003e\u003cspan\u003eThe Tour De Fer 30 remains a comfortable long-range stable mate with its flat handlebar, dynamo lights and Reynolds 725 tubeset.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eReady to ride around the globe straight from the box with subtle impovements including a new straight bladed fork, fully housed brake and gear cables as well as a new Shimano CUES LINKGLIDE drivetrain.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\14171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2025-12-15T03:13:25Z","market_locations_enabled":false,"market_id":13777305826,"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":"2025-12-15T03:15:16Z","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":"2025-12-15T03:15:16Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.caBrother Kepler World Touring Bike 2024 - Complete Shop Stock Buildu003e\n\u003cdiv\u003e\n\u003csection aria-label=\"Gallery\" dir=\"ltr\" class=\"carousel is-hover\" tabindex=\"0\"\u003e\n\u003cdiv class=\"carousel__viewport\"\u003e\n\u003col class=\"carousel__track\"\u003e\n\u003cli aria-hidden=\"true\" class=\"carousel__slide carousel__slide--clone\"\u003e\n\u003cdiv data-content-type=\"slide\" class=\"carousel__item pagebuilder-column\"\u003e\n\u003cfigure data-pb-style=\"IQBGNT9\" 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-a.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-a.jpg\" title=\"\" alt=\"\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 data-pb-stylchedVariantShippingTextsMarketKey = "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":nulle=\"WYWGCGT\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"heading\" class=\"text-xl font-medium\"\u003eHuge Range\u003c\/h3\u003e\n\u003cdiv data-pb-style=\"CFVQILT\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"text\" class=\"h-40\"\u003e\n\u003cp id=\"NM8TUA9\"\u003eGone are the triple chainsets and massive front derailleurs of yesteryear, the Tour De Fer 30 is equipped with an incredibly durable LINKGLIDE drivetrain. An 11-39T cassette is paired with our own 46-30T chain rings to provide wide ratios in a compact package.\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\"\u003e\n\u003cdiv data-content-type=\"slide\" class=\"carousel__item pagebuilder-column\"\u003e\n\u003cfigure data-pb-style=\"TUX7JO8\" data-element=\"main\" data-appearance=\"full-width\" data-content-type=\"image\" class=\"pagebuilder-image\"\u003e\u003cpicture\u003e\u003csource data-elemen,"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,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,
t=\"lazy_mobile_image\" srcset=\"https:\/\/www.freewheel.co.uk\/media\/headless_websites\/genesis\/tour_de_fer\/tdf_30\/800x1000-tdf30-keyfeature-b.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-b.jpg\" title=\"\" alt=\"\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 data-pb-style=\"Q3MP9PV\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"heading\" class=\"text-xl font-medium\"\u003eBusch \u0026amp; Muller Lighting\u003c\/h3\u003e\n\u003cdiv data-pb-style=\"UVOMKMH\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"text\" class=\"h-40\"\u003e\n\u003cp id=\"NM8TUA9\"\u003eBusch \u0026amp; Muller dynamo lights front and rear are not just there to be seen. They pack enough punch to navigate off the beaten path too.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli aria-hidden=\"t"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"markets_enabled":false,"market_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this producrue\" class=\"carousel__slide carousel__slide--clone\"\u003e\n\u003cdiv data-content-type=\"slide\" class=\"carousel__item pagebuilder-column\"\u003e\n\u003cfigure data-pb-style=\"EXCWFPK\" 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-c.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-c.jpg\" title=\"\" alt=\"\"\u003e\u003c\/picture\u003e\u003c\/figure\u003e\n\u003ch3 data-pb-style=\"GQ4TGCS\" data-element=\"main\" data-appearance=\"default\" data-content-type=\"heading\" class=\"text-xl font-medium\"\u003eLowrider\u003c\/h3\u003e\n\u003cdiv data-pb-style=\"U45W4JQ\" data-element=\"main\" data-appearance=\"defat.","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":{"toastDuration":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false},"type":"hijack","css_config":n£4,250.00ult\" data-content-type=\"text\" class=\"h-40\"\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.\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\/800x10ull,"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/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1)
window._RestockRocketConfig.host = 'https://app.restockrocket.io'
const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds
function checkSettingsExpiry(settings) {
try {
if (!settings || !settings.updated_at) {
console.debug('STOQ - Invalid settings data structure');
t 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': 'skip'
};eRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct);
} else if(hijackIntegration) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else {
console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`);
}
// Check and update cart selling plans after scripts are loaded
if (settings.preorder_enabled) {
updateCartSellingPlans();
}
// Dispatch custom event when app is loaded
const appLoadedEvent = new CustomEvent('stoq:loaded', {
detail: {
pageType: window._RestockRocketConfig.pageType,
enabled: settings.enable_app,
settings: settings
}
});
console.debug('STOQ - dispatching app loaded event');
window.dispatchEvent(appLoadedEvent);
}
}
function updateCartSellingPlans() {
// Wait for the API to be available with retries
const maxRetries = 10;
const retryDelay = 500;
function attemptCart
if (window.Shopify?.theme?.role === 'main') {
headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name;
headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version;
headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id;
}
fetch(
`${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`,
{ headers }
)
.then(function(response) {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(function(settings) {
initializeScripts(settings);
})
.catch(function(error) {
// If request failed and we have cached settings (even if expired), use them as fallback
if (cachedSettings) {
console.debug('STOQ - using expired cached settings as fallback');
initializeScripts(cachedSettings);
} else {
console.error('STOQ - faiCheck(attempt = 1) {
if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
window._RestockRocket.updateCartSellingPlans()
.then(hasUpdates => {
if (hasUpdates) {
console.debug('STOQ - cart selling plans updated successfully');
} else {
console.debug('STOQ - no cart selling plan updates needed');
}
})
.catch(error => {
console.error('STOQ - error updating cart selling plans:', error);
});
} else if (attempt 00-tdf30-keyfeature-d.jpg\" title=\"\" alt=\"\"\u003e\u003c\/picture\u003e\u003c\/figure\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"};
window._RestockRocketConfig.varia 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)) {ntsInventoryPolicy = {45817778045154 : "deny",45817778077922 : "deny",45817778110690 : "deny",45817778143458 : "deny",45817778176226 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {45817778045154 : parseInt("1"),45817778077922 : parseInt("1"),45817778110690 : parseInt("1"),45817778143458 : parseInt("1"),45817778176226 : parseInt("1"),};
window._RestockRocketConfig.variantsPreorderCount = {45817778045154 : parseInt(""),45817778077922 : parseInt(""),45817778110690 : parseInt(""),45817778143458 : parseInt(""),45817778176226 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {45817778045154 : null,45817778077922 : null,45817778110690 : null,45817778143458 : null,45817778176226 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {45817778045154 : parseInt(""),45817778077922 : parseInt(""),45817778110690 : parseInt(""),45817778143458 : parseInt(""),45817778176226 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountFo
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 rMarket = {45817778045154 : null,45817778077922 : null,45817778110690 : null,45817778143458 : null,45817778176226 : null,};
window._RestockRocketConfig.variantsShippingText = {45817778045154 : "",45817778077922 : "",45817778110690 : "",45817778143458 : "",45817778176226 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {45817778045154 : null,45817778077922 : null,45817778110690 : null,45817778143458 : null,45817778176226 : null,};
window._RestockRocketConfig.selected_variant_id = 45817778045154;
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/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e<0-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 data in metafMellow Yellow 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) {
ield
// 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() - update
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(trandAt.getTime();
if (age
slations || {}));
delete settings.translations;
return settings;
}
console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`);
const translatedFields = translations[normalizedLocale];
if (translatedFields && typeof translatedFields === 'object') {
Object.keys(translatedFields).forEach(function(key) {
const value = translatedFields[key];
if (value !== null && value !== undefined && value !== '') {
settings[key] = value;
}
});
} else {
console.debug('STOQ - No translated fields found for locale:', normalizedLocale);
}
delete settings.translations;
return settings;
} catch (e) {
console.debug('STOQ - error applying translations:', e);
return settings;
}
}
// First try to get settings from metafields with expiry check
const cachedSettings = window._RestockRocketConfig.cachedSet 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 enot ok');
}
return response.json();
})
.then(function(settings) {
initializeScripts(settings);
})
.catch(function(error) {
// If request failed and we have cached settings (even if expired), use them as fallback
if (cachedSettings) {
console.debug('STOQ - using expired cached settings as fallback');
initializeScripts(cachedSettings);
} else {
console.error('STOQ - failed to load settings:', error);
}
})
.catch(function(e) {
console.error(e)
})
}
function initializeScripts(settings) {
settings = applyTranslations(settings);
window._RestockRocketConfig.settings = settings;
console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`);
if(settings.enable_app) {
const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) {
return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(windTeal is Realnabled
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) {
consow._RestockRocketConfig.pageType);
})
if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'product') {
creat