frames
Genesis
Genesisfullbuild
hybrid

at":"2025-11-11T14:27:02.333Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43590980075746,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, <
li class="result"> 2909129954,44140302827746,44140302893282,44140317016290,44155590508770,44155590541538,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,44957136584930,44957136781538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,55569933074815,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,56314171097471,56398983725439,56398983758207,56398983790975,56399322251647],"updated_at":"2025-12-13T14:20:13Z","market_locations_enabled":false,"market_id":382140642,"preorder_location_filter_enabled":false,"preorder_ Cockpit <
div class="result__image" data-aspectratio="{{ it.product.image.aspectRatio }}" data-product-image> Bikes2415103,55569712480639,55569933173119,55570017616255,55569933074815,55570017550719,55569712447871,55569933107583,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }} See More <a href="{{ it.product.url }}" class="result__image-link" aria-label='{{ it.product.title }}'> ed_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.","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_backgroShop All New Bikes Genesis Croix De Fer 10 Ex Demo Bike - Medium <
div class="result__image-img product__media lazyload fade-in" data-bgset="{{ it.product.image.thumb }}" data-aspectratio="{{ it.product.image.aspectRatio }}" data-sizes="auto"> {{@if(it.product.badgeText)}} See Moree":"fidlock-twist-bottle-590-bike-base","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe TWIST bottle 590 has transformed the bike bottle. Without the conventional bottle cage, this magnet-mechanical bike bottle system offers a new kind of freedom in handling and application. It is simply released from the bike with an easy “TWIST” movement and just as easily reattached by bringing together the magnetic bolts, which include a mechanical locking system.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eTWIST bottle 590 including TWIST bike base:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe bike bottle comes with a connector fitted with two magnets and an internal mechanic latching system. The two magnets find their counterpart magnets in the bike base automatically and guide the bottle into the right position. With an audible “click”, the mechanic fixture comes into place to hold the 4<Header Imagediv class="product__tag{{ it.product.badgeClasses }}"> t","spo-disabled","spo-notify-me-disabled"],"price":3999,"price_min":3999,"price_max":3999,"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":42157681082594,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"WCFLB590Z","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"FidLock TWIST bottle 590 + bike base","public_title":null,"options":["Default Title"],"price":3999,"weight":40,"compare_at_price":null,"inventory_management":"shopify","barcode":"4251207401008","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/fidlock-twist-bottle-and-base-590ml-p57261-194198_image.jpg?v=1639500222"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/fidlock-twist-bottle-and-base-590ml-p57261-194198_image.jpg?v=1639500222","options":["Title"],"media":[{"alt":null,"id":288 £580.00 <
span>{{ it.product.badgeText | safe }} bottle 590 including TWIST bike base:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe bike bottle comes with a connector fitted with two magnets and an internal mechanic latching system. The two magnets find their counterpart magnets in the bike base automatically and guide the bottle into the right position. With an audible “click”, the mechanic fixture comes into place to hold the bottle securely. To release the bottle, it only needs a simple clockwise TWIST. The bike base is mounted on the bike to the bottle braze-ons with two screws.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cu data-mce-fragment=\"1\"\u003eThe advantages in a nutshell\u003c\/u\u003e\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003e590 ml \/ 20 fl oz volume\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eDishwasher-safe\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eBPA-free polypropylene\u003c\/li\u003e\n\u003cli data-mce-fragment=Road / Gravel / Touring BikesHandlebars > ; 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/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-collection.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host = 'https://app.restockrocket.io' const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; // 15 minutes in milliseconds function checkSettingsExpiry(settings) { try { if (!settings || !settings.updated_at) { console.debug(' > {{/if}} window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } // Don't return null - continue using cache even for untranslated locales } const updatedAt = new Date(settings.updated_at); if (isNaN(updatedAt.getTime())) { console.debug('STOQ - Invalid updated_at date format in settings'); return null; } const age = Date.now() - updatedAt.getTime(); if (age > New Bikes 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 || Hybrid / City BikesStemsProjektride's Student bike bundle!5+> See More]; if (value !== null && value !== undefined && value !== '') { settings[key] = value; } }); } else { console.debug('STOQ - No translated fields found for locale:', normalizedLocale); } delete settings.translations; return settings; } catch (e) { console.debug('STOQ - error applying translations:', e); return settings; } } // First try to get settings from metafields with expiry check const cache > { throw new Error('Network response was not ok'); } return response.json(); }) .then(function(settings) { initializeScripts(settings); }) .catch(function(error) { // If request failed and we have cached settings (even if expired), use them as fallback if (cachedSettings) { console.debug('STOQ - using expired cached settings as fallback'); initializeScripts(cachedSettings); } else { console.error('STOQ - failed to load settings:', error); } }) .catch(function(e) { console.error(e) }) } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); if(settings.enable_app) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && integratio <p class="result__title"> ketConfig.pageType === 'product') { createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct); } else if(hijackIntegration) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`); } // Check and update cart selling plans after scripts are loaded if (settings.preorder_enabled) { updateCartSellingPlans(); } // Dispatch custom event when app is loaded const appLoadedEvent = new CustomEvent('stoq:loaded', { detail: { pageType: window._RestockRocketConfig.pageType, enabled: settings.enable_app, settings: settings } }); console.debug('STOQ - dispatching app loaded event'); window.dispatchEvent(appLoadedEvent); } } function updateCartSellingPlans() { // Wait for the API to be available with retries const maxRetries = 10; Mountain BikesGrips & Bar-Tape <a href="{{ it.product.url }}">{{ it.product.title }} < a class="product__media product__media--featured" href="/collections/bikes/products/projektrides-student-bike-bundle-1" title="Projektride's Student bike bundle!" aria-label="Projektride's Student bike bundle!" style="background-image: url(//projektride.co.uk/cdn/shop/files/B1B0CF04-02C0-4099-B685-92962FC479F2_600x.jpg?v=1758108217)"> span class="visually-hidden">Projektride's Student bike bundle!Decrease quantityElectric BikesHeadsets>

xt-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-keyfKids Bikes Increase quantity< Brakes <
See More Frames div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/C685060D-D458-4A74-86F3-7C3E83F9F362_600x.jpg?v=1758108217)">
Complete Brakes input type="number" name="quantity" id="quantity--template--15326745395426__main" value="1" min="1"> /schema.org", "@type": "Organization", "name": "ProjektRide","sameAs": [ null, null, null, null, null, null, null ], "url": "https:\/\/projektride.co.uk" }
<
window.appBlockPlacements ||= []; if (window.klarnaAppBlocksManager) { window.klarnaAppBlocksManager.push({ productVariants: [{"id":45610939089122,"title":"50cm","option1":"50cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 50cm","public_title":"50cm","options":["50cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939121890,"title":"52cm","option1":"52cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 52cm","public_title":"52cm","options":["52cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939154658,"title":"54cm","option1":"54cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 54cm","public_title":"54cm","options":["54cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939187426,"title":"56cm","option1":"56cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 56cm","public_title":"56cm","options":["56cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939220194,"title":"58cm","option1":"58cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Enigma Titanium Gravel Edge Frameset - 58cm","public_title":"58cm","options":["58cm"],"price":270000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45610939252962,"title":"60cm","option1":"60cm","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_ima a class="product__media product__media--featured" href="/collections/bikes/products/brother-cycles-stroma-frameset-copy" title="-Brother Cycles Stroma Frameset" aria-label="-Brother Cycles Stroma Frameset" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2025-03-13at14.14.28_600x.png?v=1741875455)"> Custom Builds
span class="visually-hidden">-Brother Cycles Stroma FramesetSee MoreAXLE DIMS.
<>
Brake Rotors
Brake Spares
ForksSee More Front Suspension
Accessories
Essentials<