<1127669119 : null,55211127701887 : null,55211127734655 : null,55211127767423 : null,55211127800191 : null,55211127832959 : null,55211127865727 : null,55211127898495 : null,55211127931263 : null,55211127964031 : null,55211127996799 : null,55211128029567 : null,55211128062335 : null,55211128095103 : null,55211128127871 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {55211127669119 : parseInt(""),55211127701887 : parseInt(""),55211127734655 : parseInt(""),55211127767423 : parseInt(""),55211127800191 : parseInt(""),55211127832959 : parseInt(""),55211127865727 : parseInt(""),55211127898495 : parseInt(""),55211127931263 : parseInt(""),55211127964031 : parseInt(""),55211127996799 : parseInt(""),55211128029567 : parseInt(""),55211128062335 : parseInt(""),55211128095103 : parseInt(""),55211128127871 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {55211127669119 : null,55211127701887 : null,55211127734655 : null,55211127767423 : null,55211127800191 : null,552
  • 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
  • Tubeless
  • Saddles
    Pedals
  • a class="product__media product__media--featured" href="/products/hire-smith-convoy-helmet" title="Hire Lazer Compact Helmet" aria-label="Hire Lazer Compact Helmet" style="background-image: url(//projektride.co.uk/cdn/shop/files/my2023_tempo-kineticore-black_right_1400x1011800x600-removebg-preview_1_600x.png?v=1747484784)"> span class="visually-hidden">Hire Lazer Compact Helmet
  • > >
  • Hire Lazer Compact Helmet
  • Hire Ortlieb 40L Pannier Bags <
    Brake Spares<
    .
    Forks Website by
    Open search bar

    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');">
    Header Image
    <
      <

    Questions and answers

    5'11"-6'2"

    I'm looking to find out more information about a product, where can I find this?
    Privacy Policy

    der","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout

    null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","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_time
    r","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_cHire Ortlieb 40L Pannier Bags
    ll,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","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_ 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 = 1773111721;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 signing 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":"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_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_duplicate_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 more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it's restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":null,"preorder_add_to_cart_button_selector":"","preorder_badge_selector":"","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_enabled":false,"preorder_collection_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_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_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","cache":true,"cached_at":"2026-01-08T16:12:13.364Z","multi_language_enabled":false,"tr

    This program provides a no-charge replacement for your first three years of ownership and a prorated replacement thereafter for damage inflicted when racing, riding, or transporting your bicycle. Original owners only. Product registration is required within 60 days of purchase to be eligible for this program.datedAt = Array.isArray(oldPlans) && oldPlans.length > 0 ? oldPlans.reduce(function(max, plan) { // Parse dates for proper comparison (handles mixed ISO formats) 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)) anslation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074,43936000835810,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,43936078037218,43936078069986,43936088195298,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,43936142393570,43936142426338,43936142459106,43936152060130,43936152092898,43936152125666,43936193118434,43936250429666,43936255803618,43936266682594,43936266715362,43936293978338,43936294011106,43936316424418,43936316457186,43936320880866,43936320913634,43936320946402,43936327041250,43936327074018,43936327106786,43936331661538,43936

    332349666,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,43981987905762,43981987938530,44052906967266,44052907327714,44052907360482,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140302827746,44140302893282,44140317016290,441555905tyLimitDisabled":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":8664105550050,"title":"Shimano Steps battery, 500Wh, frame down tube mount - BT-E8010","handle":"shimano-steps-battery-500wh-frame-down-tube-mount-bt-e8010","description":"\u003cp\u003e \u003cmeta charset=\"utf-8\"\u003e\u003c\/p\u003e\n\u003cul class=\"description-overview\"\u003e\n\u003cli\u003eHigh quality, long lasting down tube mounting lithium-ion battery pack for Shimano STEPS systems\u003c\/li\u003e\n\u003cli\u003eBattery shape to allow for rear shocks and plenty of top tube clearance\u003c\/li\u003e\n\u003cli\u003eIn normal mode the riding distance could exceed 100 km\u003c\/li\u003e\n\u003cli\u003eWaterproof design as well as impact and vibration resistant\u003c\/li\u003e\n\u003cli\u003e1000 charge cycles without significant power loss\u00 08770,44155590541538,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,44957136584930,44957136781538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-03-10T02:42:30Z","market_locations_enabled":false,"market_id":382140642,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection3c\/li\u003e\n\u003cli\u003eApproximately five hours charge time\u003c\/li\u003e\n\u003cli\u003eCharge level display with error signal info and on\/off switch\u003c\/li\u003e\n\u003cli\u003eCharging port\u003c\/li\u003e\n\u003cli\u003eLock system for off bike security\u003c\/li\u003e\n\u003cli\u003eHigh 500Wh capacity (36V, 14Ah)\u003c\/li\u003e\n\u003cli\u003eAverage weight 2650g\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cul class=\"attributesSpecification\"\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eColour\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003eBlack\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eSize\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003e500 Wh\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eProduct Type\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003eBatteries \u0026amp; Chargers\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cspan\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cd

    <_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-10T02:42:29Z","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-10T02:42:29Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,555700175507iv id=\"ctl00_ContentPlaceHolder1_ctl17_dvProductIconsContainer\" class=\"ProductTitleBar_ProductIconsContainer\"\u003e\n\u003cdiv id=\"ctl00_ContentPlaceHolder1_ctl17_ucProductIcons_dvProductIconsContainer\" class=\"ProductIcons_Container\" data-uictrl-id=\"CTRL-0\"\u003e\n\u003cdiv id=\"ctl00_ContentPlaceHolder1_ctl17_ucProductIcons_dvProductIcons\" class=\"ProductIcons_ProductIcons\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!----\u003e","published_at":"2024-08-03T12:14:37+01:00","created_at":"2024-08-03T12:14:38+01:00","vendor":"Shimano","type":"Accessories","tags":["Battery","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":56999,"price_min":56999,"price_max":56999,"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":45767010746594,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"BTE8010","requires_shipphttps://www.enve.com/support/incidental-damage-protection-terms/a class="product__media product__media--featured" href="/products/hire-ortlieb-40l-pannier-bags" title="Hire Ortlieb 40L Pannier Bags" aria-label="Hire Ortlieb 40L Pannier Bags" style="background-image: url(//projektride.co.uk/cdn/shop/files/resize_width_1000_600x.jpg?v=1741085512)"> 19,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_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","ing":true,"taxable":true,"featured_image":null,"available":true,"name":"Shimano Steps battery, 500Wh, frame down tube mount - BT-E8010","public_title":null,"options":["Default Title"],"price":56999,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2024-08-03at10.26.07_7e263297-3cb4-4fad-a625-f65498090892.png?v=1722684118"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2024-08-03at10.26.07_7e263297-3cb4-4fad-a625-f65498090892.png?v=1722684118","options":["Title"],"media":[{"alt":null,"id":34386190205154,"position":1,"preview_image":{"aspect_ratio":1.002,"height":1198,"width":1200,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2024-08-03at10.26.07_7e263297-3cb4-4fad-a625-f65498090892.png?v=1722684118"},"aspect_ratio":1.002,"height":1198,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2024-08-03a

    Hire Ortlieb 40L Pannier Bagsnce","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","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_ti3cli\u003eHigh 500Wh capacity (36V, 14Ah)\u003c\/li\u003e\n\u003cli\u003eAverage weight 2650g\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cul class=\"attributesSpecification\"\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eColour\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003eBlack\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eSize\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003e500 Wh\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv class=\"label\"\u003eProduct Type\u003c\/div\u003e\n\u003cdiv class=\"value\"\u003eBatteries \u0026amp; Chargers\u003c\/div\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cspan\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv id=\"ctl00_ContentPlaceHolder1_ctl17_dvProductIconsContainer\" class=\"ProductTitleBar_ProductIconsContainer\"\u003e\n\u003cdiv id=\"ctl00_ContentPlaceHolder1_ctl17_ucProductIcons_dvProductIconsContainer\" class=\"ProductIcons_Container\" data-uictrl-id=\"CTRL-0\"\u003e\n\u003cdiv id=\"

    ,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_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","palable = 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/restockrocket-1-465/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019cd40b-736e-74a5-adbe-431365bfd910/restockrocket-1-465/assets/restockrocket-collection.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host = 'https://app.restockrocket.io' const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds const LIQUID_CACHE_MAX_AGE = 2 * 60 * 60; // 2 hours in seconds // Calculate Liquid cache freshness once at initialization const liquidRenderedAt = window._RestockRocketConfig.liquidRend

    e","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","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_time< 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 r_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":[713813721471,713176482175],"cached_at":"2026-02-18T08:36:42Z"}; if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) { // Find the maximum updated_at from all items in old array < const oldPlans = window._RestockRocketConfig.sellingPlans; const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0 ? oldPlans.reduce(function(max, plan) { // Parse dates for proper comparison (handles mixed ISO formats) 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 > ma= 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 xDate)); 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":"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,"toa 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 stPosition":"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":7477769306338,"title":"Burgtec Enduro MK3 Stem - 35mm Handlebar Clamp","handle":"burgtec-enduro-mk3-stem-35mm-handlebar-clamp","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003ch3 class=\"fusion-woocommerce-tab-title fusion-responsive-typography-calculated\" data-fontsize=\"16\" data-lineheight=\"22px\" data-mce-fragment=\"1\"\u003eDESCRIPTION\u003c\/h3\u003e\n\u003cp\u003e35mm Handlebar Clamp\u003c\/p\u003e\n\u003cdiv class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"fusion-builder-row fusion-row\" data-mce-fragment=\"1\"\u003e\n\u003cdiage = Date.now() - updatedAt.getTime(); if (age v class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"fusion-text fusion-text-1\" data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eEnduro has unquestionably evolved ever closer to Downhill. The Enduro MK3 Stem is all you need for hitting the trails with wingsuit type accuracy. This Stem was born out of rider’s demands for precision and for those moments when you have to be inch-perfect.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eTaking design elements from our World Cup-winning Direct Mount MK3 Stem and splicing these with our critically acclaimed Enduro MK2 Stem.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eWe developed the Stem specifically with Pro’s and Bro’s alike. It was obvious we all live for the s Hire Ortlieb 40L Pannier Bags 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 || vastly increased this to give a stout, rock-solid feel and as close to the MK3 Direct Mount Stem as we could. Furthermore, everything is held securely by stainless steel bolts to ensure there is no rust even in the grimmest weather. In addition and like every Burgtec product, it’s fully CNC machined and anodized in all your favourite flavours.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eTested with the world’s fastest jibbers and sendiest racers,\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/burgtec.co.uk\/the-enduro-mk3-stem\/\" data-mce-fragment=\"1\" data-mce-href=\"https:\/\/burgtec.co.uk\/the-enduro-mk3-stem\/\" target=\"_blank\"\u003ethis stem has everything you need\u003c\/a\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eto hit all those rowdy racing lines or pull that little bit harder off that big sender.\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eForged and Fully CNC machined from !settings.multi_language_enabled) { return settings; } if (!settings.translations) { console.debug('STOQ - No translations found, skipping translation'); return settings; } const normalizedLocale = window._RestockRocketConfig.normalizedLocale; const translations = settings.translations; if (!normalizedLocale) { // No matching locale has translations; drop payload to save memory console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {})); delete settings.translations; return settings; } console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`); const translatedFields = translations[normalizedLocale]; if (translatedFields && typeof translatedFields === 'object') { Object.keys(translatedFields).forEach(function(key) { const value = translatedFields[key AL6061 – T6 Aluminium\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eStainless Steel Hardware\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eAvailable lengths - 35mm, 42.5mm and 50mm\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eAvailable in both 31.8mm and 35mm Clamp\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eWeight; 35mm 138g, 42.5mm 152g , 50mm 160g\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eAvailable in 9 Colours. Burgtec Black, Race Red, Deep Blue, Purple Rain, Kash Bronze, Iron Bro Orange, Rhodium Silver, Burgtec Bullion Gold and Toxic Barbie Pink\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"fusion-woocommerce-tab-title\" data-fontsize=\"16\" data-lineheight=\"22px\" data-mce-fragment=\"1\"\u003eTORQUE SPECS\u003c\/h3\u003e\n\u003cp data-mce-fragment=\"1\"\u003eBar: We recommend you look at the bar manufactures specification for this. If you're using our bars then it is 6Nm\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eNote: When tighteni
    ]; 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._RestockRocketng the bar, make sure every space between the face plates and the main body are equal.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eSteerer: 6Nm\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eIf any more information is needed, please don't hesitate to get in touch with one of the team:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eProjektRide Bike shop Edinburgh.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eedinburgh@projektride.co.uk\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eT- 01313745324\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","published_at":"2021-12-17T13:58:26+00:00","created_at":"2021-12-17T13:58:23+00:00","vendor":"BurENVE M9 Mid-Rise Mountain Handlebar£0.00 && window._RestockRocket.updateCartSellingPlans) { window._RestockRocket.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } }); } // First try to get settings from metafields with expiry check const cachedSettings = window._RestockRocketConfig.cachedSettings; const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null; if (validCachedSettings) { console.debug('STOQ - using cached settings'); initializeScripts(validCachedSettings); } else { console.debug('STOQ - fetching fresh settings'); const headers = { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Sgtec","type":"","tags":["spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled","stems"],"price":8999,"price_min":8999,"price_max":8999,"available":false,"price_varies":false,"compare_at_price":8999,"compare_at_price_min":8999,"compare_at_price_max":8999,"compare_at_price_varies":false,"variants":[{"id":42171065991394,"title":"35mm Reach \/ Black","option1":"35mm Reach","option2":"Black","option3":null,"sku":"3411","requires_shipping":true,"taxable":true,"featured_image":{"id":36316066545890,"product_id":7477769306338,"position":1,"created_at":"2021-12-17T13:58:24+00:00","updated_at":"2021-12-17T13:58:26+00:00","alt":null,"width":972,"height":908,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.35.png?v=1639749506","variant_ids":[42171065991394,42171066122466]},"available":false,"name":"Burgtec Enduro MK3 Stem - 35mm Handlebar Clamp - 35mm Reach \/ Black","public_title":"35mm Reach \/ Black","options":["35mm Reach","Black"],"price":8999,"weight":0,"compare_at_pric
    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(cace":8999,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28866190606562,"position":1,"preview_image":{"aspect_ratio":1.07,"height":908,"width":972,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.35.png?v=1639749506"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42171066024162,"title":"35mm Reach \/ Orange","option1":"35mm Reach","option2":"Orange","option3":null,"sku":"3416","requires_shipping":true,"taxable":true,"featured_image":{"id":36316066578658,"product_id":7477769306338,"position":2,"created_at":"2021-12-17T13:58:24+00:00","updated_at":"2021-12-17T13:58:27+00:00","alt":null,"width":972,"height":908,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.40.png?v=1639749507","variant_ids":[42171066024162,42171066155234]},"available":false,"name":"Burgtec Enduro MK3 Stem - 35mm Handlebar Clamp - 35mm Reach \/ Orange","public_title":"35mm Reach \/ Orange","options":["35mm Reach","Orange"],"price":8 hedSettings); } else { console.error('STOQ - failed to load settings:', error); } }) .catch(function(e) { console.error(e) }) } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); // Setup cart selling plan updater BEFORE loading any scripts to avoid race conditions setupCartSellingPlanUpdater(settings); if(settings.enable_app) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType); }) if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) { createRestockRocketScript(window._RestockRocketCon999,"weight":0,"compare_at_price":8999,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28866190639330,"position":2,"preview_image":{"aspect_ratio":1.07,"height":908,"width":972,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.40.png?v=1639749507"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42171066056930,"title":"35mm Reach \/ Silver","option1":"35mm Reach","option2":"Silver","option3":null,"sku":"3417","requires_shipping":true,"taxable":true,"featured_image":{"id":36316066808034,"product_id":7477769306338,"position":3,"created_at":"2021-12-17T13:58:24+00:00","updated_at":"2021-12-17T13:58:27+00:00","alt":null,"width":972,"height":908,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.44.png?v=1639749507","variant_ids":[42171066056930,42171066188002]},"available":false,"name":"Burgtec Enduro MK3 Stem - 35mm Handlebar Clamp - 35mm Reach \/ Silver","public_title":"35mm Reach \/ Silver","options":["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 enab35mm Reach","Silver"],"price":8999,"weight":0,"compare_at_price":8999,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28866190672098,"position":3,"preview_image":{"aspect_ratio":1.07,"height":908,"width":972,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.44.png?v=1639749507"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42171066089698,"title":"35mm Reach \/ Blue","option1":"35mm Reach","option2":"Blue","option3":null,"sku":"3413","requires_shipping":true,"taxable":true,"featured_image":{"id":36316066775266,"product_id":7477769306338,"position":4,"created_at":"2021-12-17T13:58:24+00:00","updated_at":"2021-12-17T13:58:27+00:00","alt":null,"width":972,"height":908,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.49.png?v=1639749507","variant_ids":[42171066089698,42171066220770]},"available":false,"name":"Burgtec Enduro MK3 Stem - 35mm Handlebar Clamp - 35mm Reach \/ Blue","public_title":"35mm Reac led for ${window._RestockRocketConfig.pageType}`); } // Dispatch custom event when app is loaded // Cart selling plan updates will be triggered by stoq:inventory-data-loaded event const appLoadedEvent = new CustomEvent('stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enable_app, settings: settings, preorderEnabled: settings.preorder_enabled } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } } h \/ Blue","options":["35mm Reach","Blue"],"price":8999,"weight":0,"compare_at_price":8999,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28866190704866,"position":4,"preview_image":{"aspect_ratio":1.07,"height":908,"width":972,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.49.png?v=1639749507"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42171066122466,"title":"42.5mm Reach \/ Black","option1":"42.5mm Reach","option2":"Black","option3":null,"sku":"3431","requires_shipping":true,"taxable":true,"featured_image":{"id":36316066545890,"product_id":7477769306338,"position":1,"created_at":"2021-12-17T13:58:24+00:00","updated_at":"2021-12-17T13:58:26+00:00","alt":null,"width":972,"height":908,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.35.png?v=1639749506","variant_ids":[42171065991394,42171066122466]},"available":false,"name":"Burgtec Enduro MK3 Stem - 35mm Handlebar Clamp - 42.5mm Reach \/ Bl
    ack","public_title":"42.5mm Reach \/ Black","options":["42.5mm Reach","Black"],"price":8999,"weight":0,"compare_at_price":8999,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28866190606562,"position":1,"preview_image":{"aspect_ratio":1.07,"height":908,"width":972,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.35.png?v=1639749506"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42171066155234,"title":"42.5mm Reach \/ Orange","option1":"42.5mm Reach","option2":"Orange","option3":null,"sku":"3436","requires_shipping":true,"taxable":true,"featured_image":{"id":36316066578658,"product_id":7477769306338,"position":2,"created_at":"2021-12-17T13:58:24+00:00","updated_at":"2021-12-17T13:58:27+00:00","alt":null,"width":972,"height":908,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.40.png?v=1639749507","variant_ids":[42171066024162,42171066155234]},"available":false,"name":"Burgtec Enduro MK3 Stem - 35m m Handlebar Clamp - 42.5mm Reach \/ Orange","public_title":"42.5mm Reach \/ Orange","options":["42.5mm Reach","Orange"],"price":8999,"weight":0,"compare_at_price":8999,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28866190639330,"position":2,"preview_image":{"aspect_ratio":1.07,"height":908,"width":972,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.40.png?v=1639749507"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42171066188002,"title":"42.5mm Reach \/ Silver","option1":"42.5mm Reach","option2":"Silver","option3":null,"sku":"3437","requires_shipping":true,"taxable":true,"featured_image":{"id":36316066808034,"product_id":7477769306338,"position":3,"created_at":"2021-12-17T13:58:24+00:00","updated_at":"2021-12-17T13:58:27+00:00","alt":null,"width":972,"height":908,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.44.png?v=1639749507","variant_ids":[42171066056930,42171066188002]},"available":false,"name":"Burgtec Enduro MK3 Stem - 35mm Handlebar Clamp - 42.5mm Reach \/ Silver","public_title":"42.5mm Reach \/ Silver","options":["42.5mm Reach","Silver"],"price":8999,"weight":0,"compare_at_price":8999,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28866190672098,"position":3,"preview_image":{"aspect_ratio":1.07,"height":908,"width":972,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.44.png?v=1639749507"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42171066220770,"title":"42.5mm Reach \/ Blue","option1":"42.5mm Reach","option2":"Blue","option3":null,"sku":"3433","requires_shipping":true,"taxable":true,"featured_image":{"id":36316066775266,"product_id":7477769306338,"position":4,"created_at":"2021-12-17T13:58:24+00:00","updated_at":"2021-12-17T13:58:27+00:00","alt":null,"width":972,"height":908,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.49.png?v=1639749507","variant_ids":[421710660 Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable 89698,42171066220770]},"available":false,"name":"Burgtec Enduro MK3 Stem - 35mm Handlebar Clamp - 42.5mm Reach \/ Blue","public_title":"42.5mm Reach \/ Blue","options":["42.5mm Reach","Blue"],"price":8999,"weight":0,"compare_at_price":8999,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28866190704866,"position":4,"preview_image":{"aspect_ratio":1.07,"height":908,"width":972,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.49.png?v=1639749507"}},"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.35.png?v=1639749506","\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.40.png?v=1639749507","\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.44.png?v=1639749507","\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.49.png?v=1639749507"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/Sheight-scrolling\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"fusion-builder-row fusion-row\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-one-full fusion-column-first fusion-column-last\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"fusion-column-wrapper fusion-flex-column-wrapper-legacy\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"fusion-text fusion-text-1\" data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eEnduro has unquestionably evolved ever closer to Downhill. The Enduro MK3 Stem is all you need for hitting the trails with wingsuit type accuracy. This Stem was born out of rider’s demands for precision and for those moments when you have to be inch-perfect.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eTaking design elements from our World Cup-winning Direct Mount MK3 Stem and splicing these with our critically acclaimed Enduro MK2 Stem.\u003c\/p\u003e\n\ u003cp data-mce-fragment=\"1\"\u003eWe developed the Stem specifically with Pro’s and Bro’s alike. It was obvious we all live for the same challenge of pushing our own limits. As riders, we want a Stem that inspires confidence to change lines through the middle of a rock garden like it’s no big deal or slap the inside of a turn and translate all your weight to front-wheel traction. Providing ear to ear grins and saying to your mates at the bottom of a trail, “Did you see that?”.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eFrom the start of the design process, it became clear that we wanted extra rigidity. To yield this, we would need to make the Stem using a forging process - a new thing for us. The result of which allowed us to achieve a more intricate shape than machining alone. It involves applying a huge amount of force to redirect the grain flow of the material. As a result, this gives superior strength, fatigue and impact resistance.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u00 3e\n\u003c\/div\u003e\n\u003c\/div\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {42171065991394 : "deny",42171066024162 : "deny",42171066056930 : "deny",42171066089698 : "deny",42171066122466 : "deny",42171066155234 : "deny",42171066188002 : "deny",42171066220770 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {42171065991394 : parseInt("0"),42171066024162 : parseInt("0"),42171066056930 : parseInt("0"),42171066089698 : parseInt("0"),42171066122466 : parseInt("0"),42171066155234 : parseInt("0"),42171066188002 : parseInt("0"),42171066220770 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {42171065991394 : parseInt(""),42171066024162 : parseInt(""),42171066056930 : parseInt(""),42171066089698 : parseInt(""),42171066122466 : parseInt(""),42171066155234 : parseInt(""),42171066188002 : parseInt(""),42171066220770 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {42171065991394 : null,42171066024162 : null,4217<1066056930 : null,42171066089698 : null,42171066122466 : null,42171066155234 : null,42171066188002 : null,42171066220770 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {42171065991394 : parseInt(""),42171066024162 : parseInt(""),42171066056930 : parseInt(""),42171066089698 : parseInt(""),42171066122466 : parseInt(""),42171066155234 : parseInt(""),42171066188002 : parseInt(""),42171066220770 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {42171065991394 : null,42171066024162 : null,42171066056930 : null,42171066089698 : null,42171066122466 : null,42171066155234 : null,42171066188002 : null,42171066220770 : null,}; window._RestockRocketConfig.variantsShippingText = {42171065991394 : "",42171066024162 : "",42171066056930 : "",42171066089698 : "",42171066122466 : "",42171066155234 : "",42171066188002 : "",42171066220770 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {42171065991394 : null,42171066024162 : null,42171066056930 span class="visually-hidden">Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable : null,42171066089698 : null,42171066122466 : null,42171066155234 : null,42171066188002 : null,42171066220770 : null,}; window._RestockRocketConfig.selected_variant_id = 42171065991394; 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/restockrocket-1-465/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019cd40b-736e-74a5-adbe-431365bfd910/restockrocket-1-465/assets/restockrocket-collection.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host = 'https://app.restockrocket.io' const SETTINGS_CACHE_DURATI <= LIQUID_CACHE_MAX_AGE) { console.debug(`STOQ - Liquid cache is fresh (${Math.round(liquidCacheAge / 60)} minutes old)`); window._RestockRocketConfig.isLiquidCacheFresh = true; } else { console.debug(`STOQ - Liquid cache is stale (${Math.round(liquidCacheAge / 60)} minutes old, max ${Math.round(LIQUID_CACHE_MAX_AGE / 60)} minutes)`); window._RestockRocketConfig.isLiquidCacheFresh = false; } } function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); return null; } if (!settings.cache) { console.debug('STOQ - settings caching disabled'); return null; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no translation data in metafield // Metafield hasn't been backfilled yet - force refresh console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh'); return null; } // Translations object exists in metafield - cache is valid // If current locale isn't translated, applyTranslations will gracefully use default locale from base fields if (window._RestockRocketConfig.normalizedLocale && !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } // Don't return null - continue using cache even for untranslated locales } const updatedAt = new Date(settings.updated_at); if (isNaN(updatedAt.getTime())) { console.debug('STOQ - Invalid updated_at date format in settings'); return null; } const 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 || Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable!settings.multi_language_enabled) { return settings; } if (!settings.translations) { console.debug('STOQ - No translations found, skipping translation'); return settings; } const normalizedLocale = window._RestockRocketConfig.normalizedLocale; const translations = settings.translations; if (!normalizedLocale) { // No matching locale has translations; drop payload to save memory console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {})); delete settings.translations; return settings; } console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`); const translatedFields = translations[normalizedLocale]; if (translatedFields && typeof translatedFields === 'object') { Object.keys(translatedFields).forEach(function(key) { const value = translatedFields[key]; if (value !== null && value !== undefined && value !== '') { 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 && window._RestockRocket.updateCartSellingPlans) { window._RestockRocket.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } }); } // First try to get settings from metafields with expiry check const cachedSettings = window._RestockRocketConfig.cachedSettings; const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null; if (validCachedSettings) { console.debug('STOQ - using cached settings'); initializeScripts(validCachedSettings); } else { console.debug('STOQ - fetching fresh settings'); const headers = { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 'ngrok-skip-browser-warning': 'skip' }; if (window.Shopify?.theme?.role === 'main') { headers['X-Shopify-Theme-Schema-Name'] = 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 £0.00hedSettings); } else { console.error('STOQ - failed to load settings:', error); } }) .catch(function(e) { console.error(e) }) } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); // Setup cart selling plan updater BEFORE loading any scripts to avoid race conditions setupCartSellingPlanUpdater(settings); if(settings.enable_app) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType); }) if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) { createRestockRocketScript(window._RestockRocketCon .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:.8}.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-option: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-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:inherit;}.restock-rocket-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-align:center}.restock-rocket-preorder-countdown-timer .countdown-units{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-direction:column;align-items:center;gap:6px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:40px;padding:10px 6px;text-align:center;font-size:20px;line-height:1}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:14px;font-weight:500;text-align:center;text-transform:capitalize;opacity:.7}@media (max-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:55px;padding:14px 10px;font-size:26px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:11px}}@media (max-width:480px){.restock-rocket-preorder-countdown-timer{padding:12px}.restock-rocket-preorder-countdown-timer .countdown-units{width:100%;gap:10px}.restock-rocket-preorder-countdown-timer .countdown-box{width:100%;min-width:50px;padding:12px 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animation:.5s forwards slide-out-left;animation:.5s forwards slide-out-left}.restock-rocket-toast-right{right:0;transform:translateX(100%);-webkit-transform:translateX(100%);border-radius:10px 0 0 10px}.restock-rocket-toast-right.slide-out{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-right}@keyframes slide{100%{transform:translateX(0)}}@-webkit-keyframes slide{100%{-webkit-transform:translateX(0)}}@keyframes slide-out-left{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}}.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-progress-bar .preorder-progress-percentage{font-weight:500;min-width:35px;text-align:right;} HIRE - BIKE PACKING BUNDLE < span class="visually-hidden">HIRE - BIKE PACKING BUNDLE< div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/resize_width_1000_1296x_d1ffd242-63bc-4a9f-85e2-400f274532d7_600x.jpg?v=1747481423)"> HIRE - BIKE PACKING BUNDLE £0.00< 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');"> ProjektRide Questions and answers
    creenshot2021-12-17at13.54.35.png?v=1639749506","options":["Size","Color"],"media":[{"alt":null,"id":28866190606562,"position":1,"preview_image":{"aspect_ratio":1.07,"height":908,"width":972,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.35.png?v=1639749506"},"aspect_ratio":1.07,"height":908,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.35.png?v=1639749506","width":972},{"alt":null,"id":28866190639330,"position":2,"preview_image":{"aspect_ratio":1.07,"height":908,"width":972,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.40.png?v=1639749507"},"aspect_ratio":1.07,"height":908,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.40.png?v=1639749507","width":972},{"alt":null,"id":28866190672098,"position":3,"preview_image":{"aspect_ratio":1.07,"height":908,"width":972,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.44.pMaterial .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:.8}.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-option: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-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:inherit;}.restock-rocket-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-align:center}.restock-rocket-preorder-countdown-timer .countdown-units{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-direction:column;align-items:center;gap:6px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:40px;padding:10px 6px;text-align:center;font-size:20px;line-height:1}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:14px;font-weight:500;text-align:center;text-transform:capitalize;opacity:.7}@media (max-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:55px;padding:14px 10px;font-size:26px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:11px}}@media (max-width:480px){.restock-rocket-preorder-countdown-timer{padding:12px}.restock-rocket-preorder-countdown-timer .countdown-units{width:100%;gap:10px}.restock-rocket-preorder-countdown-timer .countdown-box{width:100%;min-width:50px;padding:12px 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animation:.5s forwards slide-out-left;animation:.5s forwards slide-out-left}.restock-rocket-toast-right{right:0;transform:translateX(100%);-webkit-transform:translateX(100%);border-radius:10px 0 0 10px}.restock-rocket-toast-right.slide-out{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-right}@keyframes slide{100%{transform:translateX(0)}}@-webkit-keyframes slide{100%{-webkit-transform:translateX(0)}}@keyframes slide-out-left{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}}.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-progress-bar .preorder-progress-percentage{font-weight:500;min-width:35px;text-align:right;} ng?v=1639749507"},"aspect_ratio":1.07,"height":908,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.44.png?v=1639749507","width":972},{"alt":null,"id":28866190704866,"position":4,"preview_image":{"aspect_ratio":1.07,"height":908,"width":972,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.49.png?v=1639749507"},"aspect_ratio":1.07,"height":908,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2021-12-17at13.54.49.png?v=1639749507","width":972}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003ch3 class=\"fusion-woocommerce-tab-title fusion-responsive-typography-calculated\" data-fontsize=\"16\" data-lineheight=\"22px\" data-mce-fragment=\"1\"\u003eDESCRIPTION\u003c\/h3\u003e\n\u003cp\u003e35mm Handlebar Clamp\u003c\/p\u003e\n\u003cdiv class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 nonhundred-percent-fullwidth non-hundred-percent-3eAnother area where we made a significant improvement in rigidity was by increasing the clamping surface area on the steerer tube. We’ve vastly increased this to give a stout, rock-solid feel and as close to the MK3 Direct Mount Stem as we could. Furthermore, everything is held securely by stainless steel bolts to ensure there is no rust even in the grimmest weather. In addition and like every Burgtec product, it’s fully CNC machined and anodized in all your favourite flavours.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eTested with the world’s fastest jibbers and sendiest racers,\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/burgtec.co.uk\/the-enduro-mk3-stem\/\" data-mce-fragment=\"1\" data-mce-href=\"https:\/\/burgtec.co.uk\/the-enduro-mk3-stem\/\" target=\"_blank\"\u003ethis stem has everything you need\u003c\/a\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eto hit all those rowdy racing lines or pull that little bit harder off that bCarbon fibre ig sender.\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eForged and Fully CNC machined from AL6061 – T6 Aluminium\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eStainless Steel Hardware\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eAvailable lengths - 35mm, 42.5mm and 50mm\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eAvailable in both 31.8mm and 35mm Clamp\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eWeight; 35mm 138g, 42.5mm 152g , 50mm 160g\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eAvailable in 9 Colours. Burgtec Black, Race Red, Deep Blue, Purple Rain, Kash Bronze, Iron Bro Orange, Rhodium Silver, Burgtec Bullion Gold and Toxic Barbie Pink\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3 class=\"fusion-woocommerce-tab-title\" data-fontsize=\"16\" data-lineheight=\"22px\" data-mce-fragment=\"1\"\u003eTORQUE SPECS\u003c\/h3\u003e\n\u003cp data-mce-fragment=\"1\"\u003eBar: We recommend you look at the bar manufactur
    <age = Date.now() - updatedAt.getTime(); if (age 245g <
    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 enabWidth Maximum (as supplied) led for ${window._RestockRocketConfig.pageType}`); } // Dispatch custom event when app is loaded // Cart selling plan updates will be triggered by stoq:inventory-data-loaded event const appLoadedEvent = new CustomEvent('stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enable_app, settings: settings, preorderEnabled: settings.preorder_enabled } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } } 810mm
    Width Minimum (cut) <780mma class="product__media product__media--featured" href="/products/hire-bike-packing-bundle" title="HIRE - BIKE PACKING BUNDLE" aria-label="HIRE - BIKE PACKING BUNDLE" style="background-image: url(//projektride.co.uk/cdn/shop/files/Yourparagraphtext_600x.png?v=1747481130)">
    Clamp Diameter 31.8
    Clamp zone
    Rise +30mm
    Sweep 8 degrees#FeaturedImage--template--15326745395426__1645734801adfd4c07 { --overlay-opacity: 0.2; }
    Tip
    Torque Spec: Face Plate 5.5NmBuy Sell Ride Confident
    Torque Spec: ControlsFAQ5.5Nm
    Building Your Bike From the Box Privacy Policy Terms of Service Refund policy SERVICES Servicing Workshop Prices Cycle to Work INFORMATION Working Hours Mon - Fri: 09:00 - 18:30 Sun: Closed Tel
    780mm<
    RiseInsure Your Bike+50mmCookie Policy
    Sweep 8 degrees
    TipDelivery & Returns 4 degrees
    Torque Spec: Face Plate 5.5Nm
    Torque Spec: Controls Sat: 9:00 - 16:005.5Nm
    0131 374 5324


    Location
    82 Newington Road
    Edinburgh
    [email protected]

    FAQ

    Questions and answers