• <
  • <
  • img src="//projektride.co.uk/cdn/shop/products/AAE6D157-CD1F-4D34-B2E5-248AAC4E4029_1_105_c_90fe2072-4012-4a96-a1f4-748008370081_98x.jpg?v=1672755128" alt="" class="product-single__thumbnail-img"> console.log("pr-product-page");Hire Lazer Compact Helmet
    £0.00 Black
    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)"> < SELL
    order_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,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43916521013474,43934694998242,43934695031010,43934695620834,439359754 254801\"\u003e27.5x2.35\" balloon\u003c\/a\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-5bd42f3c=\"\" data-v-05762449=\"\" id=\"pdl-collapse-item-lc5sci\" name=\"315\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-lc5sci\" aria-describedby=\"pdl-collapse-content-lc5sci\" class=\"\" aria-expanded=\"true\" qaid=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003eE-system\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-lc5sci\" type=\"button\" class=\"pdl-collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentcolor\" aria-hidden=\"true\" role=\"presentation\" class=\"pdl-collaps -collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentcolor\" aria-hidden=\"true\" role=\"presentation\" class=\"pdl-collapse-item__icon pdl-icon pdl-icon--size-24 is-active\" qaid=\"\"\u003e\u003cpath d=\"M0 0h24v24H0z\" fill=\"none\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-5bd42f3c=\"\" id=\"pdl-collapse-content-8zi77i\" role=\"tabpanel\" aria-labelledby=\"pdl-collapse-head-8zi77i\" class=\"pdl-collapse-item__wrap\" data-old-padding-top=\"\" data-old-padding-bottom=\"\" data-old-overflow=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"pdl-collapse-item__content\"\u003e\n\u003ctable data-v-05762449=\"\" aria-label=\"Specifications\" class=\"sprocket__table spec\"\u003e\n\u003 FAQestockRocketConfig.host = 'https://app.restockrocket.io' const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); return null; } if (!settings.cache) { console.debug('STOQ - settings caching disabled'); return null; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no translation data in 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 - caQuantity:
    Questions and answers<
    !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[key1
    Q - settings configured for ${window._RestockRocketConfig.pageType}`); if(settings.enable_app) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType); }) if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlColl
    ings } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } } function updateCartSellingPlans() { // Wait for the API to be available with retries const maxRetries = 10; const retryDelay = 500; function attemptCartCheck(attempt = 1) { if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) { window._RestockRocket.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } else if (attempt I'm looking to find o maxRetries) { console.debug(`STOQ - API not ready, retry ${attempt}/${maxRetries}`); setTimeout(() => attemptCartCheck(attempt1+
    Header Image
    down-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;ba
    de-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:Decrease quantity
    label for="quantity--template--15326745395426__main">Quantity

    Ridgeback Electron Front Hub DriveBlack<

    div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-02-24at21.18.32_9d81277b-124e-4fdc-8a0f-fbfb40a9343d_600x.png?v=1691610357)">

    . <
    a class="product__media product__media--featured" href="/products/kryptolok-standard-u-lock-with-4-foot-kryptoflex-cable-hire" title="Hire Kryptolok Standard U-Lock & 4 foot Kryp £0.00toflex cable" aria-label="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849_600x.png?v=1691610428)">
    < span class="visually-hidden">Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable
    Life Systems Pocket First Aid Kit - HIRE
    a class="product__media product__media--featured" href="/products/life-systems-pocket-first-aid-kit-hire" title="Life Systems Pocket First Aid Kit - HIRE" aria-label="Life Systems Pocket First Aid Kit - HIRE" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-02-24at21.18.22_5c0e6e2d-1913-4fd1-a90d-b486895960b6_600x.png?v=1691610357)"> £0.00 span class="visually-hidden">Life Systems Pocket First Aid Kit - HIRE >
    >
    1 £0.00 span class="visually-hidden">Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable > I'm looking to find out more information about a product, where can I find this?
    Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable
    If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item. <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');"> Postage is free on orders over £50. Orders under £50, our postage charge is £3.99.
    .site-footer { --bg: #1f2324; --text: #ffffff; --text-alpha-15: rgba(255, 255, 255, 0.15); --text-alpha-60: rgba(255, 255, 255, 0.6); --text-alpha-85: rgba(255, 255, 255, 0.85); } .footer- Questions and answerscontent__logo__image { width: 170px; }

    Product Details

    Our most affordable E-bike, the Electron Front Hub Drive gives a powerful pedal assist to help you ride further, faster.



    The open frame design makes it easy to step through the bike, get onto the saddle and start riding.

    ?The Electron has a range of up to 55-kilometres, making it perfect for local rides and an overnight re-charge will have you ready for your next trip. Comfort is catered for with wide tyres, an elastomer-sprung high-fill saddle and an adjustable stem enabling the rider to choose their preferred handlebar height.

    The Electron is also fully equipped with lights, a kickstand and rear wheel lock, as well as mudguards to minimise spray on wet roads and a chain case to protect legs and trousers from oily marks.Please get in touch with a member of the team either by phone (QUICK LINKS

    Weight - 24.7kg01313745324

    ) or email (

    [email protected]

    ) where on of the team will be more than happy to help.
    ProjektRide Bike Shop Edinburgh
    I'm looking to buy this product, when will it arrive and how much does postage cost?
    If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item.
    Postage is free on orders over £50. Orders under £50, our postage charge is £3.99.
    We also have a physical store, if you are local please pop in -SERVICES
    ProjektRide Bike Shop Edinburgh Workshop Prices  Cycle to WorkSteel Delivery & Returns
    .site-footer { --bg: #1f2324; --text: #ffffff; --text-alpha-15: rgba(255, 255, 255, 0.15); --text-alpha-60: rgba(255, 255, 255, 0.6); --text-alpha-85: rgba(255, 255, 255, 0.85); } .footer-content__logo__image { width: 170px; }INFORMATION
    img src="//projektride.co.uk/cdn/shop/files/logo_header_2048x2048.png?v=1634060673" alt="" class="logo--footer">
    QUICK LINKS
    _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"
    _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\"]","preord
    rt_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_ins":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-01-09T01:01:09Z","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-01-09T01:01:09Z","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"
    \u003e\n\u003cp data-mce-fragment=\"1\"\u003eThroughout our time testing the composite Mk4 we rode then with various flat pedal shoes including Five Tens, Shimano GR7’s and Giro Riddance and Bontrager Flatline shoes. Each combination complemented each other as well as Manchego cheese and a mature red wine or if you prefer, chicken nuggets and a chocolate milkshake.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe composite Penthouse Mk4 is a versatile pedal that works well in every environment, trail and weather condition you can think of and came back asking for more.\"\u003c\/p\u003e","published_at":"2025-01-07T16:36:30+00:00","created_at":"2021-12-09T09:58:19+00:00","vendor":"Burgtec","type":"","tags":["Pedals","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":3999,"price_min":3999,"price_max":3999,"available":true,"price_varies":false,"compare_at_price":3999,"compare_at_price_min":3999,"compare_at_price_max":3999,"compare_at_price_varies":false,"variants":[{"id":42[email protected 140055666914,"title":"Black","option1":"Black","option2":null,"option3":null,"sku":"1501","requires_shipping":true,"taxable":true,"featured_image":{"id":36266091151586,"product_id":7469296910562,"position":1,"created_at":"2021-12-09T10:20:11+00:00","updated_at":"2021-12-14T15:37:10+00:00","alt":null,"width":960,"height":960,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/1501-Black-Mk4-Composite_960x_1.png?v=1639496230","variant_ids":[42140055666914]},"available":true,"name":"Burgtec MK4 Composite Pedals - Black","public_title":"Black","options":["Black"],"price":3999,"weight":400,"compare_at_price":3999,"inventory_management":"shopify","barcode":"712885685967","featured_media":{"alt":null,"id":28815479668962,"position":1,"preview_image":{"aspect_ratio":1.0,"height":960,"width":960,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/1501-Black-Mk4-Composite_960x_1.png?v=1639496230"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42140055699682,"title":"Red","option1":"Red","option2":nul]
    option3":null,"sku":"1504","requires_shipping":true,"taxable":true,"featured_image":{"id":36292259676386,"product_id":7469296910562,"position":7,"created_at":"2021-12-14T15:34:45+00:00","updated_at":"2021-12-14T15:34:45+00:00","alt":null,"width":925,"height":1100,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/1504-purple-mk4-composite-re_fbb4db13-bd6d-4583-b792-2f45ab9f04cf.png?v=1639496085","variant_ids":[42140055732450]},"available":false,"name":"Burgtec MK4 Composite Pedals - Pink","public_title":"Pink","options":["Pink"],"price":3999,"weight":400,"compare_at_price":3999,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28842091380962,"position":7,"preview_image":{"aspect_ratio":0.841,"height":1100,"width":925,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/1504-purple-mk4-composite-re_fbb4db13-bd6d-4583-b792-2f45ab9f04cf.png?v=1639496085"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42140055765218,"title":"Orange","option1":"Orange","option2":nu
    ll,"option3":null,"sku":"1506","requires_shipping":true,"taxable":true,"featured_image":{"id":36292258595042,"product_id":7469296910562,"position":6,"created_at":"2021-12-14T15:34:33+00:00","updated_at":"2021-12-14T15:34:33+00:00","alt":null,"width":1084,"height":1335,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/burgtecmk4compositeflatpedalsironbroorange1.jpg?v=1639496073","variant_ids":[42140055765218]},"available":false,"name":"Burgtec MK4 Composite Pedals - Orange","public_title":"Orange","options":["Orange"],"price":3999,"weight":400,"compare_at_price":3999,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28842090365154,"position":6,"preview_image":{"aspect_ratio":0.812,"height":1335,"width":1084,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/burgtecmk4compositeflatpedalsironbroorange1.jpg?v=1639496073"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42140055797986,"title":"Blue","option1":"Blue","option2":null,"option3":null,"sku":"1503","requ ires_shipping":true,"taxable":true,"featured_image":{"id":36266086432994,"product_id":7469296910562,"position":2,"created_at":"2021-12-09T10:19:19+00:00","updated_at":"2021-12-14T15:37:10+00:00","alt":null,"width":1080,"height":1080,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/1503-Blue-Mk4-Composite_1080x_0766c955-a929-4189-b74e-67215f9e6f5c.png?v=1639496230","variant_ids":[42140055797986]},"available":true,"name":"Burgtec MK4 Composite Pedals - Blue","public_title":"Blue","options":["Blue"],"price":3999,"weight":400,"compare_at_price":3999,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28815474819298,"position":2,"preview_image":{"aspect_ratio":1.0,"height":1080,"width":1080,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/1503-Blue-Mk4-Composite_1080x_0766c955-a929-4189-b74e-67215f9e6f5c.png?v=1639496230"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42140055830754,"title":"White","option1":"White","option2":null,"option3":null,"sku":"1507","r
    equires_shipping":true,"taxable":true,"featured_image":{"id":36292259938530,"product_id":7469296910562,"position":8,"created_at":"2021-12-14T15:34:52+00:00","updated_at":"2021-12-14T15:34:52+00:00","alt":null,"width":1077,"height":1338,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/burgtecmk4compositeflatpedalsgrey1_5a495458-9703-4ee2-be93-723fca55c5c4.jpg?v=1639496092","variant_ids":[42140055830754]},"available":false,"name":"Burgtec MK4 Composite Pedals - White","public_title":"White","options":["White"],"price":3999,"weight":400,"compare_at_price":3999,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28842091675874,"position":8,"preview_image":{"aspect_ratio":0.805,"height":1338,"width":1077,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/burgtecmk4compositeflatpedalsgrey1_5a495458-9703-4ee2-be93-723fca55c5c4.jpg?v=1639496092"}},"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/1501-Black-Mk4-Composite_ 960x_1.png?v=1639496230","\/\/projektride.co.uk\/cdn\/shop\/products\/1503-Blue-Mk4-Composite_1080x_0766c955-a929-4189-b74e-67215f9e6f5c.png?v=1639496230","\/\/projektride.co.uk\/cdn\/shop\/products\/1502-Red-Mk4-Composite_1080x_c2aeeed0-31f3-40cb-90ba-dabb4c782c7c.png?v=1639496230","\/\/projektride.co.uk\/cdn\/shop\/products\/1504-purple-mk4-composite-re.png?v=1639496070","\/\/projektride.co.uk\/cdn\/shop\/products\/burgtecmk4compositeflatpedalsgrey1.jpg?v=1639496071","\/\/projektride.co.uk\/cdn\/shop\/products\/burgtecmk4compositeflatpedalsironbroorange1.jpg?v=1639496073","\/\/projektride.co.uk\/cdn\/shop\/products\/1504-purple-mk4-composite-re_fbb4db13-bd6d-4583-b792-2f45ab9f04cf.png?v=1639496085","\/\/projektride.co.uk\/cdn\/shop\/products\/burgtecmk4compositeflatpedalsgrey1_5a495458-9703-4ee2-be93-723fca55c5c4.jpg?v=1639496092"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/1501-Black-Mk4-Composite_960x_1.png?v=1639496230","options":["Color"],"media":[{"alt":null,"id":28815479668962,"posiiew_image":{"aspect_ratio":0.812,"height":1335,"width":1084,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/burgtecmk4compositeflatpedalsironbroorange1.jpg?v=1639496073"},"aspect_ratio":0.812,"height":1335,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/burgtecmk4compositeflatpedalsironbroorange1.jpg?v=1639496073","width":1084},{"alt":null,"id":28842091380962,"position":7,"preview_image":{"aspect_ratio":0.841,"height":1100,"width":925,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/1504-purple-mk4-composite-re_fbb4db13-bd6d-4583-b792-2f45ab9f04cf.png?v=1639496085"},"aspect_ratio":0.841,"height":1100,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/1504-purple-mk4-composite-re_fbb4db13-bd6d-4583-b792-2f45ab9f04cf.png?v=1639496085","width":925},{"alt":null,"id":28842091675874,"position":8,"preview_image":{"aspect_ratio":0.805,"height":1338,"width":1077,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/burgtecmk4compositeflatpedalsgrey1_5a495458-9703-4ee2-be9 3-723fca55c5c4.jpg?v=1639496092"},"aspect_ratio":0.805,"height":1338,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/burgtecmk4compositeflatpedalsgrey1_5a495458-9703-4ee2-be93-723fca55c5c4.jpg?v=1639496092","width":1077}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe Burgtec composite pedal is everything you’d expect from a\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003ca data-mce-fragment=\"1\" href=\"https:\/\/b2b.burgtec.co.uk\/product\/penthouse-flat-mk4-pedals\/\" target=\"_blank\" data-mce-href=\"https:\/\/b2b.burgtec.co.uk\/product\/penthouse-flat-mk4-pedals\/\"\u003eBurgtec pedal\u003c\/a\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003ebut at a more affordable price point.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eUncompromised grip, rugged durability, the exact same sculpted simple lines, fully backed up with spares and at an affordable price.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe best of both worlds can exist.\u003cbr\u003e\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eNylon and Fibreglass Body\u003cbr\u003e\n\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eSCM415 Cromo Axle\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eAll replaceable steel pins\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e16mm Profile\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e1mm Dish\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eWeight 376g\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eAvailable in Burgtec Black, Race Red, Deep Blue, Purple Rain, Iron Bro Orange, Kash Bronze, White, Electric Yellow\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\"Underfoot the composite Penthouse Mk4 pedals feel just as good as the more expensive alloy version. It has a good level of traction and manoeuvrability. The large platform gives   you a good space to aim for and while those steel pins offer enough bite to keep you in check. Furthermore, they don’t interfere with those last-minute foot repositioning moments.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThroughout our time testing the composite Mk4 we rode then with various flat pedal shoes including Five Tens, Shimano GR7’s and Giro Riddance and Bontrager Flatline shoes. Each combination complemented each other as well as Manchego cheese and a mature red wine or if you prefer, chicken nuggets and a chocolate milkshake.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe composite Penthouse Mk4 is a versatile pedal that works well in every environment, trail and weather condition you can think of and came back asking for more.\"\u003c\/p\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {42140055666914 : "deny",42140055699682 : "deny",42140055732450 : "deny",42140055765218 : "deny",42140055797986 : "deny",42140055830754 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {42140055666914 : parseInt("4"),42140055699682 : parseInt("0"),42140055732450 : parseInt("0"),42140055765218 : parseInt("0"),42140055797986 : parseInt("1"),42140055830754 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {42140055666914 : parseInt(""),42140055699682 : parseInt(""),42140055732450 : parseInt(""),42140055765218 : parseInt(""),42140055797986 : parseInt(""),42140055830754 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {42140055666914 : null,42140055699682 : null,42140055732450 : null,42140055765218 : null,42140055797986 : null,42140055830754 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {42140055666914 : parseInt(""),42140055699682 : parseInt(""),42140055732450 : parseInt(""),42140055765218 : parseInt(""),42140055797986 : parseInt(""),42140055830754 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {42140055666914 : null,42140055699682 : nullSteel / Alloy 36T / 170 mm ,42140055732450 : null,42140055765218 : null,42140055797986 : null,42140055830754 : null,}; window._RestockRocketConfig.variantsShippingText = {42140055666914 : "",42140055699682 : "",42140055732450 : "",42140055765218 : "",42140055797986 : "",42140055830754 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {42140055666914 : null,42140055699682 : null,42140055732450 : null,42140055765218 : null,42140055797986 : null,42140055830754 : null,}; window._RestockRocketConfig.selected_variant_id = 42140055666914; 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/019b9fa3-dc53-7a1c-9078-4931c5088fc8/restock-rocket-shopify-427/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b9fa3-dc53-7a1c-9078-4931c5088fc8/restock-rocket-shopify-427/assets/restockrocket-collection.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host = 'https://app.restockrocket.io' const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); return null; } if (!settings.cache) { console.debug('STOQ - settings caching disabled'); return null; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no translation dat a in metafield // Metafield hasn't been backfilled yet - force refresh console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh'); return null; } // Translations object exists in metafield - cache is valid // If current locale isn't translated, applyTranslations will gracefully use default locale from base fields if (window._RestockRocketConfig.normalizedLocale && !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } // Don't return null - continue using cache even for untranslated locales } const updatedAt = new Date(settings.updated_at); if (isNaN(updatedAt.getTime())) { console.debug('STOQ - Invalid updated_at date format in settings'); return null; } const age = Date.now(
    ) - updatedAt.getTime(); if (age <
    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 || © 2026, !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; } } // 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': 'sk ProjektRideip' }; if (window.Shopify?.theme?.role === 'main') { headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name; headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version; headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id; } fetch( `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, { headers } ) .then(function(response) { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { // If request failed and we have cached settings (even if expired), use them as fallback if (cachedSettings) { console.debug('STOQ - using expired cached settings as fallback'); initializeScripts(cachedSettings); } else { console.error('
    STOQ - failed to load settings:', error); } }) .catch(function(e) { console.error(e) }) } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); if(settings.enable_app) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType); }) if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) { createRestockRo .cketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'product') { createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct); } else if(hijackIntegration) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`); } // Check and update cart selling plans after scripts are loaded if (settings.preorder_enabled) { updateCart< Website by maxRetries) { console.debug(`STOQ - API not ready, retry ${attempt}/${maxRetries}`); setTimeout(() => attemptCartCheck(attempt + 1), retryDelay); } else { console.debug('STOQ - API not loaded after max retries, skipping cart selling plan check'); } } attemptCartCheck(); }  Juan Borges Designs Sportdrive 2AH. .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;fo
    ountdown-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{-webk
    ket-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;}
    ail","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_allowe d":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 en tering 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_textSteel_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,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074,43936000835810,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,43936078037218,43936078069986,43936088195298,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,43936142393570,43936142426338,43936142459106,43936152060130,43936152092898,43936152125666,43936193118434,43936250429666,43936255803618,43936266682594,43936266715362,43936293978338,43936294011106,43936316424418,43936316457186,43936320880866,43936320913634,43936320946402,43936327041250,43936327074018,43936327106786,43936331661538,43936332349666,43936333103330,43936351224034,43936353714402,43936362889442,43936362922210,43936388153570,43936389333218,43936395526370,43936398508258,43936401522914,43936408568034,43936414400738,43936700727522,43936706101474,43936706134242,43936706167010,43936706199778,43936706232546,43936706265314,43938308587746,43938308653282,43938308718818,43938308751586,43938308784354,43938308817122,43938322612450,43938322645218,43938322677986,43981336051938,43981336084706,43981336117474,43981336150242,43981345587426,43981345620194,43981345652962,43981345685730,43981357580514,43981357613282,4398136 2462946,43981362495714,43981362528482,43981369016546,43981369049314,43981374914786,43981374947554,43981374980322,43981392904418,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987905762,43981987938530,44052906967266,44052907327714,44052907360482,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140302827746,44140302893282,44140317016290,44155590508770,44155590541538,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,44957136584930,44957136781538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,55569933074815,55570550194559,55570550227327,55604008976
    767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-01-09T01:16:16Z","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-01-09T01:01:09Z","shopify_market_id":382140642,"market_locations_enabled":false}; window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_a t":"2026-01-09T01:01:09Z","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":[55569933140351,55569712382335,55569712415103,55569712480639,55569933173119,55570017616255,55569933074815,55570017550719,55569712447871,55569933107583,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder"
    ,"preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","p reorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"markets_enabled":false,"market_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowl
    edgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true}];window._RestockRocketConfig.integrations = [{"id":"15c94526-b6b8-4de1-9bc1-23b1ca52ddb0","shop_id":38436,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"toastDuration":10000,"toastPosition" :"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false},"type":"hijack","css_config":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":14971356873087,"title":"ENVE 2.0 Road Fork","handle":"enve-2-0-road-fork","description":"\u003cdiv class=\"wrapper\"\u003e\n\u003cdiv class=\"product-flex\"\u003e\n\u003cdiv class=\"product-flex-item item-description\"\u003e\n\u003cdiv class=\"product-description rte\"\u003e\n\u003cp\u003eThe ENVE 2.0 Road Fork uses a proprietary one-piece moulding process to perfectly balance low weight, strength and stiffness while greatly improving ride quality. The result is the best aftermarket fork on the market.\u003c\/p\u003e\n\u003cp\u003eTo achieve perfection, ENVE developed an innovative manufacturing process allowing the fork to be created in one piece, the carbon fibres running contin
    uously from the top of the steerer to the bottom of the drop-outs.\u003c\/p\u003e\n\u003cp\u003eWith the brake bolt hole moulded into the crown with no drilling and no bonding at all, the 2.0 Road Fork is high-performance cycling technology that's lighter, stronger and rides better than the competition.\u003c\/p\u003e\n\u003cp\u003eIf you're looking for a fork that is beautiful, reliable, lightweight, strong and rides beautifully, look no further.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvailable in multiple rakes\u003c\/li\u003e\n\u003cli\u003eOne-piece moulded design from steerer tube to dropouts\u003c\/li\u003e\n\u003cli\u003eStraight steerer version\u003c\/li\u003e\n\u003cli\u003eSuitable for rim brakes only\u003c\/li\u003e\n\u003cli\u003e5-year Factory Limited Warranty and Incidental Damage Protection Programme\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch5\u003ePLEASE NOTE\u003c\/h5\u003e\n\u003cp\u003eThis fork is suitable for centre-bolt rim brakes only – not direct-mount rim brakes or disc bra kes. It is suitable for quick-release hubs only, not thru axle.\u003c\/p\u003e\n\u003ch5\u003eENVE Factory Limited Warranty\u003c\/h5\u003e\n\u003cp\u003eCoverage for the original owner against defects in materials and workmanship for the period of five years from the original purchase date. Product registration is required within 60 days of purchase. Second-hand owners are covered from the product's date of manufacture.\u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/www.enve.com\/support\/warranty-terms\/\"\u003ehttps:\/\/www.enve.com\/support\/warranty-terms\/\u003c\/a\u003e\u003c\/p\u003e\n\u003ch5\u003eENVE Incidental Damage Protection\u003c\/h5\u003e\n\u003cp\u003eThis 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.\u003c\/p\u003e\n\u003cp\u003"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":55174595641727,"title":"1-1\/8 40mm Rake","option1":"1-1\/8 40mm Rake","option2":null,"option3":null,"sku":"EN321112540B","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"ENVE 2.0 Road Fork - 1-1\/8 40mm Rake","public_title":"1-1\/8 40mm Rake","options":["1-1\/8 40mm Rake"],"price":49000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55174595674495,"title":"1-1\/8 43mm Rake","option1":"1-1\/8 43mm Rake","option2":null,"option3":null,"sku":"EN321112543B","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"ENVE 2.0 Road Fork - 1-1\/8 43mm Rake","public_title":"1-1\/8 43mm Rake","options":["1-1\/8 43mm Rake"],"price":49000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_ plan_allocations":[]},{"id":55174595707263,"title":"1-1\/8 45mm Rake","option1":"1-1\/8 45mm Rake","option2":null,"option3":null,"sku":"EN321112545B","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"ENVE 2.0 Road Fork - 1-1\/8 45mm Rake","public_title":"1-1\/8 45mm Rake","options":["1-1\/8 45mm Rake"],"price":49000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55174595740031,"title":"1-1\/8 50mm Rake","option1":"1-1\/8 50mm Rake","option2":null,"option3":null,"sku":"EN321112550B","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"ENVE 2.0 Road Fork - 1-1\/8 50mm Rake","public_title":"1-1\/8 50mm Rake","options":["1-1\/8 50mm Rake"],"price":49000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/file s\/en321112540b_1.webp?v=1741342580"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/en321112540b_1.webp?v=1741342580","options":["Size"],"media":[{"alt":null,"id":64602297303423,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1600,"width":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/en321112540b_1.webp?v=1741342580"},"aspect_ratio":1.0,"height":1600,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/en321112540b_1.webp?v=1741342580","width":1600}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cdiv class=\"wrapper\"\u003e\n\u003cdiv class=\"product-flex\"\u003e\n\u003cdiv class=\"product-flex-item item-description\"\u003e\n\u003cdiv class=\"product-description rte\"\u003e\n\u003cp\u003eThe ENVE 2.0 Road Fork uses a proprietary one-piece moulding process to perfectly balance low weight, strength and stiffness while greatly improving ride quality. The result is the best aftermarket fork on the market.\u003c\/p\u003e\n\u003cp\u003eTo achieve perfection, ENVE developed an innovative manufacturing process allowing the fork to be created in one piece, the carbon fibres running continuously from the top of the steerer to the bottom of the drop-outs.\u003c\/p\u003e\n\u003cp\u003eWith the brake bolt hole moulded into the crown with no drilling and no bonding at all, the 2.0 Road Fork is high-performance cycling technology that's lighter, stronger and rides better than the competition.\u003c\/p\u003e\n\u003cp\u003eIf you're looking for a fork that is beautiful, reliable, lightweight, strong and rides beautifully, look no further.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvailable in multiple rakes\u003c\/li\u003e\n\u003cli\u003eOne-piece moulded design from steerer tube to dropouts\u003c\/li\u003e\n\u003cli\u003eStraight steerer version\u003c\/li\u003e\n\u003cli\u003eSuitable for rim brakes only\u003c\/li\u003e\n\u003cli\u003e5-year Factory Limited Warranty and Incidental Damage Protection Programme\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch5\uRidgeback003ePLEASE NOTE\u003c\/h5\u003e\n\u003cp\u003eThis fork is suitable for centre-bolt rim brakes only – not direct-mount rim brakes or disc brakes. It is suitable for quick-release hubs only, not thru axle.\u003c\/p\u003e\n\u003ch5\u003eENVE Factory Limited Warranty\u003c\/h5\u003e\n\u003cp\u003eCoverage for the original owner against defects in materials and workmanship for the period of five years from the original purchase date. Product registration is required within 60 days of purchase. Second-hand owners are covered from the product's date of manufacture.\u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/www.enve.com\/support\/warranty-terms\/\"\u003ehttps:\/\/www.enve.com\/support\/warranty-terms\/\u003c\/a\u003e\u003c\/p\u003e\n\u003ch5\u003eENVE Incidental Damage Protection\u003c\/h5\u003e\n\u003cp\u003eThis 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.\u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/www.enve.com\/support\/incidental-damage-protection-terms\/\"\u003ehttps:\/\/www.enve.com\/support\/incidental-damage-protection-terms\/\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003ch5\u003eENVE 2.0 Road Fork\u003c\/h5\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMaterial\u003c\/td\u003e\n\u003ctd\u003eCarbon fibre\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSteerer Tube Length\u003c\/td\u003e\n\u003ctd\u003e350mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eRake\u003c\/td\u003e\n\u003ctd\u003e40,43,45,50mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAxle to Crown\u003c\/td\u003e\n\u003ctd\u003e367mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u00 3eBrake\u003c\/td\u003e\n\u003ctd\u003eCaliper (rim)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAxle Compatibility\u003c\/td\u003e\n\u003ctd\u003eQR\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMax Tyre Clearance\u003c\/td\u003e\n\u003ctd\u003e25mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eCrown Race Diameter\u003c\/td\u003e\n\u003ctd\u003e1 1\/8\" (1.125)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTorque Spec: Steerer Tube\u003c\/td\u003e\n\u003ctd\u003e5.5Nm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"techspecs\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {55174595641727 : "deny",55174595674495 : "deny",55174595707263 : "deny",55174595740031 : "deny",}; window._RestockRocketConfig.variantsInv
    entoryQuantity = {55174595641727 : parseInt("0"),55174595674495 : parseInt("0"),55174595707263 : parseInt("0"),55174595740031 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {55174595641727 : parseInt(""),55174595674495 : parseInt(""),55174595707263 : parseInt(""),55174595740031 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {55174595641727 : null,55174595674495 : null,55174595707263 : null,55174595740031 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {55174595641727 : parseInt(""),55174595674495 : parseInt(""),55174595707263 : parseInt(""),55174595740031 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {55174595641727 : null,55174595674495 : null,55174595707263 : null,55174595740031 : null,}; window._RestockRocketConfig.variantsShippingText = {55174595641727 : "",55174595674495 : "",55174595707263 : "",55174595740031 : "",}; window._RestockRocketConfig.variantsShippingTextForMarke t = {55174595641727 : null,55174595674495 : null,55174595707263 : null,55174595740031 : null,}; window._RestockRocketConfig.selected_variant_id = 55174595641727; 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/019b9fa3-dc53-7a1c-9078-4931c5088fc8/restock-rocket-shopify-427/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b9fa3-dc53-7a1c-9078-4931c5088fc8/restock-rocket-shopify-427/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 * 6
    0 * 1000; // 15 minutes in milliseconds function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug('STOQ - Invalid settings data structure'); return null; } if (!settings.cache) { console.debug('STOQ - settings caching disabled'); return null; } // Check if translations are enabled but missing from cache // This handles the backfill period where DB has translations but metafield doesn't if (settings.multi_language_enabled) { if (!settings.translations) { // Translations enabled but no translation data in metafield // Metafield hasn't been backfilled yet - force refresh console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh'); return null; } // Translations object exists in metafield - cache is valid // If current locale isn't translated, applyTranslations will gracefully use default locale from base fields if (window._RestockRocketConfig.normalizedLocale && !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } // Don't return null - continue using cache even for untranslated locales } const updatedAt = new Date(settings.updated_at); if (isNaN(updatedAt.getTime())) { console.debug('STOQ - Invalid updated_at date format in settings'); return null; } const age = Date.now() - updatedAt.getTime(); if (age
    < SETTINGS_CACHE_DURATION) { console.debug('STOQ - settings changed recently, skipping cache'); return null; } return settings; } catch (error) { console.debug('STOQ - Error checking settings cache:', error); return null; } } function createRestockRocketContainer() { const restockRocketContainer = document.createElement('div'); restockRocketContainer.id = 'restock-rocket'; document.body.appendChild(restockRocketContainer); } function createRestockRocketScript(scriptUrl) { const restockRocketScriptElement = document.createElement('script'); restockRocketScriptElement.setAttribute('defer', 'defer'); restockRocketScriptElement.src = scriptUrl; document.body.appendChild(restockRocketScriptElement); } createRestockRocketContainer() console.debug('STOQ - extension activated') function applyTranslations(settings) { try { // Skip translation logic entirely if multi-language is not enabled if (!settings ||
    !settings.multi_language_enabled) { return settings; } if (!settings.translations) { console.debug('STOQ - No translations found, skipping translation'); return settings; } const normalizedLocale = window._RestockRocketConfig.normalizedLocale; const translations = settings.translations; if (!normalizedLocale) { // No matching locale has translations; drop payload to save memory console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {})); delete settings.translations; return settings; } console.debug(`STOQ - Applying translations for normalized locale: ${normalizedLocale} (original: ${window._RestockRocketConfig.locale})`); const translatedFields = translations[normalizedLocale]; if (translatedFields && typeof translatedFields === 'object') { Object.keys(translatedFields).forEach(function(key) { const value = translatedFields[key ]; if (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No translated fields found for locale:', normalizedLocale); } delete settings.translations; return settings; } catch (e) { console.debug('STOQ - error applying translations:', e); return settings; } } // First try to get settings from metafields with expiry check const cachedSettings = window._RestockRocketConfig.cachedSettings; const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null; if (validCachedSettings) { console.debug('STOQ - using cached settings'); initializeScripts(validCachedSettings); } else { console.debug('STOQ - fetching fresh settings'); const headers = { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 'ngrok-skip-browser-warning': 'skip' }; if (window.Shopify?.them) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && integration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType); }) if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_ on_page || settings.preorder_page_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'product') { createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct); } else if(hijackIntegration) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`); } // Check and update cart selling plans after scripts are loaded if (settings.preorder_enabled) { updateCartSellingPlans(); } // Dispatch custom event when app is loaded const appLoadedEvent = new CustomEvent('stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enable_app, settings: settings } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } } function updateCartSellingPlans() { // Wait for the API to be available with retries const maxRetries = 10; const retryDelay = 500; function attemptCartCheck(attempt = 1) { if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) { window._RestockRocket.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } else if (attempt  < maxRetries) { console.debug(`STOQ - API not ready, retry ${attempt}/${maxRetries}`); setTimeout(() => attemptCartCheck(attempt + 1), retryDelay); } else { console.debug('STOQ - API not loaded after max retries,FSA TH-805ST 1-1/8 inch skipping cart selling plan check'); } } attemptCartCheck(); }
    .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-pro gress-percentage{font-weight:500;min-width:35px;text-align:right;}  Sportdrive M123 / Shimano Nexus SG-C300
     Sportdrive M123 250w 30nm
     Fitted
     Resin Metro
     Alloy J19SZR
     Ridgeback Metro
     Alloy 30 x 300 mm
     Shimano Nexus SL-C3000 7 Speed
     Steel 14 g
     Alloy Adjustable 90 mm
     CST Ampero 700 x 40c
     Open Frame
     Mens
     External
     Ridgeback reserves the right to change product specifications without notice. Ridgeback will always ensure that these changes do not detract from the ride experience of the bike.

    FAQ

    Questions and answers