Header Image

Sealed integrated aheadset, 1.1/2'' - 1.1/8'' radial
2x/2x or 2x/1xPrivacy Policy 34.5mmTerms of Service Refund policy
Center to flange
Service39.5mm
L-37mm, R-19mm Servicing
End capsWorkshop Prices
QR 100mmMon - Fri: 09:00 - 18:30
Sat: 9:00 - 16:00
QR 130mmSun: Closed 0131 374 5324 [email protected] 17mm Freehub await import("//projektride.co.uk/cdn/shopifycloud/shop-js/modules/v2/loader.shop-follow-button.en.esm.js");
N/A
Shimano/SRAM HG, XDR, Campagnolo
Country
[]

Åland Islands (EUR€)

{"@context":"http:\/\/schema.org\/","@id":"\/products\/enve-carbon-road-hub#product","@type":"ProductGroup","brand":{"@type":"Brand","name":"Enve"},"category":"Bicycle Hubs","description":"Product details\n\nENVE's Carbon Road Hub blends a one-of-a-kind full carbon hub shell with a proprietary freehub to eliminate bearing play and maximise stiffness, drive response and reliability – making it the highest-performance road hub in the world.\nThe original ENVE Carbon Road Hub won a Eurobike Design and Innovation award and this second generation improves upon its predecessor in every department while weighing in at just 70g front and 185g rear.\nMade entirely in ENVE's Ogden, Utah, headquarters from moulded uni-directional carbon fibre, the hub shell geometry has been optimised to enhance the performance of the brand's SES aero wheelsets – or any other rim you'd care to use.\nFlange spacing and diameter have been increased to improve lateral stiffness by 16%. The paired, moulded – rather than drilled – spoke holes in the hub flange reduce weight and allow improved bracing angles that improve drive stiffness, efficiency and ride feel, inspiring confidence when accelerating or cornering.\nThe hub's axles have also been completely redesigned to utilise ENVE's pioneering Perfect Preload system. By positioning a calibrated wave washer between the bearing and a snap ring installed on the axle, bearing pre-load is consistently optimised. This eliminates bearing play and the need to adjust pre-load yourself, reducing premature wear.\nAlso increasing reliability are the custom, premium stainless steel bearings and races. These long-life components are enhanced by full-contact bearing seals on outboard bearing faces and non-contact seals on internal faces to improve rolling efficiency. All this means the hubs roll with utter smoothness from day one and maintain their performance for thousands of miles without the need for servicing, making the ENVE Carbon Road Hub virtually maintenance free.\nThe proprietary freehub body is machined from strong 7075 alloy and anodised to reduce cog bite. ENVE has improved on the previous generation's 18-tooth driver with a new mechanism utilising a 40-tooth ratchet design with a single spring that gives exceptional drive response under power. ENVE has also included a rubber gasket that changes the tone of the freehub when freewheeling.\nThe freehub body can also be swapped from Shimano to Campagnolo or SRAM XD-R versions without the need for tools or re-dishing the wheel.\nTechnical Specification\n\n\n\nFront\nRear\n\n\nMaterial\ncarbon\ncarbon\n\n\nWeight\n70g\n185g\n\n\nHole count\n20\n24\n\n\nSpoke type\nJ-bend\nJ-bend\n\n\nLacing pattern\nradial\n2x\/2x or 2x\/1x\n\n\nFlange diameter\n34.5mm\n55mm\n\n\nCenter to flange\n39.5mm\nL-37mm, R-19mm\n\n\nEnd caps\nStainless\nAlloy\n\n\nAxle\nQR 100mm\nQR 130mm\n\n\nInternal axle diameter\n10mm\n17mm\n\n\nFreehub\nN\/A\nShimano\/SRAM HG, XDR, Campagnolo\n\n\n\n\nFull carbon hub shell made in-house by ENVE\nLightweight, smooth, stiff and durable design\nPerfect Preload™ system for no bearing play\nPrecision-machined anodised freehub body\nPremium-grade stainless steel bearings and races\nMolded spoke holes to increase strength and reduce weight\nShimano\/SRAM HG, XDR, Campagnolo compatible\n40 Tooth, 9° engagement drive ratchet for improved power transmission\nRemovable gasket to change freewheel sound\nTool-free freehub body conversions\nVirtually maintenance-free\n\n\n\n\nTechnical Specifications\n\n\n\nFront\nRear\n\n\nMaterial\ncarbon\ncarbon\n\n\nWeight\n70g\n185g\n\n\nHole count\n20\n24\n\n\nSpoke type\nJ-bend\nJ-bend\n\n\nLacing pattern\nradial\n2x\/2x or 2x\/1x\n\n\nFlange diameter\n34.5mm\n55mm\n\n\nCenter to flange\n39.5mm\nL-37mm, R-19mm\n\n\nEnd caps\nStainless\nAlloy\n\n\nAxle\nQR 100mm\nQR 130mm\n\n\nInternal axle diameter\n10mm\n17mm\n\n\nFreehub\nN\/A\nShimano\/SRAM HG, XDR, Campagnolo\n\n\n\n","hasVariant":[{"@id":"\/products\/enve-carbon-road-hub?variant=55177564586367#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/enve-carbonroadhub-rear_se5nxp_large_6be1a56c-6dae-4cb2-b198-d20e31420992.webp?v=1741441590\u0026width=1920","name":"ENVE Carbon Road Hub - Rear 12x142mm 24H Shimano","offers":{"@id":"\/products\/enve-carbon-road-hub?variant=55177564586367#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"690.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/enve-carbon-road-hub?variant=55177564586367"},"sku":"EN21004001345"},{"@id":"\/products\/enve-carbon-road-hub?variant=55177564619135#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/enve-carbonroadhub-rear_se5nxp_large_6be1a56c-6dae-4cb2-b198-d20e31420992.webp?v=1741441590\u0026width=1920","name":"ENVE Carbon Road Hub - Front 12x100mm 20H","offers":{"@id":"\/products\/enve-carbon-road-hub?variant=55177564619135#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"690.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/enve-carbon-road-hub?variant=55177564619135"},"sku":"EN21004001349"},{"@id":"\/products\/enve-carbon-road-hub?variant=55177564651903#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/enve-carbonroadhub-rear_se5nxp_large_6be1a56c-6dae-4cb2-b198-d20e31420992.webp?v=1741441590\u0026width=1920","name":"ENVE Carbon Road Hub - Rear 12x142mm 24H Campagnolo","offers":{"@id":"\/products\/enve-carbon-road-hub?variant=55177564651903#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"690.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/enve-carbon-road-hub?variant=55177564651903"},"sku":"EN21004001350"}],"name":"ENVE Carbon Road Hub","productGroupID":"14972484190591","url":"https:\/\/projektride.co.uk\/products\/enve-carbon-road-hub"}

#Accordions--template--26482384994687__section_accordions_with_images_kprcYa { --PT: 60px; --PB: 60px; --border-opacity: 0; --border-width: 1px; --MB: 10px; --padding-left: 0; --bg-padded-line: var(--bg); } #Accordions--template--26482384994687__section_accordions_with_images_kprcYa .section__heading { --heading-size: calc(var(--adjust-heading) * 1.2); } #Accordions--template--26482384994687__section_accordions_with_images_kprcYa .accordion__item { --bg-item: #fafafa; }

Albania (ALLL)
Algeria (DZDد.ج)
Andorra (EUR€) Armenia (AMDդր.)
Angola (GBP£)
Ascension Island (SHP£)
Somalia (GBP£) TBA g frame (size M, incl. TA, bolts, seatclamp, hanger) / TBA g fork (300 mm steerer, incl. TA) Privacy Policy Sudan (GBP£) 140 kg incl. luggageSpain (EUR€) Terms of ServiceSvalbard & Jan Mayen (GBP£) Sweden (SEKkr) 2
Weight framesetSouth Africa (GBP£) Insure Your Bike
South Sudan (GBP£) Maximum rider weight Cookie Policy
ASTM riding conditionSt. Helena (SHP£) Refund policy
Sudan (GBP£) Service
Switzerland (CHFCHF)
Svalbard & Jan Mayen (GBP£) Servicing
Tanzania (TZSSh)
Workshop Prices Sweden (SEKkr)
[] Togo (XOFFr)
Cycle to Work
Switzerland (CHFCHF) {"@context":"http:\/\/schema.org\/","@id":"\/products\/bombtrack-beyond-al-complete-bike#product","@type":"ProductGroup","brand":{"@type":"Brand","name":"Bombtrack"},"category":"Bicycles","description":" The Beyond AL is our aluminium equivalent from the range. The heavily hydro-formed tube profile and fork come with internal light cable routing, complete with fender, rack and triple cage mounts for overnight trips. The Beyond AL is front derailleur compatible for those preferring a more comprehensive range of gearing options up the front. All sizes come with 12mm through-axles on the front and rear, besides size-matched 27.5” wheels on the size S option to ensure efficient geometry across the range.\n\n\n\n\n\n\n\n\n\nFrame\n6061-T6 hydro-formed Aluminium, TA, rack \/ fender mounts, stealth dropper ready, 86.5 mm T47 BB shell\n\n\nFork\n6061 aluminium, TA, 1.1\/2'' - 1.1\/8'', fender \/ rack \/ triple cage mounts, internal hub dynamo cable routing\n\n\nHandlebar\nBOMBTRACK TACKLE gravel bar, 31.8 mm, 25° flare\n\n\nGrips\nBOMBTRACK COMMAND bar tape\n\n\nStem\nBOMBTRACK TRAMP forged aluminium stem, 3°\n\n\nHeadset\nSealed integrated aheadset, 1.1\/2'' - 1.1\/8''\n\n\nLevers\nSRAM Apex double tap mechanic\n\n\nShifter\nSRAM Apex double tap 1 x 11\n\n\nBrakes\nTRP SPYRE C mechanic disc brakes with 180 mm F \/ 160 mm R rotors\n\n\nCrankset\nBOMBTRACK AMES forged aluminium crank, 24 mm spindle\n\n\nBB\nBOMBTRACK T47 internal sealed BB for 24 mm spindle\n\n\nPedals\n-\n\n\nChain\nKMC X11 chain, 1\/2'' x 11\/128'', 114L\n\n\nChainring\nSteel, narrow-wide, 36 T\n\n\nCassette\nSRAM PG-1130 11-speed, 11 - 42 T\n\n\nFront derailleur\n-\n\n\nRear derailleur\nSRAM APEX 1, clutch, long cage\n\n\nFront hub\nBOMBTRACK ARC sealed hub, 6-bolt disc\n\n\nRear hub\nBOMBTRACK ARC sealed hub, 11-speed, 6-bolt disc\n\n\nThrough axle\n12 x 100 mm \/ 12 x 142 mm\n\n\nFront rim\nWTB ST i23 double wall, TCS 2.0, 32h\n\n\nRear rim\nWTB ST i23 double wall, TCS 2.0, 32h\n\n\nSaddle\nBOMBTRACK FUZZ\n\n\nSeat post\nSEIDO YEW aluminium seatpost, 31.8 mm x 400 mm\n\n\nSeat clamp\nBOMBTRACK PRIME 34.9 mm\n\n\nFront tyre\nWTB RANGER TCS LIGHT \/ FAST ROLLING S 27.5'' x 2.0'' \/ M - L 29'' x 2.0'', tubeless ready\n\n\nRear tyre\nWTB RANGER TCS LIGHT \/ FAST ROLLING S 27.5'' x 2.0'' \/ M - L 29'' x 2.0'', tubeless ready\n\n\nFender\n-\n\n\nRack\n-\n\n\nKickstand\n-\n\n\nLight\n-\n\n\nWeight\n11.64 kg (size M)\n\n\nWeight frameset\nTBA g frame (size M, incl. TA, bolts, seatclamp, hanger) \/ TBA g fork (300 mm steerer, incl. TA)\n\n\nMaximum rider weight\n140 kg incl. luggage\n\n\nASTM riding condition\n2\n\n\n\n\n\n\n\n\n","hasVariant":[{"@id":"\/products\/bombtrack-beyond-al-complete-bike?variant=45661830578402#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/BT_MY22_Beyond_AL_glossy_dark_grey_web_01_800x800_crop_center_2x_677620e1-b329-4506-8577-6dc020b26e38.webp?v=1720089125\u0026width=1920","name":"BOMBTRACK BEYOND AL Complete Bike - Medium - 46","offers":{"@id":"\/products\/bombtrack-beyond-al-complete-bike?variant=45661830578402#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"2500.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/bombtrack-beyond-al-complete-bike?variant=45661830578402"}},{"@id":"\/products\/bombtrack-beyond-al-complete-bike?variant=45661830611170#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/BT_MY22_Beyond_AL_glossy_dark_grey_web_01_800x800_crop_center_2x_677620e1-b329-4506-8577-6dc020b26e38.webp?v=1720089125\u0026width=1920","name":"BOMBTRACK BEYOND AL Complete Bike - Large - 51","offers":{"@id":"\/products\/bombtrack-beyond-al-complete-bike?variant=45661830611170#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"2750.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/bombtrack-beyond-al-complete-bike?variant=45661830611170"}},{"@id":"\/products\/bombtrack-beyond-al-complete-bike?variant=45661830643938#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/BT_MY22_Beyond_AL_glossy_dark_grey_web_01_800x800_crop_center_2x_677620e1-b329-4506-8577-6dc020b26e38.webp?v=1720089125\u0026width=1920","name":"BOMBTRACK BEYOND AL Complete Bike - Extra Large - 56","offers":{"@id":"\/products\/bombtrack-beyond-al-complete-bike?variant=45661830643938#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"2500.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/bombtrack-beyond-al-complete-bike?variant=45661830643938"}}],"name":"BOMBTRACK BEYOND AL Complete Bike","productGroupID":"8627787366626","url":"https:\/\/projektride.co.uk\/products\/bombtrack-beyond-al-complete-bike"} Delivery & ReturnsTristan da Cunha (GBP£) #relatedProducts--template--26482385912191__related { --PT: 60px; --PB: 60px; } #relatedProducts--template--26482385912191__related .tabs__nav { --text-size: calc(var(--adjust-accent) * 1.2); } @media screen and (max-width: 767px) { #relatedProducts--template--26482385912191__related .grid--mobile, #relatedProducts--template--26482385912191__related .carousel--mobile { grid-template-columns: repeat(1, minmax(0, 1fr)); } } Tanzania (TZSSh) Information Sat: 9:00 - 16:00 Sun: Closed This section doesn’t currently include any content. Add content to this section using the sidebar. Togo (XOFFr) 0131 374 5324 Edinburgh Tristan da Cunha (GBP£) [email protected] Uganda (UGXUSh) Tunisia (GBP£) Uganda (UGXUSh) Country Please get in touch with a member of the team either by phone ( United States (GBP£) United Kingdom (GBP£) Western Sahara (MADد.م.) I'm looking to buy this product, when will it arrive and how much does postage cost? United States (GBP£) 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 - Algeria (DZDد.ج) ProjektRide Bike Shop EdinburghVatican City (EUR€) Western Sahara (MADد.م.) Zambia (GBP£) Armenia (AMDդր.) © 2026, #SiteFooter .footer-block--logo { min-width: calc(160px + calc(var(--gutter) / 2)); } #SiteFooter .footer-block__logo-image { width: 160px; }Zimbabwe (USD$) ProjektRideBuy, sell and ride in confidence on ProjektRide’s premium bikes Shopify .Quick Links About Us© 2026, ProjektRideBelarus (GBP£) . Apple Pay
Mon - Fri: 09:00 - 18:30Tunisia (GBP£)
Newington RoadTürkiye (GBP£) EH9 1QN
Frequently Asked Questions Ukraine (UAH₴) await import("//projektride.co.uk/cdn/shopifycloud/shop-js/modules/v2/loader.shop-follow-button.en.esm.js"); Türkiye (GBP£)
United Kingdom (GBP£) I'm looking to find out more information about a product, where can I find this?
01313745324 ) or email ( GBP£ [email protected]Ukraine (UAH₴) ) where on of the team will be more than happy to help. Vatican City (EUR€)
ProjektRide Bike Shop Edinburgh Åland Islands (EUR€)
Albania (ALLL) 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. Zambia (GBP£)
82 Newington Road, EH91QN, Edinburgh. Zimbabwe (USD$) Andorra (EUR€)
Angola (GBP£) #SiteFooter { --PT: 100px; --PB: 10px; --bg-lighten-darken-shimmer-bg: #0d0d0d; --bg-lighten-darken-shimmer-effect: #121212; --text: #ffffff; --text-alpha-15: rgba(255, 255, 255, 0.15); --text-alpha-50: rgba(255, 255, 255, 0.6); --text-alpha-85: rgba(255, 255, 255, 0.85);--border: #ffffff;} #SiteFooter .footer-bottom { --grid-columns: 3; }
. Ascension Island (SHP£) Powered by
Austria (EUR€) American Express
Contact Us
Powered by
ShopifyBelgium (EUR€) Diners Club
Blog.
Discover
Track Service Progress Benin (XOFFr) Google Pay
American Express
Building Your Bike From the Box Klarna
Apple PayBosnia & Herzegovina (BAMКМ)
MaestroInsure Your Bike Diners Club Mastercard Botswana (BWPP) Cookie Policy British Indian Ocean Territory (USD$) Klarna Union Pay MaestroBulgaria (EUR€) VisaServiceShop Pay Burundi (BIFFr) Cycle to Work Cape Verde (CVE$) © 2026, Sun: Closed ProjektRide0131 374 5324 .Newington Road Côte d’Ivoire (XOFFr) Czechia (CZKKč) Djibouti (DJFFdj) Andorra (EUR€) Equatorial Guinea (XAFCFA) Armenia (AMDդր.) Eritrea (GBP£) Estonia (EUR€) Eswatini (GBP£) Ethiopia (ETBBr) Faroe Islands (DKKkr.)
Privacy PolicyDiscover PayPal Google Pay Shop Pay
Terms of Service Refund policyMastercard PayPalBurkina Faso (XOFFr)
Union Pay Servicing Visa Cameroon (XAFCFA)
Workshop Prices
Delivery & Returns Central African Republic (XAFCFA) Information
Mon - Fri: 09:00 - 18:30 Sat: 9:00 - 16:00 Chad (XAFCFA)
Edinburgh Comoros (KMFFr) Powered by EH9 1QN Shopify[email protected] .
Congo - Brazzaville (XAFCFA)
Congo - Kinshasa (CDFFr)
Croatia (EUR€) GBP£
Cyprus (EUR€) Åland Islands (EUR€)
Albania (ALLL) Denmark (DKKkr.)
Algeria (DZDد.ج) Close
Egypt (EGPج.م) Angola (GBP£)
Ascension Island (SHP£)
Finland (EUR€)
France (EUR€)
French Southern Territories (EUR€) 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 = 1774784765;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,44140279791842,44140279824610,44140279857378,44140279890146,44140279922914,44140292047074,44140292079842,44140292112610,44140293685474,44140302336226,44140302434530,44140302500066,44140302532834,44140302565602,44140302598370,44140302631138,44140302827746,44140302893282,44140302926050,44140306301154,44140315050210,44140317016290,44140321636578,44140335792354,44140335825122,44140335857890,44140339953890,44140339986658,44140340150498,44140340248802,44140340281570,44140340543714,44140340707554,44140340740322,44140340773090,44140345065698,44140352438498,44140388155618,44140388188386,44140397756642,44140404441314,44140404474082,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,55569712415103,55569712447871,55569712480639,55570017616255,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814967167,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-03-29T11:28:17Z","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-29T11:42:01Z","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-29T11:30:41Z","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 }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"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_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}];(function() { const cachedData = {"plans":[{"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 }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"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_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}],"disabled_plan_ids":[713813721471,713176482175],"cached_at":"2026-02-18T08:36:42Z"}; if (cachedData && typeof cachedData === 'object' && cachedData.cached_at) { // Find the maximum updated_at from all items in old array const oldPlans = window._RestockRocketConfig.sellingPlans; const maxUpdatedAt = Array.isArray(oldPlans) && oldPlans.length > 0 ? oldPlans.reduce(function(max, plan) { // Parse dates for proper comparison (handles mixed ISO formats) if (plan.updated_at) { const planDate = new Date(plan.updated_at); const maxDate = max ? new Date(max) : null; return (!maxDate || (planDate && !isNaN(planDate) && planDate > maxDate)) ? plan.updated_at : max; } return max; }, '') : null; // Use cached if old array is empty/has no timestamps, or cached is newer // Parse dates for comparison to handle format differences (+00:00 vs .000Z) const cachedDate = new Date(cachedData.cached_at); const maxDate = maxUpdatedAt ? new Date(maxUpdatedAt) : null; const useCached = !maxUpdatedAt || (cachedDate && !isNaN(cachedDate) && (!maxDate || cachedDate > maxDate)); if (useCached) { if (Array.isArray(cachedData.plans)) { window._RestockRocketConfig.sellingPlans = cachedData.plans; // Only use disabled_plan_ids when using cached plans window._RestockRocketConfig.disabledSellingPlanIds = cachedData.disabled_plan_ids || []; console.debug('[RR] Using selling plans from cachedSellingPlans (cached_at: ' + cachedData.cached_at + ')'); } } else { // When using old format (stale cache), don't trust disabled_plan_ids window._RestockRocketConfig.disabledSellingPlanIds = []; console.debug('[RR] Using selling plans from old format (max updated_at: ' + maxUpdatedAt + ')'); } } })();window._RestockRocketConfig.enabledNotifyMeVariantIds = [];window._RestockRocketConfig.disabledNotifyMeVariantIds = [];window._RestockRocketConfig.backInStockTemplates = [];window._RestockRocketConfig.restockNotes = {};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":14907871527295,"title":"Trek Domane SLR Gen 2 Rim Frame Set","handle":"trek-domane-slr-gen-2-rim-frame-set","description":"\u003cdiv data-v-e224ae82=\"\" class=\"b2b-buying-zone__info cell medium-6 large-12\"\u003e\n\u003cdiv data-v-e224ae82=\"\" class=\"buying-zone__positioning-statement mb-2 pt-2 border-t border-gray-10\"\u003e\n\u003cp data-v-e224ae82=\"\"\u003eThe award-winning Domane SLR Frame Set is built with 700 Series OCLV Carbon and includes both Front and Adjustable Rear IsoSpeed so you can fine-tune your compliance to your terrain. It's designed for direct mount rim brakes, and includes a headset and a full carbon Domane fork.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eFrameset\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eFrame\u003cbr\u003e600 Series OCLV Carbon, front IsoSpeed, adjustable rear IsoSpeed, tapered head tube, internal cable routing, Ride Tuned seat mast, 3S chain keeper, direct-mount rim brakes, DuoTrap S compatible, mudguard mounts, 130x5 mm QR\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003cstrong\u003eFrame fit\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eEndurance\u003cbr\u003eFork\u003cbr\u003eDomane SLR carbon, tapered carbon steerer, mudguard mounts, direct-mount rim brake, carbon dropouts, 5x100 mm QR\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003cstrong\u003eWheels\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eMax tyre size\u003cbr\u003e28mm\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003cstrong\u003eDrivetrain\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eFront derailleur\u003cbr\u003eMechanical front derailleurs must have a full-housing stop (example: Shimano toggle front derailleurs)\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003cstrong\u003eComponents\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eHead set\u003cbr\u003eFSA Integrated, sealed cartridge bearing, 1-1\/8\" top, 1.5\" bottom\u003cbr\u003eWeight\u003cbr\u003eWeight\u003cbr\u003e56 cm - 1.75 kg \/ 3.85 lb\u003cbr\u003eWeight limit\u003cbr\u003eThis bike has a maximum total weight limit (combined weight of bicycle, rider and cargo) of 125 kg (275 lb).\u003cbr\u003eWe reserve the right to make changes to the product information contained on this site at any time without notice, including with respect to equipment, specifications, models, colours, materials and pricing. Due to supply chain issues, compatible parts may be substituted at any time without notice.\u003c\/p\u003e\n\u003cp\u003eBike and frame weights are based on pre-production painted frames at time of publication. Weights may vary in final production.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","published_at":"2026-01-15T17:42:24+00:00","created_at":"2025-01-11T12:44:33+00:00","vendor":"Trek","type":"Bicycles","tags":["Domane"],"price":445000,"price_min":445000,"price_max":445000,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":54945378140543,"title":"50","option1":"50","option2":null,"option3":null,"sku":"591813","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek Domane SLR Gen 2 Rim Frame Set - 50","public_title":"50","options":["50"],"price":445000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54945378173311,"title":"52","option1":"52","option2":null,"option3":null,"sku":"591814","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek Domane SLR Gen 2 Rim Frame Set - 52","public_title":"52","options":["52"],"price":445000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54945378206079,"title":"54","option1":"54","option2":null,"option3":null,"sku":"591815","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek Domane SLR Gen 2 Rim Frame Set - 54","public_title":"54","options":["54"],"price":445000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54945378238847,"title":"56","option1":"56","option2":null,"option3":null,"sku":"591816","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek Domane SLR Gen 2 Rim Frame Set - 56","public_title":"56","options":["56"],"price":445000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54945378271615,"title":"58","option1":"58","option2":null,"option3":null,"sku":"591817","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek Domane SLR Gen 2 Rim Frame Set - 58","public_title":"58","options":["58"],"price":445000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54945378304383,"title":"60","option1":"60","option2":null,"option3":null,"sku":"591818","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek Domane SLR Gen 2 Rim Frame Set - 60","public_title":"60","options":["60"],"price":445000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54945378337151,"title":"62","option1":"62","option2":null,"option3":null,"sku":"591819","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Trek Domane SLR Gen 2 Rim Frame Set - 62","public_title":"62","options":["62"],"price":445000,"weight":0,"compare_at_price":null,"inventory_management":"shopify"Georgia (GBP£) 003eThe award-winning Domane SLR Frame Set is built with 700 Series OCLV Carbon and includes both Front and Adjustable Rear IsoSpeed so you can fine-tune your compliance to your terrain. It's designed for direct mount rim brakes, and includes a headset and a full carbon Domane fork.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eFrameset\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eFrame\u003cbr\u003e600 Series OCLV Carbon, front IsoSpeed, adjustable rear IsoSpeed, tapered head tube, internal cable routing, Ride Tuned seat mast, 3S chain keeper, direct-mount rim brakes, DuoTrap S compatible, mudguard mounts, 130x5 mm QR\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003cstrong\u003eFrame fit\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003eEndurance\u003cbr\u003eFork\u003cbr\u003eDomane SLR carbon, tapered carbon steerer, mudguard mounts, direct-mount rim brake, carbon dropouts, 5x100 mm QR\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003cstrong\u003eWheels\u003c\/strong\u003e\u0Ghana (GBP£) !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 && window._RestockRocket.updateCartSellingPlans) { window._RestockRocket.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } }); } // First try to get settings from metafields with expiry check const cachedSettings = window._RestockRocketConfig.cachedSettings; const validCachedSettings = cachedSettings ? checkSettingsExpiry(cachedSettings) : null; if (validCachedSettings) { console.debug('STOQ - using cached settings'); initializeScripts(validCachedSettings); } else { console.debug('STOQ - fetching fresh settings'); const headers = { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.S 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._RestockRocketConGibraltar (GBP£) .restock-rocket-button,.restock-rocket-button-float{opacity:1!important;border:none!important;cursor:pointer!important;background-image:none!important;box-shadow:none!important;padding:15px 20px;font-size:16px;width:100%;font-family:inherit}@font-face{font-family:OpenSans;font-weight:200;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Light.woff)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-float-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property:all;transition-duration:.3s;display:flex;flex-direction:column;justify-content:center;}.restock-rocket-wrapper-inline{width:100%;height:100%;margin-top:20px}.restock-rocket-preorder-description{padding:10px 15px;margin-top:20px;display:flex;flex-direction:column;gap:10px;}.preorder-description-details{margin-bottom:0;display:flex;flex-direction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #ebebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-option:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder-discount-badge{background:#ebebeb;height:25px;line-height:25px;padding:0 15px;border-radius:25px;font-size:0.8rem;flex:0 0 auto}.restock-rocket-payment-input{margin-right:10px;margin-top:-3px;vertical-align:middle;margin-left:0;accent-color:#202223}.restock-rocket-payment-description{margin-top:4px;flex:1 1 100%}.restock-rocket-preorder-badge{font-size:13px;line-height:1;padding:5px 13px 6px;border-radius:40px;height:auto;border:none;width:auto;z-index:2;margin:0;background:0 0}.preorder-badge-collection{position:absolute;top:10px;right:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restock-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:inherit;}.restock-rocket-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-align:center}.restock-rocket-preorder-countdown-timer .countdown-units{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-direction:column;align-items:center;gap:6px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:40px;padding:10px 6px;text-align:center;font-size:20px;line-height:1}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:14px;font-weight:500;text-align:center;text-transform:capitalize;opacity:.7}@media (max-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:55px;padding:14px 10px;font-size:26px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:11px}}@media (max-width:480px){.restock-rocket-preorder-countdown-timer{padding:12px}.restock-rocket-preorder-countdown-timer .countdown-units{width:100%;gap:10px}.restock-rocket-preorder-countdown-timer .countdown-box{width:100%;min-width:50px;padding:12px 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5s forwards slide}.restock-rocket-toast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animation:.5s forwards slide-out-left;animation:.5s forwards slide-out-left}.restock-rocket-toast-right{right:0;transform:translateX(100%);-webkit-transform:translateX(100%);border-radius:10px 0 0 10px}.restock-rocket-toast-right.slide-out{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-right}@keyframes slide{100%{transform:translateX(0)}}@-webkit-keyframes slide{100%{-webkit-transform:translateX(0)}}@keyframes slide-out-left{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}}.restock-rocket-preorder-progress-bar{padding:12px 15px;margin-bottom:20px;font-family:inherit;}.restock-rocket-preorder-progress-bar .preorder-progress-text{margin-bottom:8px;}.restock-rocket-preorder-progress-bar .preorder-progress-bar-row{display:flex;align-items:center;gap:10px;}.restock-rocket-preorder-progress-bar .preorder-progress-track{flex:1;height:12px;overflow:hidden;}.restock-rocket-preorder-progress-bar .preorder-progress-fill{display:block;height:100%;min-width:2px;transition:width 0.3s ease;}.restock-rocket-preorder-progress-bar .preorder-progress-percentage{font-weight:500;min-width:35px;text-align:right;} Greece (EUR€)
CloseGabon (XOFFr) Gambia (GMDD)
upply chain issues, compatible parts may be substituted at any time without notice.\u003c\/p\u003e\n\u003cp\u003eBike and frame weights are based on pre-production painted frames at time of publication. Weights may vary in final production.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {54945378140543 : "deny",54945378173311 : "deny",54945378206079 : "deny",54945378238847 : "deny",54945378271615 : "deny",54945378304383 : "deny",54945378337151 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {54945378140543 : parseInt("6"),54945378173311 : parseInt("5"),54945378206079 : parseInt("14"),54945378238847 : parseInt("5"),54945378271615 : parseInt("13"),54945378304383 : parseInt("3"),54945378337151 : parseInt("4"),}; window._RestockRocketConfig.variantsPreorderCount = {54945378140543 : parseInt(""),54945378173311 : parseInt(""),54945378206079 : parseInt(""),54945378238847 : parseInt(""),54945378271615 : parseInt(""),5494537 gTextForMarket = {54945378140543 : null,54945378173311 : null,54945378206079 : null,54945378238847 : null,54945378271615 : null,54945378304383 : null,54945378337151 : null,}; window._RestockRocketConfig.selected_variant_id = 54945378140543; 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/019d2f20-306e-73e0-8f4f-46c37de1772b/restockrocket-1-470/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019d2f20-306e-73e0-8f4f-46c37de1772b/restockrocket-1-470/assets/restockrocket-collection.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host = 'https:Germany (EUR€) < <
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 <
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); } }
Greenland (DKKkr.)
Guadeloupe (EUR€)
Guernsey (GBP£) Guinea-Bissau (XOFFr) 1 : "",56765825745279 : "",56765825778047 : "",56765825810815 : "",56765825843583 : "",56765825876351 : "",56765825909119 : "",56765825941887 : "",56765825974655 : "",56765826007423 : "",56765826040191 : "",56765826072959 : "",56765826105727 : "",56765826138495 : "",56765826171263 : "",56765826204031 : "",56765826236799 : "",56765826269567 : "",56765826302335 : "",56765826335103 : "",56765826367871 : "",56765826400639 : "",56765826433407 : "",56765826466175 : "",56765826498943 : "",56765826531711 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {56765825515903 : null,56765825548671 : null,56765825581439 : null,56765825614207 : null,56765825646975 : null,56765825679743 : null,56765825712511 : null,56765825745279 : null,56765825778047 : null,56765825810815 : null,56765825843583 : null,56765825876351 : null,56765825909119 : null,56765825941887 : null,56765825974655 : null,56765826007423 : null,56765826040191 : null,56765826072959 : null,56765826105727 : null,56765826138495 : null,567658261Closetranslation 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 scriptUrlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host = 'https://app.restockrocket.io' const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds const LIQUID_CACHE_MAX_AGE = 2 * 60 * 60; // 2 hours in seconds // Calculate Liquid cache freshness once at initialization const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt; // Validate timestamp and calculate cache age if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) { console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh'); window._RestockRocketConfig.isLiquidCacheFresh = true; } else { const now = Math.floor(Date.now() / 1000); // Current time in seconds const liquidCacheAge = now - liquidRenderedAt; // Age in seconds // Handle client clock ahead of server if (liquidCacheAge <
Guinea (GNFFr)
),56765826236799 : parseInt("0"),56765826269567 : parseInt("0"),56765826302335 : parseInt("0"),56765826335103 : parseInt("0"),56765826367871 : parseInt("0"),56765826400639 : parseInt("0"),56765826433407 : parseInt("0"),56765826466175 : parseInt("0"),56765826498943 : parseInt("0"),56765826531711 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {56765825515903 : parseInt(""),56765825548671 : parseInt(""),56765825581439 : parseInt(""),56765825614207 : parseInt(""),56765825646975 : parseInt(""),56765825679743 : parseInt(""),56765825712511 : parseInt(""),56765825745279 : parseInt(""),56765825778047 : parseInt(""),56765825810815 : parseInt(""),56765825843583 : parseInt(""),56765825876351 : parseInt(""),56765825909119 : parseInt(""),56765825941887 : parseInt(""),56765825974655 : parseInt(""),56765826007423 : parseInt(""),56765826040191 : parseInt(""),56765826072959 : parseInt(""),56765826105727 : parseInt(""),56765826138495 : parseInt(""),56765826171263 : parseInt(""),56765826204031 : parse Albania (ALLL) Cyprus (EUR€) 66175 : null,56765826498943 : null,56765826531711 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {56765825515903 : parseInt(""),56765825548671 : parseInt(""),56765825581439 : parseInt(""),56765825614207 : parseInt(""),56765825646975 : parseInt(""),56765825679743 : parseInt(""),56765825712511 : parseInt(""),56765825745279 : parseInt(""),56765825778047 : parseInt(""),56765825810815 : parseInt(""),56765825843583 : parseInt(""),56765825876351 : parseInt(""),56765825909119 : parseInt(""),56765825941887 : parseInt(""),56765825974655 : parseInt(""),56765826007423 : parseInt(""),56765826040191 : parseInt(""),56765826072959 : parseInt(""),56765826105727 : parseInt(""),56765826138495 : parseInt(""),56765826171263 : parseInt(""),56765826204031 : parseInt(""),56765826236799 : parseInt(""),56765826269567 : parseInt(""),56765826302335 : parseInt(""),56765826335103 : parseInt(""),56765826367871 : parseInt(""),56765826400639 : parseInt(""),56765826433407 : parseInt(""),56765826466175 : parseInt(""),5676 <
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 !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[keyIceland (ISKkr)
Algeria (DZDد.ج) Czechia (CZKKč) = 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 && 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 => { cons
age = Date.now() - updatedAt.getTime(); if (age ig.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}`); // Setup c
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 || tScript(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}`); } // 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,

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 Isle of Man (GBP£)
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(cacItaly (EUR€)
Jersey (GBP£)
Kenya (KESKSh)
Austria (EUR€) Eritrea (GBP£)

Kosovo (EUR€)

Belarus (GBP£) Estonia (EUR€)
  • Latvia (EUR€)

    Lesotho (GBP£) Benin (XOFFr) Ethiopia (ETBBr) Liberia (GBP£)

    Bosnia & Herzegovina (BAMКМ) Faroe Islands (DKKkr.)

  • Libya (GBP£)

    Liechtenstein (CHFCHF)

    British Indian Ocean Territory (USD$) France (EUR€)

    Lithuania (EUR€)

    Bulgaria (EUR€) French Southern Territories (EUR€)
Luxembourg (EUR€)
Burkina Faso (XOFFr) Gabon (XOFFr)
Monaco (EUR€)