About Us
p tube bag remains completely waterproof.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eCare\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eHand wash, using a mild diluted soap if necessary. Afterwards, let it air dry.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eDo not machine wash, machine dry, or iron.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","published_at":"2023-06-25T11:42:36+01:00","created_at":"2023-06-25T11:42:36+01:00","vendor":"Apidura","type":"bags","tags":["Apidura","Bags and Transportation","Bike Packing","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":5000,"price_min":5000,"price_max":5000,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":44140339953890,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"TBM","requires_shipp
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.liquidRenderedAt = 1771298813;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 sign
ing":true,"taxable":true,"featured_image":null,"available":true,"name":"BACKCOUNTRY TOP TUBE PACK (1L)","public_title":null,"options":["Default Title"],"price":5000,"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-06-25at11.50.29.png?v=1687690235"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at11.50.29.png?v=1687690235","options":["Title"],"media":[{"alt":null,"id":31960269586658,"position":1,"preview_image":{"aspect_ratio":1.31,"height":942,"width":1234,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at11.50.29.png?v=1687690235"},"aspect_ratio":1.31,"height":942,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2023-06-25at11.50.29.png?v=1687690235","width":1234}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u0ing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":true,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"disableDebugLoggingForNonPreorderItem":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":"Di03cdiv class=\"wrap-details read-more\" data-mce-fragment=\"1\"\u003e\n\u003cdiv data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eA streamlined and secure space to store frequently used items over rough terrain. \u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Backcountry Top Tube Pack is a convenient space to store frequently used items, whether navigating a challenging trail or on a daily commute.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThis mountain bike top tube bag is ideal for stashing snacks, light valuables and electronic devices. It securely attaches to the top tube with Hypalon-reinforced velcro straps that minimise abrasion on the frame. A one-finger zipper puller allows easy access on the move, while the full-length fully waterproof zipper safeguards contents against water and dirt when closed.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe top tube bag is also padded with closed cell d 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_duplic
foam to safeguard items against impact and features an internal pocket for organisation and a battery lead port for charging electronic devices on the go.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"wrap-details read-more\" data-mce-fragment=\"1\"\u003e\n\u003ch3 data-mce-fragment=\"1\"\u003eTECHNICAL\u003ci class=\"tab-arrow\" data-mce-fragment=\"1\"\u003e\u003c\/i\u003e\n\u003c\/h3\u003e\n\u003cdiv data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eMaterials\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Backcountry Top Tube Pack is made from Dimension-Polyant VX21, a four-layer laminated fabric originally developed for the maritime industry and our proprietary 420D nylon; a rugged fabric made to our own exacting specifications for durability and waterproofing.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eDesigned to fit the demands of off-road riding, these materials offer full waterate_error":"You've already subscribed for alerts 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 mor
proofing, light weight, low stretch, and high abrasion and tear resistance. Notably, it’s welded together at the seams, creating a watertight seal that ensures the top tube bag remains completely waterproof.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eCare\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eHand wash, using a mild diluted soap if necessary. Afterwards, let it air dry.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eDo not machine wash, machine dry, or iron.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {44140339953890 : "continue",};
window._RestockRocketConfig.variantsInventoryQuantity = {44140339953890 : parseInt("98"),};
window._RestockRocketConfig.variantsPreorderCount = {44140339953890 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {44140339953890 : null,};
window._RestockRocketConfig.variantsPree 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_butto
orderMaxCount = {44140339953890 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {44140339953890 : null,};
window._RestockRocketConfig.variantsShippingText = {44140339953890 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {44140339953890 : null,};
window._RestockRocketConfig.selected_variant_id = 44140339953890;
window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019c4de0-280f-760f-b566-2e2f8e837eb8/restock-rocket-shopify-454/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019c4de0-280f-760f-b566-2e2f8e837eb8/restock-rocket-shopify-454/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRon_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,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_se= 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 191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-02-17T03:08:27Z","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-02-17T03:08:27Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2026-02-17T03:08:27Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConf
translation data in metafield
// Metafield hasn't been backfilled yet - force refresh
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
// Translations object exists in metafield - cache is valid
// If current locale isn't translated, applyTranslations will gracefully use default locale from base fields
if (window._RestockRocketConfig.normalizedLocale &&
!Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
console.debug('STOQ - locale not explicitly translated, will use default language from cache');
}
// Don't return null - continue using cache even for untranslated locales
}
const updatedAt = new Date(settings.updated_at);
if (isNaN(updatedAt.getTime())) {
console.debug('STOQ - Invalid updated_at date format in settings');
return null;
}
const ig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_typ
proofing, light weight, low stretch, and high abrasion and tear resistance. Notably, it’s welded together at the seams, creating a watertight seal that ensures the top tube bag remains completely waterproof.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eCare\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eHand wash, using a mild diluted soap if necessary. Afterwards, let it air dry.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eDo not machine wash, machine dry, or iron.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {44140339953890 : "continue",};
window._RestockRocketConfig.variantsInventoryQuantity = {44140339953890 : parseInt("98"),};
window._RestockRocketConfig.variantsPreorderCount = {44140339953890 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {44140339953890 : null,};
window._RestockRocketConfig.variantsPree 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_butto
orderMaxCount = {44140339953890 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {44140339953890 : null,};
window._RestockRocketConfig.variantsShippingText = {44140339953890 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {44140339953890 : null,};
window._RestockRocketConfig.selected_variant_id = 44140339953890;
window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019c4de0-280f-760f-b566-2e2f8e837eb8/restock-rocket-shopify-454/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019c4de0-280f-760f-b566-2e2f8e837eb8/restock-rocket-shopify-454/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRon_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,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_se= 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 191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-02-17T03:08:27Z","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-02-17T03:08:27Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2026-02-17T03:08:27Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConf
translation data in metafield
// Metafield hasn't been backfilled yet - force refresh
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
// Translations object exists in metafield - cache is valid
// If current locale isn't translated, applyTranslations will gracefully use default locale from base fields
if (window._RestockRocketConfig.normalizedLocale &&
!Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
console.debug('STOQ - locale not explicitly translated, will use default language from cache');
}
// Don't return null - continue using cache even for untranslated locales
}
const updatedAt = new Date(settings.updated_at);
if (isNaN(updatedAt.getTime())) {
console.debug('STOQ - Invalid updated_at date format in settings');
return null;
}
const ig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_typage = Date.now() - updatedAt.getTime();
if (age e":"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_property_text":null,"preorder_button_
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(restockRocketSc_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_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","preorde
riptElement);
}
createRestockRocketContainer()
console.debug('STOQ - extension activated')
function applyTranslations(settings) {
try {
// Skip translation logic entirely if multi-language is not enabled
if (!settings || !settings.multi_language_enabled) {
return settings;
}
if (!settings.translations) {
console.debug('STOQ - No translations found, skipping translation');
return settings;
}
const normalizedLocale = window._RestockRocketConfig.normalizedLocale;
const translations = settings.translations;
if (!normalizedLocale) {
// No matching locale has translations; drop payload to save memory
console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {}));
delete settings.translations;
return settings;
}
console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locar_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}];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,"created_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":15342832845183,"title":"UTO Afternoon Pro20 Electric Bike","handle":"uto-afternoon-pro20-electric-bike","description":"\u003cp\u003eThe Pro Range see's the arrival of UTO's (Ex Eovolt) premium range of bikes. 18 months of in house research and development has resulted in a proprietary design featuring 39 design\/spec improvement
le})`);
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;
}
}
// Setup event listener for cart selling plan updates
// This must be called before any scripts are loaded to avoid race conditions
function setupCartSellingPlanUpdater(settings) {
if (!settings || !settings.preorder_enabled) {
return;
}
// Listen for stoq:preorder-api-ready event dispatched by preorder.js
window.addEventLiss on previous models and 6 design patents.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eFrame \u0026amp; Fork\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eTotally new proprietary design featuring patented auto locking hinges that allow you to unfold the bike in under 5 seconds. The frame also features a patented integrated battery anti theft lock developed with the cycle lock experts ABUS. The design also results in no part of the frame coming into contact with any other parts of the bike which prevents marking and scratching. The fork now features thru axle dropouts for ease of removing the wheel and a cleaner premium look.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eAutomatic Gearbox\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe Bafang rear hub motor features an automatic gearbox giving you the right gear exactly when you need it without you the rider having to give it a seconds thought. Just unfold your bike, turn the pedals and let the bike change your gear for you. The drive is delivered
tener('stoq:preorder-api-ready', function(event) {
console.debug('STOQ - Preorder API ready, updating cart selling plans');
if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
window._RestockRocket.updateCartSellingPlans()
.then(hasUpdates => {
if (hasUpdates) {
console.debug('STOQ - cart selling plans updated successfully');
} else {
console.debug('STOQ - no cart selling plan updates needed');
}
})
.catch(error => {
console.error('STOQ - error updating cart selling plans:', error);
});
}
});
}
// First try to get settings from metafields with expiry check
const cachedSettings = window._RestockRocketConfig.cachedSettings;
const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
if (validCachedSettings) {
console.debug('STOQ - using cached settings');
initializeScripts(validCachedSettings);
through a gates belt drive so no oily chain or complicated maintenance.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eNew Seat Post Battery\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eEovolt have always believed in housing the battery in the seat post. The Pro range utilises a new patented design with the connector now situated at the top of the frame and the magnetic connector is quick and easy to connect. The new battery now integrates the rear light in the seat post and is powered by the battery.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eGPS Tagging\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe new Pro frame is designed with a place to secretly hide an Apple or Android air tag so you will be able to track and locate your bike.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eAsymmetric Centre Kickstand\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe new cleverly designed centre kick stand has a number of benefits. Firstly its hidden away under the bike which keeps the premium look of t]},{"id":56242334695807,"title":"Taupe Smoked","option1":"Taupe Smoked","option2":null,"option3":null,"sku":"PR20-TS-V2-UK","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"UTO Afternoon Pro20 Electric Bike - Taupe Smoked","public_title":"Taupe Smoked","options":["Taupe Smoked"],"price":299900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":56242334728575,"title":"Green","option1":"Green","option2":null,"option3":null,"sku":"PR20-SG-V2-UK","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"UTO Afternoon Pro20 Electric Bike - Green","public_title":"Green","options":["Green"],"price":299900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":56242334761343,"title":"Mineral Blue","option1":"Mineral Blue","option2":null,"option3":null,"sku":"PR20
-MB-V2-UK","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"UTO Afternoon Pro20 Electric Bike - Mineral Blue","public_title":"Mineral Blue","options":["Mineral Blue"],"price":299900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17342_600x375_66185b6a-2162-4a1f-996e-9a12b42055fb.png?v=1760793482","\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17362_600x375_ce6afb74-d03a-4870-8d8e-414f075b7f16.png?v=1760793492","\/\/projektride.co.uk\/cdn\/shop\/files\/20-FOLD-BIKE-plie13464_600x375_bba67082-738e-43d8-b6b7-0a8a6809c9ef.png?v=1760793505","\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17341_600x375_55850c8d-e752-4d0c-8f0e-7242a5bbfd03.png?v=1760793517","\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17343_600x375_36204ef8-815c-4427-ac14-402d81fa8
le})`);
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;
}
}
// Setup event listener for cart selling plan updates
// This must be called before any scripts are loaded to avoid race conditions
function setupCartSellingPlanUpdater(settings) {
if (!settings || !settings.preorder_enabled) {
return;
}
// Listen for stoq:preorder-api-ready event dispatched by preorder.js
window.addEventLiss on previous models and 6 design patents.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eFrame \u0026amp; Fork\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eTotally new proprietary design featuring patented auto locking hinges that allow you to unfold the bike in under 5 seconds. The frame also features a patented integrated battery anti theft lock developed with the cycle lock experts ABUS. The design also results in no part of the frame coming into contact with any other parts of the bike which prevents marking and scratching. The fork now features thru axle dropouts for ease of removing the wheel and a cleaner premium look.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eAutomatic Gearbox\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe Bafang rear hub motor features an automatic gearbox giving you the right gear exactly when you need it without you the rider having to give it a seconds thought. Just unfold your bike, turn the pedals and let the bike change your gear for you. The drive is delivered
tener('stoq:preorder-api-ready', function(event) {
console.debug('STOQ - Preorder API ready, updating cart selling plans');
if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
window._RestockRocket.updateCartSellingPlans()
.then(hasUpdates => {
if (hasUpdates) {
console.debug('STOQ - cart selling plans updated successfully');
} else {
console.debug('STOQ - no cart selling plan updates needed');
}
})
.catch(error => {
console.error('STOQ - error updating cart selling plans:', error);
});
}
});
}
// First try to get settings from metafields with expiry check
const cachedSettings = window._RestockRocketConfig.cachedSettings;
const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
if (validCachedSettings) {
console.debug('STOQ - using cached settings');
initializeScripts(validCachedSettings);
through a gates belt drive so no oily chain or complicated maintenance.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eNew Seat Post Battery\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eEovolt have always believed in housing the battery in the seat post. The Pro range utilises a new patented design with the connector now situated at the top of the frame and the magnetic connector is quick and easy to connect. The new battery now integrates the rear light in the seat post and is powered by the battery.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eGPS Tagging\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe new Pro frame is designed with a place to secretly hide an Apple or Android air tag so you will be able to track and locate your bike.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eAsymmetric Centre Kickstand\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe new cleverly designed centre kick stand has a number of benefits. Firstly its hidden away under the bike which keeps the premium look of t]},{"id":56242334695807,"title":"Taupe Smoked","option1":"Taupe Smoked","option2":null,"option3":null,"sku":"PR20-TS-V2-UK","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"UTO Afternoon Pro20 Electric Bike - Taupe Smoked","public_title":"Taupe Smoked","options":["Taupe Smoked"],"price":299900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":56242334728575,"title":"Green","option1":"Green","option2":null,"option3":null,"sku":"PR20-SG-V2-UK","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"UTO Afternoon Pro20 Electric Bike - Green","public_title":"Green","options":["Green"],"price":299900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":56242334761343,"title":"Mineral Blue","option1":"Mineral Blue","option2":null,"option3":null,"sku":"PR20
-MB-V2-UK","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"UTO Afternoon Pro20 Electric Bike - Mineral Blue","public_title":"Mineral Blue","options":["Mineral Blue"],"price":299900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17342_600x375_66185b6a-2162-4a1f-996e-9a12b42055fb.png?v=1760793482","\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17362_600x375_ce6afb74-d03a-4870-8d8e-414f075b7f16.png?v=1760793492","\/\/projektride.co.uk\/cdn\/shop\/files\/20-FOLD-BIKE-plie13464_600x375_bba67082-738e-43d8-b6b7-0a8a6809c9ef.png?v=1760793505","\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17341_600x375_55850c8d-e752-4d0c-8f0e-7242a5bbfd03.png?v=1760793517","\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17343_600x375_36204ef8-815c-4427-ac14-402d81fa8fd2.png?v=1760793527","\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17344_600x375_2edffb73-093a-43ad-bb8b-380dba631271.png?v=1760793538"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17342_600x375_66185b6a-2162-4a1f-996e-9a12b42055fb.png?v=1760793482","options":["Colour"],"media":[{"alt":null,"id":68214567240063,"position":1,"preview_image":{"aspect_ratio":1.6,"height":375,"width":600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17342_600x375_66185b6a-2162-4a1f-996e-9a12b42055fb.png?v=1760793482"},"aspect_ratio":1.6,"height":375,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17342_600x375_66185b6a-2162-4a1f-996e-9a12b42055fb.png?v=1760793482","width":600},{"alt":null,"id":68214569730431,"position":2,"preview_image":{"aspect_ratio":1.6,"height":375,"width":600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17362_600x375_ce6afb74-d03a-4870-8d8e-414f075b
7f16.png?v=1760793492"},"aspect_ratio":1.6,"height":375,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17362_600x375_ce6afb74-d03a-4870-8d8e-414f075b7f16.png?v=1760793492","width":600},{"alt":null,"id":68214572122495,"position":3,"preview_image":{"aspect_ratio":1.6,"height":375,"width":600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20-FOLD-BIKE-plie13464_600x375_bba67082-738e-43d8-b6b7-0a8a6809c9ef.png?v=1760793505"},"aspect_ratio":1.6,"height":375,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20-FOLD-BIKE-plie13464_600x375_bba67082-738e-43d8-b6b7-0a8a6809c9ef.png?v=1760793505","width":600},{"alt":null,"id":68214575890815,"position":4,"preview_image":{"aspect_ratio":1.6,"height":375,"width":600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17341_600x375_55850c8d-e752-4d0c-8f0e-7242a5bbfd03.png?v=1760793517"},"aspect_ratio":1.6,"height":375,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17341_600x375_55850c8d-e752-4d0c-8f0e-7242a5bbfd03.png?v=1760793517","width":600},{"alt":null,"id":68214578282879,"position":5,"preview_image":{"aspect_ratio":1.6,"height":375,"width":600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17343_600x375_36204ef8-815c-4427-ac14-402d81fa8fd2.png?v=1760793527"},"aspect_ratio":1.6,"height":375,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17343_600x375_36204ef8-815c-4427-ac14-402d81fa8fd2.png?v=1760793527","width":600},{"alt":null,"id":68214581461375,"position":6,"preview_image":{"aspect_ratio":1.6,"height":375,"width":600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17344_600x375_2edffb73-093a-43ad-bb8b-380dba631271.png?v=1760793538"},"aspect_ratio":1.6,"height":375,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/20-OPEN-BIKE-rack-arriere17344_600x375_2edffb73-093a-43ad-bb8b-380dba631271.png?v=1760793538","width":600}],"re
.restock-rocket-button,.restock-rocket-button-float{opacity:1!important;border:none!important;cursor:pointer!important;background-image:none!important;box-shadow:none!important;padding:15px 20px;font-size:16px;width:100%;font-family:inherit}@font-face{font-family:OpenSans;font-weight:200;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Light.woff)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-float-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.quires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eThe Pro Range see's the arrival of UTO's (Ex Eovolt) premium range of bikes. 18 months of in house research and development has resulted in a proprietary design featuring 39 design\/spec improvements on previous models and 6 design patents.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eFrame \u0026amp; Fork\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eTotally new proprietary design featuring patented auto locking hinges that allow you to unfold the bike in under 5 seconds. The frame also features a patented integrated battery anti theft lock developed with the cycle lock experts ABUS. The design also results in no part of the frame coming into contact with any other parts of the bike which prevents marking and scratching. The fork now features thru axle dropouts for ease of removing the wheel and a cleaner premium look.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eAutomatic Gearbox\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u0
03eThe Bafang rear hub motor features an automatic gearbox giving you the right gear exactly when you need it without you the rider having to give it a seconds thought. Just unfold your bike, turn the pedals and let the bike change your gear for you. The drive is delivered through a gates belt drive so no oily chain or complicated maintenance.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eNew Seat Post Battery\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eEovolt have always believed in housing the battery in the seat post. The Pro range utilises a new patented design with the connector now situated at the top of the frame and the magnetic connector is quick and easy to connect. The new battery now integrates the rear light in the seat post and is powered by the battery.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eGPS Tagging\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe new Pro frame is designed with a place to secretly hide an Apple or Android air tag so you will be able to track and locate you8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property:all;transition-duration:.3s;display:flex;flex-direction:column;justify-content:center;}.restock-rocket-wrapper-inline{width:100%;height:100%;margin-top:20px}.restock-rocket-preorder-description{padding:10px 15px;margin-top:20px;display:flex;flex-direction:column;gap:10px;}.preorder-description-details{margin-bottom:0;display:flex;flex-direction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #ebebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-
r bike.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eAsymmetric Centre Kickstand\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe new cleverly designed centre kick stand has a number of benefits. Firstly its hidden away under the bike which keeps the premium look of the bike and secondly which is the most important, the battery is no longer needed for the bike to stand in its folded position. This results in the bike being significantly lighter when lifting the folded bike without the battery into your car or motorhome.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eLights\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eBoth Litemove lights are now powered by the battery and feature automatic dusk turn on. When the light drops or you enter a tunnel the lights now turn on automatically..\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eIntegrated Phone Mount\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe newly designed pro cockpit has an integrated SP Connect mount. Just buy the SP Connect phone casoption:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder-discount-badge{background:#ebebeb;height:25px;line-height:25px;padding:0 15px;border-radius:25px;font-size:0.8rem;flex:0 0 auto}.restock-rocket-payment-input{margin-right:10px;margin-top:-3px;vertical-align:middle;margin-left:0;accent-color:#202223}.restock-rocket-payment-description{margin-top:4px;flex:1 1 100%}.restock-rocket-preorder-badge{font-size:13px;line-height:1;padding:5px 13px 6px;border-radius:40px;height:auto;border:none;width:auto;z-index:2;margin:0;background:0 0}.preorder-badge-collection{position:absolute;top:10px;right:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restock-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowled
dRenderedAt 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
03eThe Bafang rear hub motor features an automatic gearbox giving you the right gear exactly when you need it without you the rider having to give it a seconds thought. Just unfold your bike, turn the pedals and let the bike change your gear for you. The drive is delivered through a gates belt drive so no oily chain or complicated maintenance.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eNew Seat Post Battery\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eEovolt have always believed in housing the battery in the seat post. The Pro range utilises a new patented design with the connector now situated at the top of the frame and the magnetic connector is quick and easy to connect. The new battery now integrates the rear light in the seat post and is powered by the battery.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eGPS Tagging\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe new Pro frame is designed with a place to secretly hide an Apple or Android air tag so you will be able to track and locate you8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property:all;transition-duration:.3s;display:flex;flex-direction:column;justify-content:center;}.restock-rocket-wrapper-inline{width:100%;height:100%;margin-top:20px}.restock-rocket-preorder-description{padding:10px 15px;margin-top:20px;display:flex;flex-direction:column;gap:10px;}.preorder-description-details{margin-bottom:0;display:flex;flex-direction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #ebebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-
r bike.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eAsymmetric Centre Kickstand\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe new cleverly designed centre kick stand has a number of benefits. Firstly its hidden away under the bike which keeps the premium look of the bike and secondly which is the most important, the battery is no longer needed for the bike to stand in its folded position. This results in the bike being significantly lighter when lifting the folded bike without the battery into your car or motorhome.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eLights\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eBoth Litemove lights are now powered by the battery and feature automatic dusk turn on. When the light drops or you enter a tunnel the lights now turn on automatically..\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eIntegrated Phone Mount\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe newly designed pro cockpit has an integrated SP Connect mount. Just buy the SP Connect phone casoption:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder-discount-badge{background:#ebebeb;height:25px;line-height:25px;padding:0 15px;border-radius:25px;font-size:0.8rem;flex:0 0 auto}.restock-rocket-payment-input{margin-right:10px;margin-top:-3px;vertical-align:middle;margin-left:0;accent-color:#202223}.restock-rocket-payment-description{margin-top:4px;flex:1 1 100%}.restock-rocket-preorder-badge{font-size:13px;line-height:1;padding:5px 13px 6px;border-radius:40px;height:auto;border:none;width:auto;z-index:2;margin:0;background:0 0}.preorder-badge-collection{position:absolute;top:10px;right:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restock-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowled
dRenderedAt 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 <
= LIQUID_CACHE_MAX_AGE) {
console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`);
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else {
console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`);
window._RestockRocketConfig.isLiquidCacheFresh = false;
}
}
function checkSettingsExpiry(settings) {
try {
if (!settings || !settings.updated_at) {
console.debug('STOQ - Invalid settings data structure');
return null;
}
if (!settings.cache) {
console.debug('STOQ - settings caching disabled');
return null;
}
// Check if translations are enabled but missing from cache
// This handles the backfill period where DB has translations but metafield doesn't
if (settings.multi_language_enabled) {
if (!settings.translations) {
// Translations enabled but no
translation data in metafield
// Metafield hasn't been backfilled yet - force refresh
console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
// Translations object exists in metafield - cache is valid
// If current locale isn't translated, applyTranslations will gracefully use default locale from base fields
if (window._RestockRocketCon
fig.normalizedLocale &&
!Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
console.debug('STOQ - locale not explicitly translated, will use default language from cache');
}
// Don't return null - continue using cache even for untranslated locales
}
const updatedAt = new Date(settings.updated_at);
if (isNaN(updatedAt.getTime())) {
console.debug('STOQ - Invalid updated_at date format in settings');
return null;
}
const age = Date.now() - updatedAt.getTime();
if (age eCartSellingPlans()
.then(hasUpdates => {
if (hasUpdates) {
console.debug('STOQ - cart selling plans updated successfully');
} else {
console.debug('STOQ - no cart selling plan updates needed');
}
})
.catch(error => {
console.error('STOQ - error updating cart selling plans:', error);
})
;
}
});
}
// First try to get settings from metafields with expiry check
const cachedSettings = window._RestockRocketConfig.cachedSettings;
const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
if (validCachedSettings) {
console.debug('STOQ - using cached settings');
initializeScripts(validCachedSettings);
} else {
console.debug('STOQ - fetching fresh settings');
const headers = {
'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
'ngrok-skip-browser-warning': 'skip'
};
if (window.Shopify?.theme?.role === 'main') {
headers['X-Shopify-Theme-Schema-Name'] = 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._RestockRocketConf
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._RestockRocketCon
fig.normalizedLocale &&
!Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) {
console.debug('STOQ - locale not explicitly translated, will use default language from cache');
}
// Don't return null - continue using cache even for untranslated locales
}
const updatedAt = new Date(settings.updated_at);
if (isNaN(updatedAt.getTime())) {
console.debug('STOQ - Invalid updated_at date format in settings');
return null;
}
const age = Date.now() - updatedAt.getTime();
if (age eCartSellingPlans()
.then(hasUpdates => {
if (hasUpdates) {
console.debug('STOQ - cart selling plans updated successfully');
} else {
console.debug('STOQ - no cart selling plan updates needed');
}
})
.catch(error => {
console.error('STOQ - error updating cart selling plans:', error);
})
;
}
});
}
// First try to get settings from metafields with expiry check
const cachedSettings = window._RestockRocketConfig.cachedSettings;
const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null;
if (validCachedSettings) {
console.debug('STOQ - using cached settings');
initializeScripts(validCachedSettings);
} else {
console.debug('STOQ - fetching fresh settings');
const headers = {
'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
'ngrok-skip-browser-warning': 'skip'
};
if (window.Shopify?.theme?.role === 'main') {
headers['X-Shopify-Theme-Schema-Name'] = 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._RestockRocketConfnsform:translateX(0)}}@-webkit-keyframes slide{100%{-webkit-transform:translateX(0)}}@keyframes slide-out-left{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}}.restock-rocket-preorder-progress-bar{padding:12px 15px;margin-bottom:20px;font-family:inherit;}.restock-rocket-preorder-progress-bar .preorder-progress-text{margin-bottom:8px;}.restock-rocket-preorder-progress-bar .preorder-progress-bar-row{display:flex;align-items:center;gap:10px;}.restock-rocket-preorder-progress-bar .preorder-progress-track{flex:1;height:12px;overflow:hidden;}.restock-rocket-preorder-progress-bar .preorder-progress-fill{display:block;height:100%;min-width:2px;transition:width 0.3s ease;}.restock-rocket-preorder-progrBrooks C17 Cambium All-Weatheress-bar .preorder-progress-percentage{font-weight:500;min-width:35px;text-align:right;}
£114.99
SKU: C201000A06300
Product Details
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.
Based on the famous B17. Ideal for commuting in the city or travelling the globe.
- Rails: Black Steel
- Lx283mm, Wx162mm, Hx52mm
- Weight: 464g

Track Service ProgressPrivacy Policy
Refund policySERVICES
Workshop Prices
INFORMATION