Libya (GBP£)
Stem
Shifter
Create account
Search
Country
Austria (EUR€)
Sram Rival eTap AXS double tap hydraulic
Sram Rival flat mount hydraulic disc brakes
Rotor
- ,\n \"customContentWidth\": 100,\n \"sectionTheme\": \"white\",\n \"sectionAnimation\": \"none\",\n \"backgroundMode\": \"video\"\n }' data-section-id=\"63d90025deb9bc2589da3346\" class=\"page-section \n \n layout-engine-section\n \n background-width--full-bleed\n \n section-height--small\n \n \n \n horizontal-alignment--center\n vertical-alignment--top\n \n \n white\" data-section-theme=\"white\" data-test=\"page-section\"\u003e\n\u003cdiv class=\"content-wrapper\"\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cdiv id=\"page-section-63d90025deb9bc2589da3346\" data-type=\"page-section\" class=\"sqs-layout sqs-grid-12 columns-12\"\u003e\n\u003cdiv class=\"row sqs-row\"\u003e\n\u003cdiv class=\"col sqs-col-12 span-12\"\u003e\n\u003cdiv class=\"row sqs-row\"\u003e\n\u003cdiv class=\"col sqs-col-8 span-8\"\u003e\n\u003cdiv id=\"block-c1f294fc4d20thorId\": \"5155d3f4e4b02f77ba725967\",\n\"systemDataId\": \"1ea6caa0-7370-48ea-a3cd-22efec74263c\",\n\"systemDataVariants\": \"1500x1000,100w,300w,500w,750w,1000w,1500w\",\n\"systemDataSourceType\": \"JPG\",\n\"filename\": \"640A0090.jpg\",\n\"mediaFocalPoint\": {\n\"x\": 0.5,\n\"y\": 0.5,\n\"source\": 3\n},\n\"colorData\": {\n\"topLeftAverage\": \"89673a\",\n\"topRightAverage\": \"aa7d3c\",\n\"bottomLeftAverage\": \"a78653\",\n\"bottomRightAverage\": \"96784c\",\n\"centerAverage\": \"685b37\",\n\"suggestedBgColor\": \"482c07\"\n},\n\"urlId\": \"6ywif2ns2z76rkplv1uwo24ib368gb-5ymtd-8j2sn\",\n\"title\": \"\",\n\"body\": null,\n\"likeCount\": 0,\n\"commentCount\": 0,\n\"publicCommentCount\": 0,\n\"commentState\": 2,\n\"unsaved\": false,\n\"author\": {\n\"id\": \"5155d3f4e4b02f77ba725967\",\n\"displayName\": \"klaus dyba\",\n\"firstName\": \"klaus\",\n\"lastName\": \"dyba\",\n\"websiteUrl\": \"\",\n\"bio\": \"\"\n},\n\"assetUrl\": \"https:\/\/images.squarespace-cdn.com\/content\/v1\/60d2d479d2b7b75136ea090c\/1er=\"SectionWrapperController\" data-controllers-bound=\"SectionWrapperController\" data-active=\"true\"\u003e\n\u003cdiv class=\"content-wrapper\"\u003e\n\u003cdiv class=\"content\"\u003e\n\u003cdiv class=\"sqs-layout sqs-grid-12 columns-12\" data-type=\"page-section\" id=\"page-section-614582ea6d94fb4fe5eec788\"\u003e\n\u003cdiv class=\"row sqs-row\"\u003e\n\u003cdiv class=\"col sqs-col-12 span-12\"\u003e\n\u003cdiv class=\"row sqs-row\"\u003e\n\u003cdiv class=\"col sqs-col-8 span-8\"\u003e\n\u003cdiv class=\"sqs-block html-block sqs-block-html\" data-block-type=\"2\" id=\"block-83a06e825197c3983949\"\u003e\n\u003cdiv class=\"sqs-block-content\"\u003e\n\u003cdiv class=\"sqs-html-content\"\u003e\n\u003cp class=\"preFade fadeIn\"\u003eAre you heading down the path least travelled? For a drop handlebar bike, the Hook EXT seldom faces terrain it cannot handle. A Columbus steel frame, a dedicated carbon fork and a sturdy 27.5’’ wheelset equip the EXT with an armoury to ride where other bikes would surely suffting\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eHandlebar\u003c\/td\u003e\n\u003ctd class=\"xl67\" align=\"left\"\u003eBombtrack CX-10 drop bar, 31.8 mm, 10° flare\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eGrips\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eBombtrack Escape bar tape\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eStem\u003c\/td\u003e\n\u003ctd class=\"xl71\" align=\"left\"\u003eBombtrack Roam forged aluminium stem, -7°\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eHeadset\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSealed external aheadset, 1.1\/2'' - 1.1\/8''\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eLevers\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSram Rival 1 double ta/td\u003e\n\u003ctd class=\"xl68\"\u003eBombtrack T47 internal sealed BB for 30 mm spindle, 85.5 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003ePedals\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003e-\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eChain\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eKMC X11 EPT Anti Rust chain, 1\/2'' x 11\/128'', 112L\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eChainring\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eCNC machined aluminium, narrow-wide, 40 T\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eCassette\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eSram PG-1130 11-speed, 11 - 42 T\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eFront derailleur\u003c\/td\u003e\n\u0
- "\u003eWTB ST Light i25 double wall, TCS 2.0, 32h\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eRear rim\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eWTB ST Light i23 double wall, TCS 2.0, 32h\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eSaddle\u003c\/td\u003e\n\u003ctd class=\"xl72\" align=\"left\"\u003eBombtrack Dart saddle\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eSeat post\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003eBombtrack Yew aluminium seatpost, 27.2 mm x 300 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eSeat clamp\u003c\/td\u003e\n\u003ctd class=\"xl71\" align=\"left\"\u003eBombtrack Origin 29.8 mm\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eFront tire\u003c\/td\u003e\n\u003ctd class\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eWeight\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003e11.2 kg (size M)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eWeight frameset\u003c\/td\u003e\n\u003ctd class=\"xl67\" align=\"left\"\u003e2710 g frame (size L, incl. TA, hanger) \/ 550 g fork (300 mm steerer, incl. TA)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"21\"\u003e\n\u003ctd height=\"21\" class=\"xl66\"\u003eMaximum rider weight\u003c\/td\u003e\n\u003ctd class=\"xl68\"\u003e130 kg incl. Luggage\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr height=\"23\"\u003e\n\u003ctd height=\"23\" class=\"xl73\"\u003eASTM riding condition\u003c\/td\u003e\n\u003ctd class=\"xl74\"\u003e2\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"col sqs-col-2 span-2\"\u003e\n\u003cdiv class=\"sqs-block spacer-block sqs-block-spacer size50x1234,100w,300w,500w,750w,1000w,1500w\",\n\"systemDataSourceType\": \"JPG\",\n\"filename\": \"640A2505.jpg\",\n\"mediaFocalPoint\": {\n\"x\": 0.5,\n\"y\": 0.5,\n\"source\": 3\n},\n\"colorData\": {\n\"topLeftAverage\": \"3f2718\",\n\"topRightAverage\": \"3d2617\",\n\"bottomLeftAverage\": \"b69174\",\n\"bottomRightAverage\": \"a88369\",\n\"centerAverage\": \"443c35\",\n\"suggestedBgColor\": \"492e19\"\n},\n\"urlId\": \"2as9krhpwha8am4q7uorpxtxc2lca6-2ch6x-fr546\",\n\"title\": \"\",\n\"body\": null,\n\"likeCount\": 0,\n\"commentCount\": 0,\n\"publicCommentCount\": 0,\n\"commentState\": 2,\n\"unsaved\": false,\n\"author\": {\n\"id\": \"5155d3f4e4b02f77ba725967\",\n\"displayName\": \"klaus dyba\",\n\"firstName\": \"klaus\",\n\"lastName\": \"dyba\",\n\"websiteUrl\": \"\",\n\"bio\": \"\"\n},\n\"assetUrl\": \"https:\/\/images.squarespace-cdn.com\/content\/v1\/60d2d479d2b7b75136ea090c\/1b27b4ea-e159-462a-a497-617e58529dbb\/640A2505.jpg\",\n\"contentType\": \"image\/jpeg\",\n\"items\": [ ],\n\"pushedServices\": { },\: 0,\n\"bevelSize\": 0,\n\"bevelStrength\": 0,\n\"complexity\": 0,\n\"cutoff\": 0,\n\"isBevelEnabled\": false,\n\"isBlurEnabled\": false,\n\"scale\": 0,\n\"speedMorph\": 0,\n\"speedTravel\": 0,\n\"steps\": 0,\n\"travelDirection\": 0,\n\"noiseBias\": 0,\n\"animateNoise\": false,\n\"distortionComplexity\": 0,\n\"distortionDirection\": 0,\n\"distortionMorphSpeed\": 0,\n\"distortionSeed\": 0,\n\"distortionSmoothness\": 0,\n\"linearGradientStartColorDistance\": 0,\n\"linearGradientEndColorDistance\": 0,\n\"linearGradientAngle\": 0,\n\"linearGradientAngleMotion\": 0,\n\"linearGradientRepeat\": 0,\n\"radialGradientRadius\": 0,\n\"radialGradientPositionX\": 0,\n\"radialGradientPositionY\": 0,\n\"radialGradientFollowCursor\": false,\n\"radialGradientFollowSpeed\": 0,\n\"presetImageKey\": \"brush2\",\n\"imageTint\": {\n\"type\": \"SITE_PALETTE_COLOR\",\n\"sitePaletteColor\": {\n\"id\": \"lightAccent\",\n\"alpha\": 1.0\n}\n},\n\"imageScale\": 50,\n\"imageCount\": 29,\n\"patternEnabled\": false,\n\"patternColor\": {\n\"tn\": 0,\n\"rotationSpeed\": 0,\n\"blur\": 0,\n\"complexityY\": 0,\n\"complexityZ\": 0,\n\"amplitudeY\": 0,\n\"amplitudeZ\": 0,\n\"offset\": 0,\n\"lightAngle\": 0,\n\"alpha\": 0\n}\n}' data-current-context='{\n\"video\": {\n\"playbackSpeed\": 1,\n\"filter\": 1,\n\"filterStrength\": 55,\n\"zoom\": 0,\n\"videoFallbackContentItemId\": \"61603967734f093a37846a4d\",\n\"videoFallbackContentItem\": {\n\"id\": \"61603967734f093a37846a4d\",\n\"recordType\": 2,\n\"addedOn\": 1633696103245,\n\"updatedOn\": 1675162960055,\n\"workflowState\": 1,\n\"publishOn\": 1633696103245,\n\"authorId\": \"611cde655e01dc42b587adf4\",\n\"systemDataId\": \"05065c07-dc6e-4028-92f7-7dd0759f14be\",\n\"systemDataVariants\": \"2048x1366,100w,300w,500w,750w,1000w,1500w\",\n\"systemDataSourceType\": \"JPG\",\n\"filename\": \"640A2458_ss.jpg\",\n\"mediaFocalPoint\": {\n\"x\": 0.5,\n\"y\": 0.5,\n\"source\": 3\n},\n\"colorData\": {\n\"topLeftAverage\": \"b36e4f\",\n\"topRightAverage\": \"9e5f3f\",\n\"bottomLeftAverage\": \"8d512d\",\n\"bottomRightA
- \",\n\"systemDataId\": \"2fd62fd3-3621-4585-b1a4-90560c499a31\",\n\"systemDataVariants\": \"1920:1080,640:360\",\n\"systemDataSourceType\": \"mp4\",\n\"filename\": \"HOOK_EXT_BLUE_1.mp4\",\n\"body\": null,\n\"likeCount\": 0,\n\"commentCount\": 0,\n\"publicCommentCount\": 0,\n\"commentState\": 1,\n\"author\": {\n\"id\": \"611cde655e01dc42b587adf4\",\n\"displayName\": \"Marcellus Putschli\",\n\"firstName\": \"Marcellus\",\n\"lastName\": \"Putschli\",\n\"bio\": \"\"\n},\n\"contentType\": \"video\/mp4\",\n\"structuredContent\": {\n\"_type\": \"SqspHostedVideo\",\n\"videoCodec\": \"h264\",\n\"alexandriaUrl\": \"https:\/\/video.squarespace-cdn.com\/content\/v1\/60d2d479d2b7b75136ea090c\/2fd62fd3-3621-4585-b1a4-90560c499a31\/{variant}\",\n\"alexandriaLibraryId\": \"60d2d479d2b7b75136ea090c\",\n\"aspectRatio\": 1.7777777777777777,\n\"durationSeconds\": 6.047711\n},\n\"videoCodec\": \"h264\",\n\"alexandriaUrl\": \"https:\/\/video.squarespace-cdn.com\/content\/v1\/60d2d479d2b7b75136ea090c\/2fd62fd3-3621-4585-b1a4-90560e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cdl id=\"DetailAttributes\" class=\"AttributeList hToggle clearfix\"\u003e\u003c\/dl\u003e\n\u003c!----\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {45661646323938 : "deny",45661646356706 : "deny",45661646389474 : "deny",45661646422242 : "deny",45661646455010 : "deny",45661646487778 : "deny",45661646520546 : "deny",45661646553314 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {45661646323938 : parseInt("0"),45661646356706 : parseInt("0"),45661646389474 : parseInt("0"),45661646422242 : parseInt("0"),45661646455010 : parseInt("0"),45661646487778 : parseInt("0"),45661646520546 : parseInt("0"),45661646553314 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {45661646323938 : parseInt(""),45661646356706 : parseInt(""),45661646389474 : parseInt(""),45661646422242 : parseInt(""),45664 : "",45661646422242 : "",45661646455010 : "",45661646487778 : "",45661646520546 : "",45661646553314 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {45661646323938 : null,45661646356706 : null,45661646389474 : null,45661646422242 : null,45661646455010 : null,45661646487778 : null,45661646520546 : null,45661646553314 : null,}; window._RestockRocketConfig.selected_variant_id = 45661646323938; 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.scr<<
- translation data in metafield // Metafield hasn't been backfilled yet - force refresh console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh'); return null; } // Translations object exists in metafield - cache is valid // If current locale isn't translated, applyTranslations will gracefully use default locale from base fields if (window._RestockRocketConfig.normalizedLocale && !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } // Don't return null - continue using cache even for untranslated locales } const updatedAt = new Date(settings.updated_at); if (isNaN(updatedAt.getTime())) { console.debug('STOQ - Invalid updated_at date format in settings'); return null; } const <!settings.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.ShedSettings); } 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); } } .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;}
- Log in
window.appBlockPlacements ||= [];
if (window.klarnaAppBlocksManager) {
window.klarnaAppBlocksManager.push({
productVariants: [{"id":45661684138210,"title":"Glossy Dark Green \/ Extra Small - 49","option1":"Glossy Dark Green","option2":"Extra Small - 49","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"BOMBTRACK HOOK EXT C Complete Bike - Glossy Dark Green \/ Extra Small - 49","public_title":"Glossy Dark Green \/ Extra Small - 49","options":["Glossy Dark Green","Extra Small - 49"],"price":250000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45661684170978,"title":"Glossy Dark Green \/ Small - 52","option1":"Glossy Dark Green","option2":"Small - 52","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"BOMBTRACK HOOK EXT C Complete Bike - Glossy Dark Green \/ Small - 52","public_title":"Glossy Dark Green \/ Small - 52","options":["Glossy Dark Green","Small - 52"],"price":250000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45661684203746,"title":"Glossy Dark Green \/ Medium - 54","option1":"Glossy Dark Green","option2":"Medium - 54","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"BOMBTRACK HOOK EXT C Complete Bike - Glossy Dark Green \/ Medium - 54","public_title":"Glossy Dark Green \/ Medium - 54","options":["Glossy Dark Green","Medium - 54"],"price":250000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45661684236514,"title":"Glossy Dark Green \/ Large - 56","option1":"Glossy Dark Green","option2":"Large - 56","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"BOMBTRACK HOOK EXT C Complete Bike - Glossy Dark Green \/ Large - 56","public_title":"Glossy Dark Green \/ Large - 56","options":["Glossy Dark Green","Large - 56"],"price":250000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45661684269282,"title":"Glossy Dark Green \/ Extra Large - 58","option1":"Glossy Dark Green","option2":"Extra Large - 58","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"BOMBTRACK HOOK EXT C Complete Bike - Glossy Dark Green \/ Extra Large - 58","public_title":"Glossy Dark Green \/ Extra Large - 58","options":["Glossy Dark Green","Extra Large - 58"],"price":250000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],
templateName: 'product',
dataKey: 'top-strip-promotion-badge',
storefrontCurrency: 'GBP',
storefrontCountry: 'GB',
storefrontLanguage: 'en',
shopLocale: 'en',
shopDomain: 'projektride.co.uk',
variantPrice: '250000',
cartPrice: '0',
selector: 'shopify-osm-AZVZWMXA0Y041VmdBL__klarna_on_site_messaging_app_block_8gNReH',
topPadding: '0',
bottomPadding: '30',
});
} else {
window.appBlockPlacements.push({
productVariants: [{"id":45661684138210,"title":"Glossy Dark Green \/ Extra Small - 49","option1":"Glossy Dark Green","option2":"Extra Small - 49","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"BOMBTRACK HOOK EXT C Complete Bike - Glossy Dark Green \/ Extra Small - 49","public_title":"Glossy Dark Green \/ Extra Small - 49","options":["Glossy Dark Green","Extra Small - 49"],"price":250000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45661684170978,"title":"Glossy Dark Green \/ Small - 52","option1":"Glossy Dark Green","option2":"Small - 52","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"BOMBTRACK HOOK EXT C Complete Bike - Glossy Dark Green \/ Small - 52","public_title":"Glossy Dark Green \/ Small - 52","options":["Glossy Dark Green","Small - 52"],"price":250000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45661684203746,"title":"Glossy Dark Green \/ Medium - 54","option1":"Glossy Dark Green","option2":"Medium - 54","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"BOMBTRACK HOOK EXT C Complete Bike - Glossy Dark Green \/ Medium - 54","public_title":"Glossy Dark Green \/ Medium - 54","options":["Glossy Dark Green","Medium - 54"],"price":250000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45661684236514,"title":"Glossy Dark Green \/ Large - 56","option1":"Glossy Dark Green","option2":"Large - 56","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"BOMBTRACK HOOK EXT C Complete Bike - Glossy Dark Green \/ Large - 56","public_title":"Glossy Dark Green \/ Large - 56","options":["Glossy Dark Green","Large - 56"],"price":250000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45661684269282,"title":"Glossy Dark Green \/ Extra Large - 58","option1":"Glossy Dark Green","option2":"Extra Large - 58","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"BOMBTRACK HOOK EXT C Complete Bike - Glossy Dark Green \/ Extra Large - 58","public_title":"Glossy Dark Green \/ Extra Large - 58","options":["Glossy Dark Green","Extra Large - 58"],"price":250000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],
templateName: 'product',
shopLocale: 'en',
dataKey: 'top-strip-promotion-badge',
storefrontCurrency: 'GBP',
storefrontCountry: 'GB',
storefrontLanguage: 'en',
shopDomain: 'projektride.co.uk',
variantPrice: '250000',
cartPrice: '0',
selector: 'shopify-osm-AZVZWMXA0Y041VmdBL__klarna_on_site_messaging_app_block_8gNReH',
topPadding: '0',
bottomPadding: '30',
});
}
Looking to purchase with a cycle to work scheme?
Click here
Zimbabwe (USD$) to get in touch and get the ball rolling!
| I'm looking to find out more information about a product, where can I find this? | ||
| Please get in touch with a member of the team either by phone ( | 01313745324) or email ( | [email protected]) where on of the team will be more than happy to help. | ProjektRide Bike Shop Edinburgh
| I'm looking to buy this product, when will it arrive and how much does postage cost? | If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item. | Postage is free on orders over £50. Orders under £50, our postage charge is £3.99.|
| 82 Newington Road, EH91QN, Edinburgh. | ||
| #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; } | #SiteFooter .footer-block--logo { min-width: calc(160px + calc(var(--gutter) / 2)); } #SiteFooter .footer-block__logo-image { width: 160px; } | |
| Quick Links | About Us | |
| Contact Us | Blog | |
| Building Your Bike From the Box | Insure Your Bike |
- Senegal (XOFFr)
Serbia (RSDРСД)
Seychelles (GBP£)
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(cacZambia (GBP£)
| Sierra Leone (SLLLe) | ||
| Slovakia (EUR€) | Slovenia (EUR€) | |
| Somalia (GBP£) | South Africa (GBP£) | |
| South Sudan (GBP£) | Spain (EUR€) | |
| St. Helena (SHP£) | Sudan (GBP£) | |
| Svalbard & Jan Mayen (GBP£) | ||
| Kosovo (EUR€) se,"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 ? ol | ns; // 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-collecti||
| Latvia (EUR€) cancellation policyns2z76rkplv1uwo24ib368gb-5ymtd-8j2sn\",\n\"title\": \"\",\n\"body\": null,\n\"likeCount\": 0,\n\"commentCount\": 0,\n\"publicCommentCount\": 0,\n\"commentState\": 2,\n\"unsaved\": false,\n\"author\": {\n\"id\": \"5155d3f4e4b02f77ba725967\",\n\"displayName\": \"klaus dyba\",\n\"firstName\": \"klaus\",\n\"lastName\": \"dyba\",\n\"websiteUrl\": \"\",\n\"bio\": \"\"\n},\n\"assetUrl\": \"https:\/\/images.squarespace-cdn.com\/content\/v1\/60d2d479d2b7b75136ea090c\/1ea6caa0-7370-48ea-a3cd-22efec74263c\/640A0090.jpg\",\n\"contentType\": \"image\/jpeg\",\n\"items\": [ ],\n\"pushedServices\": { },\n\"pendingPushedServices\": { },\n\"originalSize\": \"1500x1000\",\n\"recordTypeLabel\": \"image\"\n},\n\"imageOverlayOpacity\": 0.27,\n\"backgroundWidth\": \"background-width--full-bleed\",\n\"sectionHeight\": \"section-height--custom\",\n\"customSectionHeight\": 10,\n\"horizontalAlignment\": \"horizontal-alignment--center\",\n\"verticalAlignment\": \"vertical-alignment--top\",\n\"contentWidth\": \"content-width--custom\",\n | Seat clamp and authorize you to charge my payment method at the prices, frequency and dates listed on this page until my order is fulfilled or I cancel, if permitted. block-type=\"2\" id=\"block-83a06e825197c3983949\"\u003e\n\u003cdiv class=\"sqs-block-content\"\u003e\n\u003cdiv class=\"sqs-html-content\"\u003e\n\u003csection data-active=\"true\" data-controllers-bound=\"SectionWrapperController\" data-controller=\"SectionWrapperController\" data-animation=\"none\" data-current-context='{\n \"video\": {\n \"url\": \"\",\n \"playbackSpeed\": 0.5,\n \"filter\": 1,\n \"filterStrength\": 0,\n \"zoom\": 0,\n \"videoSourceProvider\": \"none\"\n },\n \"backgroundImageId\": null,\n \"backgroundMediaEffect\": null,\n \"divider\": null,\n \"typeName\": \"portfolio-grid-basic\"\n }' data-current-styles='{\n \"backgroundImage\": {\n \"id\": \"614b10a8a32b5c1453ad27cf\",\n \"recordType\": 2,\n \"addedOn\": 1628181448308,\n \"updatedOn\": 1628324542674,\n \"starred\": false,\n \"passthrough\": false,\n \"workflowState\": 1,\n \"publishOn\": 1628181448308,\n \"authorId\": \"5155d3f4e4b02f77baaus dyba\",\n \"firstName\": \"klaus\",\n \"lastName\": \"dyba\",\n \"websiteUrl\": \"\",\n \"bio\": \"\"\n },\n \"assetUrl\": \"https:\/\/images.squarespace-cdn.com\/content\/v1\/60d2d479d2b7b75136ea090c\/1ea6caa0-7370-48ea-a3cd-22efec74263c\/640A0090.jpg\",\n \"contentType\": \"image\/jpeg\",\n \"items\": [ ],\n \"pushedServices\": { },\n \"pendingPushedServices\": { },\n \"originalSize\": \"1500x1000\",\n \"recordTypeLabel\": \"image\"\n },\n \"imageOverlayOpacity\": 0.27,\n \"backgroundWidth\": \"background-width--full-bleed\",\n \"sectionHeight\": \"section-height--custom\",\n \"customSectionHeight\": 10,\n \"horizontalAlignment\": \"horizontal-alignment--center\",\n \"verticalAlignment\": \"vertical-alignment--top\",\n \"contentWidth\": \"content-width--custom\",\n \"customContentWidth\": 100,\n \"sectionTheme\": \"white\",\n \"sectionAnimation\": \"none\",\n \"backgroundMode\": \"video\"\n }' data-s | class=\"page-section \n \n layout-engine-section\n \n background-width--full-bleed\n \n section-height--small\n \n \n \n horizontal-alignment--center\n vertical-alignment--top\n \n \n white\" data-section-id=\"6155e1f787b82f36c1e702e0\" data-current-styles='{\n\"backgroundImage\": {\n\"id\": \"6155e1f787b82f36c1e70280\",\n\"recordType\": 2,\n\"addedOn\": 1628181448308,\n\"updatedOn\": 1628324542674,\n\"starred\": false,\n\"passthrough\": false,\n\"workflowState\": 1,\n\"publishOn\": 1628181448308,\n\"authorId\": \"5155d3f4e4b02f77ba725967\",\n\"systemDataId\": \"1ea6caa0-7370-48ea-a3cd-22efec74263c\",\n\"systemDataVariants\": \"1500x1000,100w,300w,500w,750w,1000w,1500w\",\n\"systemDataSourceType\": \"JPG\",\n\"filename\": \"640A0090.jpg\",\n\"mediaFocalPoint\": {\n \"x\": 0.5,\n \"y\": 0.5,\n \"source\": 3\n},\n\"colorData\": {\n \"topLeftAverage\": \"89673a\",\n \"topRightAverage\": \"aa7d3c\",\n \"bottomLeftAverage\": \"a78653\",\n \"bottomRightAverage\":|
| Türkiye (GBP£) | ||
| Uganda (UGXUSh) | Ukraine (UAH₴) | |
| United Kingdom (GBP£) | United States (GBP£) | |
| Vatican City (EUR€) | 696083656930 : parseInt("1"),45696083689698 : parseInt("1"),45661753213154 : parseInt("1"),45661771923682 : parseInt("1"),45696083722466 : parseInt("1"),}; window._RestockRocketConfig.variantsPreorderCount = {45696083656930 : parseInt(""),45696083689698 : parseInt(""),45661753213154 : parseInt(""),45661771923682 : parseInt(""),45696083722466 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {45696083656930 : null,45696083689698 : null,45661753213154 : null,45661771923682 : null,45696083722466 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {45696083656930 : parseInt(""),45696083689698 : parseInt(""),45661753213154 : parseInt(""),45661771923682 : parseInt(""),45696083722466 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {45696083656930 : null,45696083689698 : null,45661753213154 : null,45661771923682 : null,45696083722466 : null,}; window._RestockRocketConfig.variantsShippingText = {45696083656930 : "",45696083tUrlProduct.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 | 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 (liquidCacheAgeWestern Sahara (MADد.م.) = 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

See More
[email protected]Cookie Policy
Buy, sell and ride in confidence on ProjektRide’s premium bikes
Sealed external aheadset, 1.1/2'' - 1.1/8''
SRAM Apex double tap mechanic
SRAM Apex double tap 2 x 10Servicing
Liechtenstein (CHFCHF)
Madagascar (GBP£)