Parts & Components  

Made for years of hard riding. The Cambium All Weather is a durable and comfortable saddle that is “ready to ride”, thanks to a vulcanised natural rubber top for flexible performance requiring no breaking in period. From freezing rain to blazing sunshine, the waterproof, weatherproof nylon cover is made to perform flawlessly in all conditions. Additionally the updated back plate has loops for a saddle bag or other accessory.
Header Image



0) { console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else if (liquidCacheAge 118370,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,43936408568034,43936414400738,43936700727522,43936706101474,43936706134242,43936706167010,439367061997

5'11" - 6'1"= LIQUID_CACHE_MAX_AGE) { console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else { console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`); window._RestockRocketConfig.isLiquidCacheFresh = false; } } function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); return null; } if (!settings.cache) { console.debug('STOQ - settings caching disabled'); return null; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no 4957136584930,44957136781538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-03-10T00:45:26Z","market_locations_enabled":false,"market_id":382140642,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_l

age = Date.now() - updatedAt.getTime(); if (age background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"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 }}"


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 || unt","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"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,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed

]; if (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No translated fields found for locale:', normalizedLocale); } delete settings.translations; return settings; } catch (e) { console.debug('STOQ - error applying translations:', e); return settings; } } // Setup event listener for cart selling plan updates // This must be called before any scripts are loaded to avoid race conditions function setupCartSellingPlanUpdater(settings) { // Setup listener regardless - updateCartSellingPlans has its own guards // This ensures cleanup happens even when preorders are disabled globally // Listen for stoq:inventory-data-loaded event dispatched by api.js window.addEventListener('stoq:inventory-data-loaded', function(event) { console.debug('STOQ - Inventory data loaded, updating cart selling plans'); if (window._RestockRocketckground_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"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 }}","

84 - 87 cmhopify.shop, 'ngrok-skip-browser-warning': 'skip' }; if (window.Shopify?.theme?.role === 'main') { headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name; headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version; headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id; } fetch( `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, { headers } ) .then(function(response) { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { // 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(cact","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"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,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_c

fig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'product') { createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct); } else if(hijackIntegration) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enabmats) if (plan.updated_at) { const planDate = new Date(plan.updated_at); const maxDate = max ? new Date(max) : null; return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxDate)) ? plan.updated_at : max; } return max; }, '') : null; // Use cached if old array is empty/has no timestamps, or cached is newer // Parse dates for comparison to handle format differences (+00:00 vs .000Z) const cachedDate = new Date(cachedData.cached_at); const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null; const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate)); if (useCached) { if (Array.isArray(cachedData.plans)) { window._RestockRocketConfig.sellingPlans = cachedData.plans; // Only use disabled_plan_ids when using cached plans window._RestockRocketConfig


nfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":8055064363234,"title":"Brooks C17 Cambium Carved All-Weather","handle":"brooks-c17-cambium-carved-all-weather","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"col\"\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eMade for years of hard riding. The Cambium All Weather is a durable and comfortable saddle that is “ready to ride”, thanks to a vulcanised natural rubber top for flexible performance requiring no breaking in period. From freezing rain to blazing sunshine, the waterproof, weatherproof nylon cover is made to perform flawlessly in all conditions. Additionally the updated back plate has loops for a saddle bag or other accessory.\u003c\/p\u003e\n\u003cp\u003eThis carved model features a hole for pressure relief helping to eliminate contact point discomfort.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eRails: Black Steel\u003c\/li\u003e\n\u003cli\u003eLx283mm, Wx162mm, Hx52mm\u003c\/li\u

ektride.co.uk\/cdn\/shop\/products\/26211-pm.png?v=1679140074","\/\/projektride.co.uk\/cdn\/shop\/products\/26212-pm.png?v=1679140074","\/\/projektride.co.uk\/cdn\/shop\/products\/26213-pm.png?v=1679140074"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/26211-pm.png?v=1679140074","options":["Width"],"media":[{"alt":null,"id":31694672658658,"position":1,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26211-pm.png?v=1679140074"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26211-pm.png?v=1679140074","width":776},{"alt":null,"id":31694672691426,"position":2,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26212-pm.png?v=1679140074"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/26212-pm.png?v=1679140074","width":776},{"alt":null,"id":31694672724194,"positio

t discomfort.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eRails: Black Steel\u003c\/li\u003e\n\u003cli\u003eLx283mm, Wx162mm, Hx52mm\u003c\/li\u003e\n\u003cli\u003eWeight: 446g\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {43936061030626 : "continue",}; window._RestockRocketConfig.variantsInventoryQuantity = {43936061030626 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {43936061030626 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {43936061030626 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {43936061030626 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {43936061030626 : null,}; window._RestockRocketConfig.variantsShippingText = {43936061030626 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {43936061030626 : null,}; window._RestockRocketConfig.selected_variant

alization const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt; // Validate timestamp and calculate cache age if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) { console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh'); window._RestockRocketConfig.isLiquidCacheFresh = true; } else { const now = Math.floor(Date.now() / 1000); // Current time in seconds const liquidCacheAge = now - liquidRenderedAt; // Age in seconds // Handle client clock ahead of server if (liquidCacheAge


0) { console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else if (liquidCacheAge

LoggingForNonPreorderItem":false},"storefront_form_email_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_allowed_countries":[],"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_ra61= LIQUID_CACHE_MAX_AGE) { console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else { console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`); window._RestockRocketConfig.isLiquidCacheFresh = false; } } function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); return null; } if (!settings.cache) { console.debug('STOQ - settings caching disabled'); return null; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no
lse,"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_d age = Date.now() - updatedAt.getTime(); if (age
ction*=\"/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_consol 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 ||
2757602,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,43936408568034,43936414400738,43936700727522,43936706101474,43936706134242,43936706167010,43936706199778,43936706232546,43936706265314,43938308587746,43938308653282,43938308718818,43938308751586,43938308784354,43938308817185 - 191 cm]; if (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No translated fields found for locale:', normalizedLocale); } delete settings.translations; return settings; } catch (e) { console.debug('STOQ - error applying translations:', e); return settings; } } // Setup event listener for cart selling plan updates // This must be called before any scripts are loaded to avoid race conditions function setupCartSellingPlanUpdater(settings) { // Setup listener regardless - updateCartSellingPlans has its own guards // This ensures cleanup happens even when preorders are disabled globally // Listen for stoq:inventory-data-loaded event dispatched by api.js window.addEventListener('stoq:inventory-data-loaded', function(event) { console.debug('STOQ - Inventory data loaded, updating cart selling plans'); if (window._RestockRocket
45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-03-10T00:45:26Z","market_locations_enabled":false,"market_id":382140642,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-03-10T00:46:52Z","shopify_market_id":382140642,"market_locations_enabled":false}; wind hopify.shop, 'ngrok-skip-browser-warning': 'skip' }; if (window.Shopify?.theme?.role === 'main') { headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name; headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version; headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id; } fetch( `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, { headers } ) .then(function(response) { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { // 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(cacus":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"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","p6'1" - 6'3"fig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'product') { createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct); } else if(hijackIntegration) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enabr","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":250000,"price_min":250000,"price_max":250000,"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":43464920006882,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Custom Build Surly Disc Trucker","public_title":null,"options":["Default Title"],"price":250000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/IMG_1979.heic?v=1664459005","\/\/projektride.co.uk\/cdn\/shop\/products\/IMG_1980.heic?v=1664459005","\/\/projektride.co.uk\/cdn\/shop\/products\/IMG_1981.heic?v=1664459004","\/\/projektride.co.uk\/cdn\/shop\/products\/IMG_1982.heic?v=1664459006"34" - 35"/IMG_1986.heic?v=1664459002","width":4032}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eSurly Disc Trucker Custom Build.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eBrand New Build\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eSize - 56cm (get in touch for availability in different sizes)\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe ultimate Touring machine. Built up with super nice and reliable parts including:\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eShimano 105 R7000 2X11 Speed Drivetrain\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eShimano R7020 Hydraulic Brakes\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eX2 King Stainless Steel Cages\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eDT370 Hubs \/ G540 Rim - tubeless compatible - 700c\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eSchwalbe Marathon Plus tyres - 700c \/ 38mm\u003c\/p\u003e\n\u003c ocketConfig.variantsInventoryQuantity = {43464920006882 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {43464920006882 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {43464920006882 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {43464920006882 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {43464920006882 : null,}; window._RestockRocketConfig.variantsShippingText = {43464920006882 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {43464920006882 : null,}; window._RestockRocketConfig.selected_variant_id = 43464920006882; 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/019cd40b-736e-74a5-adbe-431365bfd910/restockro All measurements provided in cm unless otherwise stated.  Sizing tableWheel size id 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_allowed_countries":[],"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_button_after_selector_type":"afterend","storefront_button_position_type":"float-right","storefront_form_dupliK —:"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}];(function() { cons _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_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"Wheelbasetext","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}],"disabled_plan_ids":[71381 r a thinner grip, wrap it tighter. It's that easy!\u003c\/p\u003e\n\u003cp\u003eMade from the same material as our mountain bike grips, our RCT Wrap is silicone which makes it UV resistant, non-porous and washable. The best part: there are no glues! If you didn't wrap it how you wanted it the first time, take it off and wrap it again.\u003c\/p\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003e134-176 grams (Depends on how you stretch)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003e3.5mm Thick\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003e1\" Wide\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003e2 Rolls at 6'2\" each\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003eCustom Fit\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003eStretchable\u003c\/li\u003e\n\u0M — 0) { console.debug(`STOQ - Client clock appears ahead of server by ${Math.abs(Math.round(liquidCacheAge / 60))} minutes, assuming cache fresh`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else if (liquidCacheAge  fig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'product') { createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct); } else if(hijackIntegration) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enab70.3°
\/cdn\/shop\/products\/IMG_1980.heic?v=1664459005","width":3024},{"alt":null,"id":30837269659874,"position":3,"preview_image":{"aspect_ratio":0.75,"height":4032,"width":3024,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/IMG_1981.heic?v=1664459004"},"aspect_ratio":0.75,"height":4032,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/IMG_1981.heic?v=1664459004","width":3024},{"alt":null,"id":30837269692642,"position":4,"preview_image":{"aspect_ratio":1.333,"height":3024,"width":4032,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/IMG_1982.heic?v=1664459006"},"aspect_ratio":1.333,"height":3024,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/IMG_1982.heic?v=1664459006","width":4032},{"alt":null,"id":30837269725410,"position":5,"preview_image":{"aspect_ratio":0.75,"height":4032,"width":3024,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/IMG_1983.heic?v=1664459004"},"aspect_ratio":0.75,"height":4032,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop

Geometry

<

  

 

 

Frame size number

A —Seat tube

ce(/-/g, '_'); } window._RestockRocketConfig.locale = 'en'; window._RestockRocketConfig.normalizedLocale = normalizeLocale('en'); window._RestockRocketConfig.shop = 'projektride.myshopify.com'; window._RestockRocketConfig.pageType = 'product'; window._RestockRocketConfig.liquidRenderedAt = 1773105248;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-12-28T14:44:23.508Z","enable_app":true,"enable_signup_widget":false,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by sig
re 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_selector":"","preorder_badge_selector":"","preorder_button_out_of_stock_text":"Out of stock","preorder_butt

 elector_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,"storefront_form_show_image":false,"storefront_form_text_color":"#202223","storefront_form_background_color":"#FFFFFF","storefront_form_border_radius":0,"market_setup_type":"single_market","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":null,"preorder_progress_ba

Trail936255803618,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,43981392773346,43981392904418,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,439819

1535,56565020754303,56565020787071],"updated_at":"2026-03-10T00:45:26Z","market_locations_enabled":false,"market_id":382140642,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-03-10T00:46:52Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2026-03-10T00:45:21Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRo

on_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_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true
= new Date(cachedData.cached_at); const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null; const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate)); if (useCached) { if (Array.isArray(cachedData.plans)) { window._RestockRocketConfig.sellingPlans = cachedData.plans; // Only use disabled_plan_ids when using cached plans window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || []; console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')'); } } else { // When using old format (stale cache), don't trust disabled_plan_ids window._RestockRocketConfig.disabledSellingPlanIds = []; console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')'); } } })();window._RestockRocketConfig.integrations = [{"id":"15c9L —ing bar)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003e2 short silicone wraps (for under hood)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003e2 Silicone Tapes (adhere to themselves - 1 time use)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003e1 pair of NEW custom larger Bar Plugs\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cspan\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003ePatent No. D730,146 \u003c\/p\u003e","published_at":"2023-10-05T10:50:09+01:00","created_at":"2023-09-27T11:11:50+01:00","vendor":"ESI","type":"bar tape","tags":["Accessories","Grips \u0026 Bar-tape","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":3800,"price_min":3800,"price_max":3800,"available":false,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max"

 /cdn\/shop\/files\/Screenshot2023-09-27at11.12.30.png?v=1695809554"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-09-27at11.12.24.png?v=1695809548","options":["Color"],"media":[{"alt":null,"id":32292036903138,"position":1,"preview_image":{"aspect_ratio":1.015,"height":826,"width":838,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-09-27at11.12.24.png?v=1695809548"},"aspect_ratio":1.015,"height":826,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-09-27at11.12.24.png?v=1695809548","width":838},{"alt":null,"id":32292036935906,"position":2,"preview_image":{"aspect_ratio":1.015,"height":826,"width":838,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-09-27at11.12.30.png?v=1695809554"},"aspect_ratio":1.015,"height":826,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-09-27at11.12.30.png?v=1695809554","width":838}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmet

Standover03c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003e2 Rolls at 6'2\" each\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003eCustom Fit\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003eStretchable\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003eCustom Density\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003eShock Absorbing\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003eComfortable\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003eSuper Tacky\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003eNo Adhesives\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/ul\u003e\n\u003cul\u003e\n\u003cul\u003e\n\u003cli\u003eLong Lasting\u003c\/li

.variantsInventoryPolicy = {44365567983842 : "deny",44365568016610 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {44365567983842 : parseInt("0"),44365568016610 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {44365567983842 : parseInt(""),44365568016610 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {44365567983842 : null,44365568016610 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {44365567983842 : parseInt(""),44365568016610 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {44365567983842 : null,44365568016610 : null,}; window._RestockRocketConfig.variantsShippingText = {44365567983842 : "",44365568016610 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {44365567983842 : null,44365568016610 : null,}; window._RestockRocketConfig.selected_variant_id = 44365567983842; window._RestockRocketConfig.selected_variant_available = windo

Validate timestamp and calculate cache age if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) { console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh'); window._RestockRocketConfig.isLiquidCacheFresh = true; } else { const now = Math.floor(Date.now() / 1000); // Current time in seconds const liquidCacheAge = now - liquidRenderedAt; // Age in seconds // Handle client clock ahead of server if (liquidCacheAge
 = LIQUID_CACHE_MAX_AGE) { console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else { console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`); window._RestockRocketConfig.isLiquidCacheFresh = false; } } function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); return null; } if (!settings.cache) { console.debug('STOQ - settings caching disabled'); return null; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no

Frame reachage = 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; } } // Setup event listener for cart selling plan updates // This must be called before any scripts are loaded to avoid race conditions function setupCartSellingPlanUpdater(settings) { // Setup listener regardless - updateCartSellingPlans has its own guards // This ensures cleanup happens even when preorders are disabled globally // Listen for stoq:inventory-data-loaded event dispatched by api.js window.addEventListener('stoq:inventory-data-loaded', function(event) { console.debug('STOQ - Inventory data loaded, updating cart selling plans'); if (window._RestockRocket

