- _sqPlans.forEach(function (pl) { if (!_sqPlan && _sqForVariant(pl) && !pl.markets_enabled) { _sqPlan = pl; } }); } Shopify?.analytics?.publish?.('stoq_accelerated_checkout_clicked', { variant_id: variantId, product_id: (_sqTrack.product && _sqTrack.product.id) || '', channel: channel, market_id: _sqTrack.marketId || '', country_code: _sqTrack.countryIsoCode || '', page_type: _sqTrack.pageType || '', cart_token: _sqTrack.cartToken || '', page_url: (window.location && window.location.origin + window.location.pathname) || '', properties: { is_preorder_variant: (function () { var vid = Number(variantId); var has = function (a) { return Array.isArray(a) && a.indexOf(vid) !== -1; }; return has(_sqTrack.preorderVariantIds) || has(_sqTrack.cachedPreorderVariantIds && <Albania (ALLL) Log inlassList.contains('stoq-buy-now-pending')), blocked: (function () { try { var rr = window._RestockRocket; return !!(rr && typeof rr.willBlockAcceleratedClick === 'function' && rr.willBlockAcceleratedClick(e)); } catch (err) { return false; } })(), }, }); } catch (err) { } }, true); } } catch (e) { } function applyTranslations(settings) { try { if (!settings || !settings.multi_language_enabled) { return settings; } if (!settings.translations) { console.debug('STOQ - No translations found, skipping translation'); return settings; } const normalizedLocale = window._RestockRocketConfig.normalizedLocale; const translations = settings.translations; if (!normalizedLocale) { console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {})); 'STOQ - Inventory data loaded, updating cart selling plans'); if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) { window._RestockRocket.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } }); } function storefrontGraphql(query, variables) { const cfg = window._RestockRocketConfig; let token = cfg.storefrontAccessToken || null; if (!token && typeof cfg.sk === 'string' && cfg.sk !== '') { try { token = atob(cfg.sk).split('').reverse().join('') || null; } catch (e) { token = null; } } if (!token || cfg.disableStorefrontApi === true) { return Promise.reject(new Error('Storefro urn storefrontGraphql(query, { namespace: cfg.metafieldNamespace, key: key }) .then(function(data) { const value = data && data.shop && data.shop.metafield && data.shop.metafield.value; if (!value) { throw new Error('Storefront API returned no ' + key + ' metafield value'); } return JSON.parse(value); }); } function fetchStorefrontSettings() { const query = 'query StoqSettings($namespace: String!) { shop { settings: metafield(namespace: $namespace, key: "settings") { value } translations: metafield(namespace: $namespace, key: "settings_translations") { value } } }'; return storefrontGraphql(query, { namespace: window._RestockRocketConfig.metafieldNamespace }) .then(function(data) { const settings = JSON.parse(data.shop.settings.value); if (!settings.updated_at) { throw new Error('settings metafield is not a settings payload'); } if (settings.single_locale_translations_inline) { settings.translations = data.shop.translations && JSON.parse(data
- const storefrontRead = window._RestockRocketConfig.readFlags?.enable_storefront_settings_read === true ? Promise.race([ fetchStorefrontSettings(), new Promise(function(_, reject) { setTimeout(function() { reject(new Error('timed out')); }, 1500); }) ]).catch(function(error) { console.debug('STOQ - Storefront settings read failed, using setting.json:', error.message); }) : Promise.resolve(); storefrontRead .then(function(settings) { return settings || 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 (cachedSettings) { console.deAlgeria (DZDد.ج) Create accountr.message); }); } function refreshShopConfig(source) { const cfg = window._RestockRocketConfig; const viaEmbed = function() { return fetchEmbedConfig(source.endpoint, source.apply); }; const flagOn = !!cfg.readFlags && cfg.readFlags[source.flag] === true; if (!flagOn) { return viaEmbed(); } return fetchStorefrontShopMetafield(source.metafieldKey) .then(function(value) { if (!source.isValid(value)) { throw new Error(source.metafieldKey + ' metafield is not a valid ' + source.endpoint + ' payload'); } source.apply(value); console.debug('STOQ - refreshed ' + source.endpoint + ' from the Storefront API'); }) .catch(function(error) { console.debug('STOQ - Storefront ' + source.endpoint + ' read failed, using embed:', error.message); return viaEmbed(); }); } function refreshIntegrations() { const cfg = window._RestockRocketConfig; return refreshShopConfig({ endpoint: 'integrations', metafieldKey: 'in ngs configured for ${window._RestockRocketConfig.pageType}`); const staleRefresh = !window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid; if (staleRefresh) { console.debug('STOQ - refreshing selling_plans + integrations (Liquid cache stale)'); Promise.race([ Promise.all([refreshSellingPlans(), refreshIntegrations()]), new Promise(function(resolve) { setTimeout(resolve, 1000); }) ]).then(function() { loadScripts(settings); }); return; } loadScripts(settings); } function loadScripts(settings) { 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); }) const hasEnabledOffer = Array.isArray(window._RestockRocketConfig.sellingPlans) && w ionScriptUrl = preorderUiOnPage ? window._RestockRocketConfig.scriptUrlCollectionFull : window._RestockRocketConfig.scriptUrlCollection; const collectionScriptUrl = usePreorderBuild ? preorderCollectionScriptUrl : window._RestockRocketConfig.scriptUrlCollectionBis; const productScriptUrl = usePreorderBuild ? window._RestockRocketConfig.scriptUrlProduct : window._RestockRocketConfig.scriptUrlProductBis; const collectionPageTypes = ['collection', 'index', 'search', 'page']; if(collectionPageTypes.indexOf(pageType) !== -1 && (settings[`show_button_on_${pageType}`] || settings[`preorder_${pageType}_enabled`])) { createRestockRocketScript(collectionScriptUrl); } else if(pageType === 'product') { createRestockRocketScript(productScriptUrl); } else if(hijackIntegration) { createRestockRocketScript(preorderCollectionScriptUrl); } else if(usePreorderBuild) { createRestockRocketScript(preorderColl Search|| !(wishlistImageHeart || document.querySelector(wishlistHeartTarget))) return; wishlistHeartsRequested = true; createRestockRocketScript(window._RestockRocketConfig.scriptHost + 'restockrocket-wishlist-hearts.js'); }; loadWishlistHearts(); document.addEventListener('shopify:section:load', loadWishlistHearts); } if (document.querySelector('[data-stoq-wishlist-page]')) { createRestockRocketScript(window._RestockRocketConfig.scriptHost + 'restockrocket-wishlist-page.js'); } try { if (localStorage.getItem('stoq_wl_host') !== window._RestockRocketConfig.scriptHost) localStorage.setItem('stoq_wl_host', window._RestockRocketConfig.scriptHost); } catch (e) {} try { const guestWishlist = window._RestockRocketConfig.customer && !localStorage.getItem('stoq_wl_c') && JSON.parse(localStorage.getItem('stoq_wl')); if (Array.isArray(guestWishlist) && guestWishlist.length) {
- Angola (GBP£)
- Cart 0 itemsArmenia (AMDդր.)
- Ascension Island (SHP£)
- Sorry, looks like we don't have enough of this product.Austria (EUR€)
- Belarus (GBP£) Belgium (EUR€)
- Add order notes Benin (XOFFr) Special instructions for seller
- Bosnia & Herzegovina (BAMКМ)
- Botswana (BWPP) Your cart is currently empty. .cart-collection__title { --text: #ffffff; }
Brakes
Brakes Shimano BR-MT420, Hydr. Disc Brake (180)
| Crankset | Servicing | Complete Brakes ACID MTB Hybrid Pro, 38T
|---|---|
| Brake Rotors | Crankset chainring sizesWorkshop Prices | Brake Pads 38T
| Brake Spares | CassetteDelivery & Returns | Shimano Deore CS-M6100, 10-51T
| See MoreMon - Fri: 08:30 - 17:30 | Sat: 9:00 - 16:00Number of gearsSun: Closed | 0131 374 532412
| EH9 1QN | Rear Suspension[email protected]ChainKMC e12 |
| Wheelset | Finishing Kit await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.shop-follow-button.en.esm.js"); | ACID SLX 25, 32/32 Spokes, 15x110mm/12x148mm, Tubeless Ready
| CountryTires (Front & Rear) | Tyres | Schwalbe Smart Sam, ActiveL, 57-622
| Pedals | TubelessÅland Islands (EUR€) | ACID PP Trekking
| Albania (ALLL) | SaddleSeat Posts & Clamps | ACID Sequence 180
| Seatpost | Andorra (EUR€) | CUBE Dropper Post, Handlebar Lever, Internal Cable Routing, 31.6mm
| Gears & DrivetrainAngola (GBP£) | Front lightSee More | ACID Front Light PRO-E 60 X-Connect, 12V, DC
| Components | Rear lightAscension Island (SHP£) | E-bike Batteries and chargers ACID Mudguard Rear Light PRO-E, 12V, DC
| Austria (EUR€) | KickstandACID FM Pure Kickstand |
| See More | MudguardBelgium (EUR€) | ACID 57 SIC 2.0
| Benin (XOFFr) | BellReich Cycle Bells Ringsound |
| Carrier | Botswana (BWPP) | ACID SIC 2.0 RILink
| British Indian Ocean Territory (USD$) | EngineBosch Drive Unit Performance Line CX max. 120Nm (BDU38) |
| Engine ready for the Bosch 120 Nm update?See More | Burkina Faso (XOFFr) | YES
| Burundi (BIFFr) | BatteryHelmets | Bosch PowerTube 800
| Charger | Cape Verde (CVE$) Clothing | Bosch 2A
| Central African Republic (XAFCFA) | RemoteBosch LED Remote |
| Essentials | DisplayComoros (KMFFr) See More | Bosch Kiox 300
| Congo - Brazzaville (XAFCFA) Cleaners, Degreasers and Lubrication | Net weight (kg)26.2Accessories |
| Maintenance | Gross weight (kg)Côte d’Ivoire (XOFFr) | 31.18
| Croatia (EUR€) Sell Your Bike | Max. system weight (kg)150Contact Us |
| Finance | Max. rider weight (kg)Czechia (CZKKč) | 125
| Denmark (DKKkr.) | Body size1.57m - 1.68m |
| Accessories | Egypt (EGPج.م) | 93523,93339,93546,94799,93483,93955,93971,93354,93363Create account
| Equatorial Guinea (XAFCFA) [] | Search |
| #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; } | Estonia (EUR€) | Country
[email protected]
-
France (EUR€)
I'm looking to buy this product, when will it arrive and how much does postage cost?Andorra (EUR€)
Gabon (XOFFr) Armenia (AMDդր.)
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. French Southern Territories (EUR€) Postage is free on orders over £50. Orders under £50, our postage charge is £3.99.Angola (GBP£) We also have a physical store, if you are local please pop in - ProjektRide Bike Shop Edinburgh
82 Newington Road, EH91QN, Edinburgh.
-
Gambia (GMDD)
Ascension Island (SHP£)
Germany (EUR€) Belarus (GBP£)
#relatedProducts--template--26482384994687__related { --PT: 60px; --PB: 60px; } #relatedProducts--template--26482384994687__related .tabs__nav { --text-size: calc(var(--adjust-heading) * 1.35); } @media screen and (max-width: 767px) { #relatedProducts--template--26482384994687__related .grid--mobile, #relatedProducts--template--26482384994687__related .carousel--mobile { grid-template-columns: repeat(1, minmax(0, 1fr)); } }
Georgia (GBP£) Austria (EUR€)

Early RiderAlgeria (DZDد.ج)
Shop All New Bikes
8150S","requires_shipping":true,"taxable":true,"featured_image":{"id":84875934564735,"product_id":15720153416063,"position":7,"created_at":"2026-06-13T11:49:43+01:00","updated_at":"2026-06-13T11:49:47+01:00","alt":null,"width":2000,"height":1168,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/108150.jpg?v=1781347787","variant_ids":[57747173998975,57747174031743,57747174064511,57747174162815,57747174195583]},"available":false,"name":"CUBE REACTION HYBRID ONE 800 SLEEKGREY\/PRISM - Step-over \/ sleekgrey\/prism \/ S","public_title":"Step-over \/ sleekgrey\/prism \/ S","options":["Step-over","sleekgrey\/prism","S"],"price":269900,"weight":29420,"compare_at_price":null,"inventory_management":"shopify","barcode":"4054571490575","featured_media":{"alt":null,"id":71336083423615,"position":7,"preview_image":{"aspect_ratio":1.712,"height":1168,"width":2000,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/108150.jpg?v=1781347787"}},"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max
See MoreCroatia (EUR€)
Grips & Bar-TapeSee More
Front SuspensionParts & ComponentsSouth Sudan (GBP£)
Seat Posts & Clamps
Tanzania (TZSSh)
150
ComponentsTürkiye (GBP£)
Accessories



We call this frame Easy Entry because that's exactly what it does, but there's more to the Reaction Hybrid than just an elegantly practical design. With the 800Wh PowerTube battery neatly concealed and the Bosch CX drive housed securely, its svelte lines disguise lots of clever features. It's PowerMore-ready, making it easy to add up to 250Wh of extra battery capacity. The integrated seat clamp and cable routing complement the clean aesthetic. There's a pre-installed chain guide, and it's ready to accept ACID mudguards and a luggage carrier... plus, with X-Connect, adding a compatible ACID front light is as simple as plugging it into the headset. And there are sizes to cater for most riders. We've thought of everything, so you can just ride.
Suggested search terms














