Mauritania (GBP£)
Mauritius (MUR₨)
Mayotte (EUR€)
Moldova (MDLL)
Monaco (EUR€)
Montenegro (EUR€)
Morocco (MADد.م.)
Mozambique (GBP£)
Namibia (GBP£)
Tristan da Cunha (GBP£)
Tunisia (GBP£)
Türkiye (GBP£)
Uganda (UGXUSh)
Ukraine (UAH₴)
United Kingdom (GBP£)
United States (GBP£)
Vatican City (EUR€)
Western Sahara (MADد.م.)
Zambia (GBP£)
Zimbabwe (USD$)
Shop All
BUY
SELL
RIDE CONFIDENT
#productTemplate--template--26482384994687__main { --PT: 60px; --PB: 30px; }
Sale
Home
/
All Products
/
ENVE 300mm Carbon Seatpost with Di2 Plug
ENVE 300mm Carbon Seatpost with Di2 Plug
Size
25.4mm post - 300mm length - 25mm offset
27.2mm post - 300mm length - 0mm offset
27.2mm post - 300mm length - 25mm offset
{"id":55175487652223,"title":"25.4mm post - 300mm length - 25mm offset","option1":"25.4mm post - 300mm length - 25mm offset","option2":null,"option3":null,"sku":"EN530025425","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"ENVE 300mm Carbon Seatpost with Di2 Plug - 25.4mm post - 300mm length - 25mm offset","public_title":"25.4mm post - 300mm length - 25mm offset","options":["25.4mm post - 300mm length - 25mm offset"],"price":32000,"weight":0,"compare_at_price":33000,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}
Quantity
1
1
Electric Bikes
Réunion (EUR€) Ethiopia (ETBBr)
Kids Bikes
Romania (RONLei) Faroe Islands (DKKkr.)
Frames
Home
Rwanda (RWFFRw) Finland (EUR€)
Shop by Brand
Hire
See More
San Marino (EUR€) France (EUR€)
Bikes
Gloria
São Tomé & Príncipe (STDDb) French Southern Territories (EUR€)
New Bikes
Trek
Shop All New Bikes
Senegal (XOFFr) Gabon (XOFFr)
Amflow
Road / Gravel / Touring Bikes
VelduroSerbia (RSDРСД) Gambia (GMDD)
Hybrid / City Bikes
Yeti
Seychelles (GBP£) Mountain BikesGeorgia (GBP£)
Ridgeback
Electric Bikes
Sierra Leone (SLLLe) Germany (EUR€)
Brother
Kids Bikes
GenesisSlovakia (EUR€) Ghana (GBP£)
Frames
Singular Shop by Brand
Slovenia (EUR€) Gibraltar (GBP£)
Gloria
Enigma
Somalia (GBP£) TrekGreece (EUR€)
Frog
Amflow
KonaSouth Africa (GBP£) Greenland (DKKkr.)
Velduro
Surly
South Sudan (GBP£) Guadeloupe (EUR€)
Yeti
UTO (ex Eovolt)
Spain (EUR€) RidgebackGuernsey (GBP£)
Early Rider
Brother
Argon 18St. Helena (SHP£) Guinea (GNFFr)
Genesis
Sudan (GBP£) Guinea-Bissau (XOFFr)
Singular
Second-Hand Bikes
Svalbard & Jan Mayen (GBP£) EnigmaHungary (HUFFt)
See More
Frog
Sweden (SEKkr) Iceland (ISKkr)
Shop All Second-Hand
Kona
Switzerland (CHFCHF) Ireland (EUR€)
Custom Builds Surly
See More
Tanzania (TZSSh) UTO (ex Eovolt)Isle of Man (GBP£)
Custom Builds for sale Early Rider
Togo (XOFFr) Italy (EUR€)
Custom Build Inspiration Argon 18
Tristan da Cunha (GBP£) Second-Hand BikesJersey (GBP£)
Shop All Second-Hand
ServicesTunisia (GBP£) Custom BuildsKenya (KESKSh)
See More Custom Builds for sale
Türkiye (GBP£) Kosovo (EUR€)
Custom Build Inspiration
Workshop
Uganda (UGXUSh) Latvia (EUR€)
Ukraine (UAH₴) Lesotho (GBP£)
Services
United Kingdom (GBP£) WorkshopLiberia (GBP£)
Workshop Prices
United States (GBP£) Libya (GBP£)
Book a Service
Vatican City (EUR€) Track Your ServiceLiechtenstein (CHFCHF)
Other
Custom BuildsLithuania (EUR€)
Cycle To Work Schemes
Luxembourg (EUR€)
Seat Posts & Clamps
Pedals
Gears & Drivetrain
See More
Components
E-bike Batteries and chargers
Wheels
See More
Complete Wheels
Tubeless
Tools & Maintenance
Clothing and Protection
See More
ProjektRide Merchandise
Helmets
Gloves
Clothing
Tunisia (GBP£)
Türkiye (GBP£)
Uganda (UGXUSh)
Ukraine (UAH₴)
United Kingdom (GBP£)
tch (e) { window._RestockRocketConfig.appVersion = ''; } const SETTINGS_CACHE_DURATION = 15 * 60 * 1000; const LIQUID_CACHE_MAX_AGE = 15 * 60; const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt; if (!liquidRenderedAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) { console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh'); window._RestockRocketConfig.isLiquidCacheFresh = true; window._RestockRocketConfig.liquidCacheAge = null; } else { const now = Math.floor(Date.now() / 1000); const liquidCacheAge = now - liquidRenderedAt; window._RestockRocketConfig.liquidCacheAge = Math.max(0, liquidCacheAge); 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 (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; } if (settings.multi_language_enabled) { if (!settings.translations) { console.debug('STOQ - multi-language enabled but no translation data in cache, fetching fresh'); return null; } if (window._RestockRocketConfig.normalizedLocale &
<
.body.appendChild(plainScriptElement); }; restockRocketScriptElement.src = scriptUrl; document.body.appendChild(restockRocketScriptElement); } createRestockRocketContainer() console.debug('STOQ - extension activated') try { const _stoqInitConfig = window._RestockRocketConfig; const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqInitConfig.product.variants)) ? _stoqInitConfig.product.variants.map(function(v) { return v.id }) : []; const _stoqSelectedVariantId = _stoqInitConfig.selected_variant_id; var _stoqPageSeq = 0; try { _stoqPageSeq = (parseInt(window.sessionStorage.getItem('_stoq_pls') || '0', 10) || 0) + 1; window.sessionStorage.setItem('_stoq_pls', String(_stoqPageSeq)); } catch (e) { } Shopify?.analytics?.publish?.('stoq_initialized', { cart_token: _stoqInitConfig.cartToken || '', page_url: window.location.origin + window.location.pathname, page_type: _stoqInitConfig.pageType || '',
.closest('.shopify-payment-button, shopify-payment-terms'); if (!host) return; var channel = host.matches && host.matches('shopify-payment-terms') ? 'shop_pay_installments' : 'buy_now'; var form = host.closest('form'); var vidEl = form && form.querySelector('[name="id"]'); var variantId = (vidEl && vidEl.value) || _sqTrack.selected_variant_id || ''; var _sqVidNum = Number(variantId); var _sqPlan = null; var _sqPlans = Array.isArray(_sqTrack.sellingPlans) ? _sqTrack.sellingPlans : []; var _sqMktId = Number(_sqTrack.marketId); var _sqOffersOn = !!(_sqTrack.readFlags && _sqTrack.readFlags.enable_storefront_plan_offers === true); var _sqAlloc = _sqOffersOn ? ((_sqTrack.offerAllocations && _sqTrack.offerAllocations[_sqVidNum]) || (_sqTrack.variantSellingPlanIds && _sqTrack.variantSellingPlanIds[_sqVidNum])) : null; var _sqPlanIds = function (pl)
_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 &&
<
lassList.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; if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) { return Promise.reject(new Error('Storefront API unavailable')); } return fetch( `https://${cfg.shop}/api/${cfg.storefrontApiVersion}/graphql.json`, { method: 'POST', headers: { 'Content-Type': 'appl
field.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.shop.translations.value); } if (settings.multi_language_enabled && !settings.translations) { throw new Error('settings metafield carries no translations'); } return
se(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.debug('STOQ - using expired cached settings as fallback'); initializeScripts(cachedSettings); } else { console.error('STOQ - failed to load settings:', error);
source.apply); }; const flagOn = !!cfg.readFlags && cfg.readFlags[source.flag] === true; if (!flagOn || source.embedOnly === true) { 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: 'integrations', flag: 'enable_storefront_integrations_read', isValid: function(value) { return Array.isArray(value); }, apply: function(dat
rce_embed_selling_plans === true; const staleRefresh = !window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid; if (forceEmbedSellingPlans || staleRefresh) { console.debug('STOQ - refreshing selling_plans' + (staleRefresh ? ' + integrations (Liquid cache stale)' : ' (force_embed_selling_plans)')); const refreshes = [refreshSellingPlans(forceEmbedSellingPlans)]; if (staleRefresh) { refreshes.push(refreshIntegrations()); } Promise.race([ Promise.all(refreshes), 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.i
artForms|setupAddToCartForm|teardownAddToCartForm|addDiscountedPrice|removeDiscountedPrice)\b/.test(settings.js_config || ''); const preorderCollectionScriptUrl = 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(hijackIntegra
}; loadWishlistHearts(); document.addEventListener('shopify:section:load', loadWishlistHearts); } try { const guestWishlist = window._RestockRocketConfig.customer && !localStorage.getItem('stoq_wl_c') && JSON.parse(localStorage.getItem('stoq_wl')); if (Array.isArray(guestWishlist) && guestWishlist.length) { createRestockRocketScript(window._RestockRocketConfig.scriptHost + 'restockrocket-wishlist-prompt.js'); } } catch (e) {} } 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); } }
html.stoq-buy-now-pending .shopify-payment-button{pointer-events:none!important}
Spain (EUR€)
St. Helena (SHP£)
Sudan (GBP£)
Svalbard & Jan Mayen (GBP£) Romania (RONLei)
Sweden (SEKkr) Rwanda (RWFFRw)
Switzerland (CHFCHF) San Marino (EUR€)
Tanzania (TZSSh) São Tomé & Príncipe (STDDb)
Togo (XOFFr) Senegal (XOFFr)
Tristan da Cunha (GBP£) Serbia (RSDРСД)
Tunisia (GBP£) Seychelles (GBP£)
Türkiye (GBP£) Sierra Leone (SLLLe)
Uganda (UGXUSh) Slovakia (EUR€)
Ukraine (UAH₴) Slovenia (EUR€)
United Kingdom (GBP£) Somalia (GBP£)
United States (GBP£) South Africa (GBP£)
Vatican City (EUR€) South Sudan (GBP£)
Western Sahara (MADد.م.) Spain (EUR€)
Zambia (GBP£) St. Helena (SHP£)
Zimbabwe (USD$) Sudan (GBP£)
Svalbard & Jan Mayen (GBP£)
Sweden (SEKkr)
Shop AllSwitzerland (CHFCHF)
Tanzania (TZSSh)
Togo (XOFFr)
Tristan da Cunha (GBP£)
Tunisia (GBP£)
Türkiye (GBP£)
Uganda (UGXUSh)
BUY
Ukraine (UAH₴)
SELL
RIDE CONFIDENT
United Kingdom (GBP£)
United States (GBP£)
#productTemplate--template--26482384994687__main { --PT: 60px; --PB: 30px; }
Vatican City (EUR€)
Western Sahara (MADد.م.)
Zambia (GBP£)
HomeZimbabwe (USD$)
/
All Bikes
/
Early Rider Belter 20 Brushed Aluminium
Early Rider Belter 20 Brushed Aluminium
© 2026,
QuantityProjektRide
.
1 Powered by
Shopify
.
1
American Express
Apple Pay
2
3
4
5
6
7
8
9
10 +
Quantity
Decrease Quantity
Increase Quantity
Sold Out - Notify Me When It’s Available
window.appBlockPlacements ||= []; if (window.klarnaAppBlocksManager) { window.klarnaAppBlocksManager.push({ productVariants: [{"id":56393233957247,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"BR20-BR-2-IC","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Early Rider Belter 20 Brushed Aluminium","public_title":null,"options":["Default Title"],"price":64900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}], templateName: 'product', dataKey: 'top-strip-promotion-badge', storefrontCurrency: 'GBP', storefrontCountry: 'GB', storefrontLanguage: 'en', shopLocale: 'en', shopDomain: 'projektride.co.uk', variantPrice: '64900', cartPrice: '0', selector: 'shopify-osm-AZkxmY3VSTnFmNnNiW__klarna_on_site_messaging_app_block_k6rYHt', topPadding: '0', bottomPadding: '0', }); } else { window.appBlockPlacements.push({ productVariants: [{"id":56393233957247,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"BR20-BR-2-IC","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Early Rider Belter 20 Brushed Aluminium","public_title":null,"options":["Default Title"],"price":64900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}], templateName: 'product', shopLocale: 'en', dataKey: 'top-strip-promotion-badge', storefrontCurrency: 'GBP', storefrontCountry: 'GB', storefrontLanguage: 'en', shopDomain: 'projektride.co.uk', variantPrice: '64900', cartPrice: '0', selector: 'shopify-osm-AZkxmY3VSTnFmNnNiW__klarna_on_site_messaging_app_block_k6rYHt', topPadding: '0', bottomPadding: '0', }); }
The Belter 20 Auto features a lightweight aluminum frame with updated geometry for greater stability and agile handling. The low-maintenance 8mm belt drivetrain pairs with a Sturmey Archer 2-speed automatic rear hub, delivering smooth, gear-free shifting that adapts to the rider's pace. Sliding dropouts, sealed bearing 20" wheels, and Schwalbe Billy Bonkers 2.0" tires ensure a durable, confident ride. Smaller chainring diameters and kid-optimized gearing make this the ideal next step for young urban riders.
[]
{"@context":"http:\/\/schema.org\/","@id":"\/products\/early-rider-belter-20-brushed-aluminium#product","@type":"Product","brand":{"@type":"Brand","name":"Early Rider"},"category":"Bicycles","description":"The Belter 20 Auto features a lightweight aluminum frame with updated geometry for greater stability and agile handling. The low-maintenance 8mm belt drivetrain pairs with a Sturmey Archer 2-speed automatic rear hub, delivering smooth, gear-free shifting that adapts to the rider's pace. Sliding dropouts, sealed bearing 20\" wheels, and Schwalbe Billy Bonkers 2.0\" tires ensure a durable, confident ride. Smaller chainring diameters and kid-optimized gearing make this the ideal next step for young urban riders.","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/Belter20_1753974596.jpg?v=1763052001\u0026width=1920","name":"Early Rider Belter 20 Brushed Aluminium","offers":{"@id":"\/products\/early-rider-belter-20-brushed-aluminium?variant=56393233957247#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"649.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/early-rider-belter-20-brushed-aluminium?variant=56393233957247"},"sku":"BR20-BR-2-IC","url":"https:\/\/projektride.co.uk\/products\/early-rider-belter-20-brushed-aluminium"}
#Accordions--template--26482384994687__section_accordions_with_ima
Mali (XOFFr)
Terms of Service
Malta (EUR€) Refund policy
Mauritania (GBP£)
Insure Your Bike
Privacy Policy
Cookie Policy
Terms of Service
Refund policy
Open cart
Congo - Brazzaville (XAFCFA)
Denmark (DKKkr.)