Header Image

_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"col-md-8\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"vc_custom_1581380685719\" data-mce-fragment=\"1\"\u003e\n\u003cdiv id=\"text-block-10\" class=\"mk-text-block jupiter-donut-\" data-mce-fragment=\"1\"\u003e\n\u003ch4 data-mce-fragment=\"1\"\u003eEJOY. CUTE. SMART. FEARLESS.\u003c\/h4\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vc_custom_1581731390792\" data-mce-fragment=\"1\"\u003e\n\u003cdiv id=\"text-block-11\" class=\"mk-text-block jupiter-donut-\" data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eInspired by the lines of vintage Italian scooters and classic German cars, the eJoy combines the timeless language of vehicle design of the past with modern technology and our Etility® design. The result is an ebike that’s both charming and capable.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe powerful and efficient Bosch Active Plus\/Bosch Performance electric motor pairs w ith a sturdy oversized rear rack and an optional frame-mounted front tray to give you serious load capacity. Its comfortable and upright, yet powerful riding position makes riding easy and fun, while the extra-strong aluminium frame with its low step through design gives you a smooth ride with extra control. The eJoy is a true two-wheeled electrical vehicle that allows you to leave your car behind, whether you’re running errands or on a scenic joyride.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e \u003c\/p\u003e\n\u003cdiv class=\"wpb_column vc_column_container vc_col-sm-6\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"vc_column-inner\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"wpb_wrapper\" data-mce-fragment=\"1\"\u003e\n\u003cdiv class=\"vc_custom_1582058674598\" data-mce-fragment=\"1\"\u003e\n\u003cdiv id=\"text-block-33\" class=\"mk-text-block jupiter-donut- bike-specs\" data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eSP
ECS:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eBosch Performance 250W, 65Nm, GEN 3\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eBosch Purion On-Board Computer (5 Riding Modes)\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eBosch Powerpack 400Wh\/500Wh Lithium-Ion Battery\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eRange 30-90mi (50-145km) Dep. On Mode\/Battery\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eBosch 2A\/4A Compact Charger (6.5h\/4.5h Full Charge)\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eAssisted Speed: 25km\/h\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eShimano Deore 10-Speed and Hydraulic Disk Brakes\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e6061 Aluminum Alloy Frame with Front Tray Mounts\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eOversized CRMO Fork with Integrated Headset\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003ePuncture R esistance 26” x 2.35” Balloon Tyres (60psi)\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eGerman Supernova Mini 2 Front Light and E3 Rear Light\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eFrame-Mounted Abus Lock with Same Keys as Battery\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eLarge Aluminum Rear Rack (Max. Load 85lbs\/40kg)\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eSecure Yepp And Hamax Baby Seat Compatible (1 Seat)\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eFits Most Aftermarket Pannier Bags and Accessories\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eSpecial Benno Front Trays and Bags Sold Separately\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eOne Frame Size (Fits Riders From 5’0” to 6’0”)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e \u003c\/p\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\/div\u003e\n\u00
3cp data-mce-fragment=\"1\"\u003e \u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e \u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e \u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eWARNING:\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003eWhen carrying passengers, rear wheel\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003cstrong data-mce-fragment=\"1\"\u003eMUST\u003c\/strong\u003e\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003ebe covered! Install Benno Wheel Guards or Pannier Bags. Failure to do so could result in serious injury! Make sure that no parts of the body, clothing or load come near moving parts on the bicycle, such as chain, spokes, tyres or brakes.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cbr data-mce-fragment=\"1\"\u003eDo not exceed individual load ratings and max gross weight.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"col-md-4\" data-mce-fragment= \"1\"\u003e\n\u003cdiv class=\"logo-brand\" data-mce-fragment=\"1\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e"};window._RestockRocketConfig.variantsInventoryPolicy = {44199668023522 : "deny",44199668056290 : "deny",44199668089058 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {44199668023522 : parseInt("2"),44199668056290 : parseInt("2"),44199668089058 : parseInt("2"),}; window._RestockRocketConfig.variantsPreorderCount = {44199668023522 : parseInt(""),44199668056290 : parseInt(""),44199668089058 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {44199668023522 : null,44199668056290 : null,44199668089058 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {44199668023522 : parseInt(""),44199668056290 : parseInt(""),44199668089058 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {44199668023522 : null,44199668056290 : null,44199668089058 : null,}; window._RestockRocketConfig.variantsShippingTom/extensions/01a0141e-6f2a-7bbb-b429-5a0e333a31f5/restockrocket-1-564/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/01a0141e-6f2a-7bbb-b429-5a0e333a31f5/restockrocket-1-564/assets/restockrocket-collection.js' window._RestockRocketConfig.scriptUrlProductBis = 'https://cdn.shopify.com/extensions/01a0141e-6f2a-7bbb-b429-5a0e333a31f5/restockrocket-1-564/assets/restockrocket-product-bis.js' window._RestockRocketConfig.scriptUrlCollectionBis = 'https://cdn.shopify.com/extensions/01a0141e-6f2a-7bbb-b429-5a0e333a31f5/restockrocket-1-564/assets/restockrocket-collection-bis.js' window._RestockRocketConfig.scriptHost = window._RestockRocketConfig.scriptUrlProduct.substring(0, window._RestockRocketConfig.scriptUrlProduct.lastIndexOf('/') + 1) window._RestockRocketConfig.host = (window._RestockRocketConfig.cachedSettings && window._RestockRocketConfig.cachedSettings.api_host) || 'https://app.restockrocket.io' try { const _stoqVersion Match = window._RestockRocketConfig.scriptHost.match(/(\d+)\/?(?:assets\/?)?$/); window._RestockRocketConfig.appVersion = (_stoqVersionMatch && _stoqVersionMatch[1]) || ''; } catch (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 & !Object.prototype.hasOwnProperty.call(settings.translations, window._RestockRocketConfig.normalizedLocale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } } 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 < 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') try { const _stoqInitConfig = window._RestockRocketConfig; const _stoqDetectedVariantIds = (_stoqInitConfig.product && Array.isArray(_stoqI nitConfig.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.href, page_type: _stoqInitConfig.pageType || '', shop_domain: _stoqInitConfig.shop || '', market_id: _stoqInitConfig.marketId || '', country_code: _stoqInitConfig.countryIsoCode || '', detected_variant_ids: _stoqDetectedVariantIds, selected_variant_id: _stoqSelectedVariantId || '', page_load_seq: _stoqPageSeq, liquid_rendered_at: _stoqInitConfig.liquidRenderedAt || 0, app_version: _stoqInitConfig.appVersion || '', } 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 || {})); 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]; 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; } } function setupCartSellingPlanUpdater(settings) { window.addEventListener('stoq:inventory-data-loaded', function(event) { console.debug('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 loadStorefrontSettings() { const cfg = window._RestockRocketConfig; if (!cfg.storefrontAccessToken || cfg.disableStorefrontApi === true) return; function run() { const query = 'query StoqSettings($namespace: String!) { shop { metafield(namespace: $namespace, key: "settings") { value } } }'; fetch( `https://${cfg.shop}/api/2025-07/graphql.json`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Shopify-Storefront-Access-Token': cfg.storefrontAccessToken, }, body: JSON.stringify({ query: query, variables: { namespace: cfg.metafieldNamespace } }), } ) .then(function(response) { if (!response.ok) { throw new Error('Storefront API HTTP ' + response.s tatus); } return response.json(); }) .then(function(body) { if (body && body.errors && body.errors.length) { throw new Error('Storefront API errors: ' + body.errors.map(function(e) { return e && e.message; }).join(', ')); } const value = body && body.data && body.data.shop && body.data.shop.metafield && body.data.shop.metafield.value; if (!value) { throw new Error('Storefront API returned no settings metafield value'); } cfg.storefrontSettings = JSON.parse(value); console.debug('STOQ - stored live settings from Storefront API on config.storefrontSettings'); }) .catch(function(e) { console.debug('STOQ - Storefront settings fetch failed (non-fatal):', e && e.message); }); } if (typeof window.requestIdleCallback === 'function') { window.requestIdleCallback(run, { timeout: 5000 }); } else { setTimeout(run, 0); } })(); 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.Shopify.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 n ot 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); } }) .catch(function(e) { console.error(e) }) } function fetchEmbedConfig(endpoint, apply) { return fetch( `${window._RestockRocketConfig.host}/api/v1/embed/${endpoint}.json`, { headers: { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 'ngrok-skip-browser-warning': 'skip' } } ) .then(function(response) { if (!response.ok) throw new Error(`Failed to fetch ${endpoint}`); return response.json(); }) .then(function(data) { try { apply(data); } catch (applyError) {
console.error('STOQ - apply failed for ' + endpoint + ':', applyError); throw applyError; } }) .catch(function(error) { console.debug(`STOQ - using cached ${endpoint}:`, error.message); }); } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); if (!window._RestockRocketConfig.isLiquidCacheFresh && !settings.disable_refresh_on_stale_liquid) { console.debug('STOQ - Liquid cache stale, refreshing selling_plans + integrations'); Promise.race([ Promise.all([ fetchEmbedConfig('selling_plans', function(data) { if (data && Array.isArray(data.plans)) { window._RestockRocketConfig.sellingPlans = data.plans; window._RestockRocketConfig.disabledSellingPlanIds = data.disabled_plan_ids || []; } }), fetchEmbed Config('integrations', function(data) { if (Array.isArray(data)) { window._RestockRocketConfig.integrations = data; } }) ]), 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) && window._RestockRocketConfig.sellingPlans.some(function(plan) { return plan && plan.enabled; }); const hasDisabledPlanIds = Array.isArray(window._RestockRocketConfig.disabledSellingPlanIds) && w
indow._RestockRocketConfig.disabledSellingPlanIds.length > 0; const usePreorderBuild = settings.preorder_enabled || hasEnabledOffer || hasDisabledPlanIds; const collectionScriptUrl = usePreorderBuild ? window._RestockRocketConfig.scriptUrlCollection : window._RestockRocketConfig.scriptUrlCollectionBis; const productScriptUrl = usePreorderBuild ? window._RestockRocketConfig.scriptUrlProduct : window._RestockRocketConfig.scriptUrlProductBis; const pageType = window._RestockRocketConfig.pageType; 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(window._RestockRocketC onfig.scriptUrlCollection); } else if(usePreorderBuild) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else { console.debug(`STOQ - no scripts enabled for ${pageType}`); } 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}

