SKU: EN443001000060
RIDE CONFIDENT
Size
760mm +/-5mm Rise - 31.8mm Clamp#ProductTemplate--template--15326745395426__main { background: #ffffff; } .shop-pay-terms { --payment-terms-background-color: #ffffff }

1
RIDE CONFIDENT Genesis{"id":14971765784959,"title":"ENVE M5 Mountain Handlebar - 31.8mm","handle":"enve-m5-mountain-handlebar-31-8mm","description":"\u003ch2 class=\"des-title\"\u003eProduct details\u003c\/h2\u003e\n\u003cdiv class=\"product-description rte\"\u003e\n\u003cp\u003eThe ENVE M5 Mountain Handlebar is a lightweight, full carbon MTB flat bar designed to upgrade your XC and trail ride experience by perfectly balancing responsive handling and fatigue reduction.\u003c\/p\u003e\n\u003cp\u003ePart of ENVE's eight-bar line-up to give riders maximum options and prescribe the ideal ride characteristics for each riding type, the M5 is a true, nine-degree flat bar with no tip.\u003c\/p\u003e\n\u003cp\u003eThe bar’s offset design means you can customise your setup between a positive and negative rise of 5mm while the 31.8mm clamping surface ensures a strong, stiff bar to stem connection. The go-to shape for aggressive XC racing, it's also the choice of many trail riders.\u003c\/p\u003e\n\u003cp\u003eThanks to ENVE's unparallelled carbon expertise, which has seen the brand's products rack up more than 80 DH World Cup wins and podiums, the M5 bar's uni-directional carbon construction results in a bar that weighs just 192g. Beyond this figure, though, is the impressive strength and stiffness delivered without harshness and while also providing the responsive, predictable handling needed to perform at your best.\u003c\/p\u003e\n\u003cp\u003eWhile the narrowest bar in the M Series range at 760mm, it's actually wider than the previous generation so it will fit even more riders. The M5 bar can also be trimmed shorter, with ENVE providing cut marks that allow customisation without compromising ride feel.\u003c\/p\u003e\n\u003cp\u003eTo create your ideal XC or trail cockpit, the M5 bar has been designed to partner perfectly with the M6 stem, which is available in a range of sizes to suit your riding style.\u003c\/p\u003e\n\u003cp\u003eThe M5 bar comes with a full pack of decals (see image gallery) so you can match your bar decal with the rest of your set up.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eReversible flat bar (+\/-5mm) with 9° bend\u003c\/li\u003e\n\u003cli\u003eFull uni-directional carbon fibre construction\u003c\/li\u003e\n\u003cli\u003eOptimised vibration damping–ride tuned for XC and trail\u003c\/li\u003e\n\u003cli\u003ePredefined cut lines\u003c\/li\u003e\n\u003cli\u003e31.8 clamp diameter\u003c\/li\u003e\n\u003cli\u003eComes with custom colour decals\u003c\/li\u003e\n\u003cli\u003e5-year Factory Limited Warranty and Incidental Damage Protection Programme\u003c\/li\u003e\n\u003c\/ul\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 M5 Mountain Handlebar\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\u003eWeight\u003c\/td\u003e\n\u003ctd\u003e192g\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWidth Maximum (as supplied)\u003c\/td\u003e\n\u003ctd\u003e760mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWidth Minimum (cut)\u003c\/td\u003e\n\u003ctd\u003e720mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eClamp Diameter\u003c\/td\u003e\n\u003ctd\u003e31.8\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eRise\u003c\/td\u003e\n\u003ctd\u003e+\/- 5mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSweep\u003c\/td\u003e\n\u003ctd\u003e9 degrees\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTip\u003c\/td\u003e\n\u003ctd\u003e0 degrees\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTorque Spec: Face Plate\u003c\/td\u003e\n\u003ctd\u003e5.5Nm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTorque Spec: Controls\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","published_at":"2025-03-07T14:21:10+00:00","created_at":"2025-03-07T14:21:10+00:00","vendor":"Enve","type":"components","tags":["M5 Bars","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":20000,"price_min":20000,"price_max":20000,"available":false,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":55175445447039,"title":"760mm +\/-5mm Rise - 31.8mm Clamp","option1":"760mm +\/-5mm Rise - 31.8mm Clamp","option2":null,"option3":null,"sku":"EN443001000060","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"ENVE M5 Mountain Handlebar - 31.8mm - 760mm +\/-5mm Rise - 31.8mm Clamp","public_title":"760mm +\/-5mm Rise - 31.8mm Clamp","options":["760mm +\/-5mm Rise - 31.8mm Clamp"],"price":20000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/envem5handlbars-faceon_rxxz4u.webp?v=1741356992"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/envem5handlbars-faceon_rxxz4u.webp?v=1741356992","options":["Size"],"media":[{"alt":null,"id":64605801873791,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1500,"width":1500,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/envem5handlbars-faceon_rxxz4u.webp?v=1741356992"},"aspect_ratio":1.0,"height":1500,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/envem5handlbars-faceon_rxxz4u.webp?v=1741356992","width":1500}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003ch2 class=\"des-title\"\u003eProduct details\u003c\/h2\u003e\n\u003cdiv class=\"product-description rte\"\u003e\n\u003cp\u003eThe ENVE M5 Mountain Handlebar is a lightweight, full carbon MTB flat bar designed to upgrade your XC and trail ride experience by perfectly balancing responsive handling and fatigue reduction.\u003c\/p\u003e\n\u003cp\u003ePart of ENVE's eight-bar line-up to give riders maximum options and prescribe the ideal ride characteristics for each riding type, the M5 is a true, nine-degree flat bar with no tip.\u003c\/p\u003e\n\u003cp\u003eThe bar’s offset design means you can customise your setup between a positive and negative rise of 5mm while the 31.8mm clamping surface ensures a strong, stiff bar to stem connection. The go-to shape for aggressive XC racing, it's also the choice of many trail riders.\u003c\/p\u003e\n\u003cp\u003eThanks to ENVE's unparallelled carbon expertise, which has seen the brand's products rack up more than 80 DH World Cup wins and podiums, the M5 bar's uni-directional carbon construction results in a bar that weighs just 192g. Beyond this figure, though, is the impressive strength and stiffness delivered without harshness and while also providing the responsive, predictable handling needed to perform at your best.\u003c\/p\u003e\n\u003cp\u003eWhile the narrowest bar in the M Series range at 760mm, it's actually wider than the previous generation so it will fit even more riders. The M5 bar can also be trimmed shorter, with ENVE providing cut marks that allow customisation without compromising ride feel.\u003c\/p\u003e\n\u003cp\u003eTo create your ideal XC or trail cockpit, the M5 bar has been designed to partner perfectly with the M6 stem, which is available in a range of sizes to suit your riding style.\u003c\/p\u003e\n\u003cp\u003eThe M5 bar comes with a full pack of decals (see image gallery) so you can match your bar decal with the rest of your set up.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eReversible flat bar (+\/-5mm) with 9° bend\u003c\/li\u003e\n\u003cli\u003eFull uni-directional carbon fibre construction\u003c\/li\u003e\n\u003cli\u003eOptimised vibration damping–ride tuned for XC and trail\u003c\/li\u003e\n\u003cli\u003ePredefined cut lines\u003c\/li\u003e\n\u003cli\u003e31.8 clamp diameter\u003c\/li\u003e\n\u003cli\u003eComes with custom colour decals\u003c\/li\u003e\n\u003cli\u003e5-year Factory Limited Warranty and Incidental Damage Protection Programme\u003c\/li\u003e\n\u003c\/ul\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 M5 Mountain Handlebar\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\u003eWeight\u003c\/td\u003e\n\u003ctd\u003e192g\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWidth Maximum (as supplied)\u003c\/td\u003e\n\u003ctd\u003e760mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWidth Minimum (cut)\u003c\/td\u003e\n\u003ctd\u003e720mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eClamp Diameter\u003c\/td\u003e\n\u003ctd\u003e31.8\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eRise\u003c\/td\u003e\n\u003ctd\u003e+\/- 5mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSweep\u003c\/td\u003e\n\u003ctd\u003e9 degrees\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTip\u003c\/td\u003e\n\u003ctd\u003e0 degrees\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTorque Spec: Face Plate\u003c\/td\u003e\n\u003ctd\u003e5.5Nm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eTorque Spec: Controls\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"} Cycle to WorkHire Ortlieb 40L Pannier Bagsa 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)"> Delivery & Returns span class="visually-hidden">Hire Lazer Compact Helmet >
> 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)"> INFORMATIONspan class="visually-hidden">Hire Ortlieb 40L Pannier Bags > Hire Lazer Compact Helmet 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 = 1773111673;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,"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,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,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,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":[],"collection_id":null};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-03-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,55570017550719,55569712447871,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_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 }}"
> d_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this 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_radours 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 504Wh capacity (36V, 14Ah)\u003c\/li\u003e\n\u003cli\u003eAverage weight 2900g\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\"\u003e504 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\u003c!----\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {45767307264226 : "deny",}; window._Retranslation 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 <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._RestockRocketCon
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); } }
Header Image

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

    = 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
    age = Date.now() - updatedAt.getTime(); if (age

    SETTINGS_CACHE_DURATION) { console.debug('STOQ - settings changed recently, skipping cache'); return null; } return settings; } catch (error) { console.debug('STOQ - Error checking settings cache:', error); return null; } } function createRestockRocketContainer() { const restockRocketContainer = document.createElement('div'); restockRocketContainer.id = 'restock-rocket'; document.body.appendChild(restockRocketContainer); } function createRestockRocketScript(scriptUrl) { const restockRocketScriptElement = document.createElement('script'); restockRocketScriptElement.setAttribute('defer', 'defer'); restockRocketScriptElement.src = scriptUrl; document.body.appendChild(restockRocketScriptElement); } createRestockRocketContainer() console.debug('STOQ - extension activated') function applyTranslations(settings) { try { // Skip translation logic entirely if multi-language is not enabled if (!settings ||
    ]; if (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No translated fields found for locale:', normalizedLocale); } delete settings.translations; return settings; } catch (e) { console.debug('STOQ - error applying translations:', e); return settings; } } // 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
    hopify.shop, 'ngrok-skip-browser-warning': 'skip' }; if (window.Shopify?.theme?.role === 'main') { headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name; headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version; headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id; } fetch( `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, { headers } ) .then(function(response) { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { // If request failed and we have cached settings (even if expired), use them as fallback if (cachedSettings) { console.debug('STOQ - using expired cached settings as fallback'); initializeScripts(cac
    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 enab

    Medium - 46

    FAQ

    Questions and answers

    Cockpit
    input type="number" name="quantity" id="quantity--template--24610452406655__main" value="1" min="1">