N —hopify.shop, 'ngrok-skip-browser-warning': 'skip' }; if (window.Shopify?.theme?.role === 'main') { headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name; headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version; headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id; } fetch( `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, { headers } ) .then(function(response) { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { // 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(cac

44cm

700c
39.0

74.6°

9.5
50.7
8.0

42.0
5.3
6.698.3

v=1691575792","width":1087},{"alt":null,"id":32068067524834,"position":2,"preview_image":{"aspect_ratio":1.506,"height":722,"width":1087,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/0170A329-A293-4D72-9D12-F6417A8EC235_1_105_c.jpg?v=1691575791"},"aspect_ratio":1.506,"height":722,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/0170A329-A293-4D72-9D12-F6417A8EC235_1_105_c.jpg?v=1691575791","width":1087},{"alt":null,"id":32068067590370,"position":3,"preview_image":{"aspect_ratio":1.506,"height":722,"width":1087,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/9BF1DDB6-485B-498D-A0C4-3FBCDEBB3931_1_105_c.jpg?v=1691576492"},"aspect_ratio":1.506,"height":722,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/9BF1DDB6-485B-498D-A0C4-3FBCDEBB3931_1_105_c.jpg?v=1691576492","width":1087},{"alt":null,"id":32068067557602,"position":4,"preview_image":{"aspect_ratio":1.506,"height":722,"width":1087,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/CC77BB07-B0B7-4FE4-8EAB-3B93454E5F66_ 1_105_c.jpg?v=1691576492"},"aspect_ratio":1.506,"height":722,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/CC77BB07-B0B7-4FE4-8EAB-3B93454E5F66_1_105_c.jpg?v=1691576492","width":1087},{"alt":null,"id":32068067655906,"position":5,"preview_image":{"aspect_ratio":1.506,"height":722,"width":1087,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/2BD06992-2CFB-4885-B91C-D7B48652FBA7_1_105_c.jpg?v=1691576492"},"aspect_ratio":1.506,"height":722,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/2BD06992-2CFB-4885-B91C-D7B48652FBA7_1_105_c.jpg?v=1691576492","width":1087},{"alt":null,"id":32068067623138,"position":6,"preview_image":{"aspect_ratio":1.506,"height":722,"width":1087,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/D279FB57-0E61-4801-8F62-D2D47EF4364F_1_105_c.jpg?v=1691576492"},"aspect_ratio":1.506,"height":722,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/D279FB57-0E61-4801-8F62-D2D47EF4364F_1_105_c.jpg?v=1691576492","width":1087}],"requires_sell
ing_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eHere we have this lovely Brother's Kepler Touring Bike\u003c\/p\u003e\n\u003cp\u003e''The Kepler has been a stalwart in our lineup for 8 years now and keeps going strong into 2023. We designed the Kepler with versatility in mind, it’s a gravel grinder, super commuter, galactic tourer… ready to tackle whatever you throw at it.\u003c\/p\u003e\n\u003cp\u003eThe Kepler can run either 700c or 650b wheels and has clearance for 700c x 45 or 650b x 48 tyres to keep you stable when the going gets tough. The frame is constructed from double butted 4130 chromoly steel, a functional tubing which provides the perfect balance of comfort and durability and we’ve applied an ED coating under the paint to protect against corrosion. It’s fully equipped to fit front and rear racks, mudguards and has three bottle mount positions if you’re loading up for a longer trip. To add to its bikepacking credentials the 2022 Kepler now features triple cage mounts on 58cm8.0its unicrown steel fork.\u003c\/p\u003e\n\u003cp\u003eIn the 8 years since it’s launch, we’ve sent Keplers to every corner of the globe, from the Australian outback to the hills of California, up up to the Highlands of Scotland and along the coastal trails of Dorset. Whether taking part in a multi-day bikepacking race or simply tackling the daily commute, the Kepler gets you there with a smile on your face.''\u003c\/p\u003e\n\u003cp\u003e650b Shimano GRX Tubeless wheelset \u003c\/p\u003e\n\u003cp\u003eHalo GXC 47mm Tyres\u003c\/p\u003e\n\u003cp\u003eBrooks B17 and Bartape\u003c\/p\u003e\n\u003cp\u003eTifosi Finishing Kit\u003c\/p\u003e\n\u003cp\u003eTRP Spyre Mechanical Disc Brakes\u003c\/p\u003e\n\u003cp\u003eShimano GRX \/ Bar-end Shifter 11 Speed\u003c\/p\u003e\n\u003cp\u003eSize - Medium - \u003cmeta charset=\"utf-8\"\u003e\u003cspan data-mce-fragment=\"1\"\u003elet us know if you require a different size as we are able to build more!\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cmeta charset
<div class="featured-image__bg bg-pos-center-center" style="background-image: url('//projektride.co.uk/cdn/shop/files/2571D9FF-E9AE-4004-9A55-C7FD4DD999D6_2048x.jpg?v=1640941114');"> 42.5