Equipped for every eventuality, the Ridgeback Element EQ comes with all the accessories a modern, premium utility bike needs.


Perfect for the city, the lightweight aluminium frame and fork give a responsive ride with a riser bar providing a more upright position for predictable handling.


Optimised for cycling in all conditions, the Element is provided with everything you need to make riding for transport comfortable and easy.


Mudguards keep road spray at bay in wet conditions, a chain guard keeps oil away from trousers and hub dynamo lights shine the way at night.


A rear rack is perfect for hosting pannier bags, negating the need for a rucksack and a kickstand means you won't be searching for somewhere to lean the bike.


Smooth and reliable Shimano drivetrain provides 16 gears, a perfect combination for everything you're likely to encounter in an urban environment.


Wide tyres provide additional comfort over rough surfaces and hydraulic disc brakes are powerful in all conditions.

 

 Hydraulic Disc
 Alloy
 Alloy
 Shimano BB-UN26 68/122.5mm
 700c
 Shimano BL-MT201 Hydraulic Brakes
 Urban and Commute
 Shimano BR-MT201 Hydraulic Disc Brake
 Shimano CS-HG41-8 11-34T
 KMC X8
 Aluminium Disc / Mudguard Eyelets
 Shimano Tourney FD-TY710
 Ridgeback
 Neco H-148-MP 1-1/8 inch
 Shimano DH-3D37 / KT TC7R / front / rear
 Fitted
 Resin Metro
 Shimano Acera RD-M360
 Shining DB-31 /
 Ridgeback Custom
 Alloy 27.2 x 350 mm
 Shimano Acera SL-M315 Rapidfire Plus 2 x 8 Speed
 Steel 14 g
 Ridgeback 70mm +7deg
 Schwalbe Little Big Ben Relfex 700 x 40c
 Crossbar
 Mens
 Ridgeback reserves the right to change product specifications without notice. Ridgeback will always ensure that these changes do not detract from the ride experience of the bike.

Frequently Asked Questions

  • 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

  • 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.

    We also have a physical store, if you are local please pop in -

    ProjektRide Bike Shop Edinburgh

    82 Newington Road, EH91QN, Edinburgh.