The Allant+ 5 is the ultimate electric city bike for riders looking to accelerate their commute. The Bosch smart system offers more connectivity than ever before, so your smart phone can communicate with your bike to log distances and plan routes. It's available with your choice of battery size, ranging from 400- to 800-watt hours, so you can take control of your commute and cruise comfortably all the whole way home
Battery
*Please note – spec applies to all sizes unless listed separatelyBosch PowerTube 625Wh, smart system
M, L, XL Herrmans H-Black MR5-E, 140 Lumen, 40 Lux, LED, headlightL - 23.50 kg / 51.81 lbs
*Mudguard
We reserve the right to make changes to the product information contained on this site at any time without notice, including with respect to equipment, specifications, models, colours, materials and pricing. Due to supply chain issues, compatible parts may be substituted at any time without notice. The prices shown are the manufacturer's suggested retail prices.Size:
M, L, XL SKS plastic, rear
[]
Size:
M, L, XL
{"@context":"http:\/\/schema.org\/","@id":"\/products\/trek-allant-8#product","@type":"ProductGroup","brand":{"@type":"Brand","name":"Trek"},"category":"Electric Bikes","description":"The Allant+ 7 is an award-winning e-bike built for riders and commuters who want a stylish, durable e-bike with the added road-smoothing benefits of a suspension fork. The powerful and connected Bosch smart system, quality parts and a wealth of thoughtful design details make this electric bike a great solution for getting around town every day.\n\n*Please note – spec applies to all sizes unless listed separately\n\n\nFrameset\n\n\n\n\n\n\n\nFork\nSR Suntour XCR32, coil spring, preload adjuster, lockout,100 mm QR, 63 mm travel\n\n\nMax compatible fork travel\n63mm\n\n\n\n\n\n\n\n\nWheels\n\n\n\n\n\n\n\nHub front\nShimano TX505, CenterLock\n\n\nHub rear\nShimano TX505, CenterLock\n\n\nRim\nAlex MD35, tubeless compatible, 32-hole, 35 mm width, Presta valve\n\n\nTyre\nSchwalbe G-One, Performance, RaceGuard, with reflective strip, 57-584\n\n\nMax tyre size\n27.5x2.40\"\n\n\n\n\n\n\n\n\nE-system\n\n\n\n\n\n\n\nBattery\nBosch PowerTube 625Wh, smart system\n\n\nCharger\nBosch standard 4A, 230V, smart system\n\n\n*Computer\n\nSize: M, L, XLBosch Kiox 300, smart system\n\n\n\nSize: M, L, XLBosch LED remote, smart system\n\n\nMotor\nBosch Performance Line CX, smart system, magnesium motor body, 85 Nm\n\n\n\n\n\n\n\n\nDrivetrain\n\n\n\n\n\n\n\nShifter\nShimano Deore M5130, 10-speed\n\n\nRear derailleur\nShimano Deore M5130\n\n\n*Crank\n\nSize: MProWheel alloy, 170 mm length\n\n\n\n\nSize: L, XLProWheel alloy, 175 mm length\n\n\n\nChainring\nProWheel 40T narrow\/wide steel, w\/alloy guard\n\n\nCassette\nShimano LG400, 11-43, 10-speed\n\n\nChain\nShimano LG500, 9\/10\/11-speed\n\n\nPedal\nslip-proof pedals with reflectors\n\n\nMax. chainring size\n1x: 48T\n\n\n\n\n\n\n\n\nComponents\n\n\n\n\n\n\n\nSaddle\nBontrager Commuter Comp\n\n\n*Seatpost\n\nSize: MBontrager alloy, 31.6 mm, 12 mm offset, 330 mm length\n\n\n\nSize: L, XLBontrager alloy, 31.6 mm, 12 mm offset, 400 mm length\n\n\nHandlebar\nAlloy lowriser, 31.8 mm, 25 mm rise, 11-degree backsweep, 690 mm width\n\n\nGrips\nHerrmans Clik, ergonomic, lock-on\n\n\n*Stem\n\nSize: MBontrager alloy, 31.8 mm clamp, adjustable rise, Blendr-compatible, 85 mm length\n\n\n\n\nSize: L, XLBontrager alloy, 31.8 mm clamp, adjustable rise, Blendr-compatible, 105 mm length\n\n\n\nHead set\nFSA Integrated, sealed cartridge bearing, 1-1\/8\" top, 1.5\" bottom\n\n\n*Brake rotor\n\nSize: M, L, XLShimano RT30, CentreLock, 180 mm\n\n\n\nSize: M, L, XLShimano EM300, CentreLock, 180 mm\n\n\nBrake Set\nTektro HD-M275 hydraulic disc\n\n\nRotor size\nMax brake rotor sizes: 180mm front \u0026amp; rear\n\n\n\n\n\n\n\n\nAccessories\n\n\n\n\n\n\n\n*Light\n\nSize: M, L, XLSpanninga SOLO for e-bike\n\n\n\n\nSize: M, L, XLHerrmans H-Black MR8-E, 180 Lumen, 60 Lux, LED, headlight\n\n\nKickstand\nPletscher Comp Flex 18\n\n\nCargo rack\nMIK-compatible alloy rear rack, maximum load 25 kg\n\n\n*Mudguard\n\nSize: M, L, XLSKS plastic, front\n\n\n\n\nSize: M, L, XLSKS plastic, rear\n\n\n\n\n\n\n\n\n\nWeight\n\n\n\n\n\n\n\nWeight\nL - 23.50 kg \/ 51.81 lbs\n\n\nWeight limit\nThis bike has a maximum total weight limit (combined weight of bicycle, rider and cargo) of 136 kg (300 lb).\n\n\n\n\n\n\n\n\n \nWe reserve the right to make changes to the product information contained on this site at any time without notice, including with respect to equipment, specifications, models, colours, materials and pricing. Due to supply chain issues, compatible parts may be substituted at any time without notice. The prices shown are the manufacturer's suggested retail prices.\n\n\nBike and frame weights are based on pre-production painted frames at time of publication. Weights may vary in final production.\n","hasVariant":[{"@id":"\/products\/trek-allant-8?variant=45856724877538#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/Allant_Plus_7_Men_23_36931_B_Primary.webp?v=1724751699\u0026width=1920","name":"Trek Allant+ 7 - Medium","offers":{"@id":"\/products\/trek-allant-8?variant=45856724877538#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"3700.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/trek-allant-8?variant=45856724877538"},"sku":"5276588"},{"@id":"\/products\/trek-allant-8?variant=45856724910306#variant","@type":"Product","image":"https:\/\/projektride.co.uk\/cdn\/shop\/files\/Allant_Plus_7_Men_23_36931_B_Primary.webp?v=1724751699\u0026width=1920","name":"Trek Allant+ 7 - Large","offers":{"@id":"\/products\/trek-allant-8?variant=45856724910306#offer","@type":"Offer","availability":"http:\/\/schema.org\/OutOfStock","price":"3700.00","priceCurrency":"GBP","url":"https:\/\/projektride.co.uk\/products\/trek-allant-8?variant=45856724910306"},"sku":"5276589"}],"name":"Trek Allant+ 7","productGroupID":"8687703228642","url":"https:\/\/projektride.co.uk\/products\/trek-allant-8"}
SKS plastic, front1
#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; }
Frequently Asked Questions
WeightI'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
Weight
L - 24.60 kg / 54.24 lbs (with 545Wh battery)
I'm looking to buy this product, when will it arrive and how much does postage cost?
Weight limitIf 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.
This bike has a maximum total weight limit (combined weight of bicycle, rider and cargo) of 136 kg (300 lb).We also have a physical store, if you are local please pop in -
We reserve the right to make changes to the product information contained on this site at any time without notice, including with respect to equipment, specifications, models, colours, materials and pricing. Due to supply chain issues, compatible parts may be substituted at any time without notice. The prices shown are the manufacturer's suggested retail prices.
Bike and frame weights are based on pre-production painted frames at time of publication. Weights may vary in final production.
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.
ed_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":8687703228642,"title":"Trek Allant+ 7","handle":"trek-allant-8","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eThe Allant+ 7 is an award-winning e-bike built for riders and commuters who want a stylish, durable e-bike with the added road-smoothing benefits of a suspension fork. The powerful and connected Bosch smart system, quality parts and a wealth of thoughtful design details make this electric bike a great solution for getting around town every day.\u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv role=\"tablist\" aria-multiselectable=\"true\" class=\"pdl-collapse pdp-spec-collapse\" qaid=\"pdp-spec-collapse\"\u003e\n\u003cp\u003e*Please note – spec applies to all sizes unless listed separately\u003c\/p\u003e\n\u003cdiv data-v-5bd42f3c=\"\" data-v-05762449=\"\" id=\"pdl-collapse-item-00xwdi\" name=
\"185\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-00xwdi\" aria-describedby=\"pdl-collapse-content-00xwdi\" class=\"\" aria-expanded=\"true\" qaid=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003eFrameset\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-00xwdi\" type=\"button\" class=\"pdl-collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentcolor\" aria-hidden=\"true\" role=\"presentation\" class=\"pdl-collapse-item__icon pdl-icon pdl-icon--size-24 is-active\" qaid=\"\"\u003e\u003cpath d=\"M0 0h24v24H0z\" fill=\"none\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/button\u003e\n\u003c\/div
ow._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 (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;
}
// 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
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 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')
function applyTranslations(settings) {
try {
// Skip translation logic entirely if multi-language is not enabled
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) {
// 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
];
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;
}
}
// Setup event listener for cart selling plan updates
// This must be called before any scripts are loaded to avoid race conditions
function setupCartSellingPlanUpdater(settings) {
// Setup listener regardless - updateCartSellingPlans has its own guards
// This ensures cleanup happens even when preorders are disabled globally
// Listen for stoq:inventory-data-loaded event dispatched by api.js
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);
});
}
});
}
// 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.S
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 fallbac