featured_media":{"alt":null,"id":29164641943778,"position":1,"preview_image":{"aspect_ratio":1.603,"height":766,"width":1228,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-01-27at21.12.50.png?v=1643318150"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42354619744482,"title":"60 \/ Pea Lime Soup","option1":"60","option2":"Pea Lime Soup","option3":null,"sku":"FMSUDTF80G","requires_shipping":true,"taxable":true,"featured_image":{"id":36611095134434,"product_id":7524204347618,"position":1,"created_at":"2022-01-27T21:15:42+00:00","updated_at":"2022-01-27T21:15:50+00:00","alt":null,"width":1228,"height":766,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-01-27at21.12.50.png?v=1643318150","variant_ids":[42354619154658,42354619220194,42354619285730,42354619351266,42354619416802,42354619482338,42354619547874,42354619613410,42354619678946,42354619744482,42354619810018,42354619875554]},"available":true,"name":"Surly Disc Trucker Frameset - Pea Lime Soup - 60 \/
Pea Lime Soup","public_title":"60 \/ Pea Lime Soup","options":["60","Pea Lime Soup"],"price":95000,"weight":15000,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":29164641943778,"position":1,"preview_image":{"aspect_ratio":1.603,"height":766,"width":1228,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-01-27at21.12.50.png?v=1643318150"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42354619810018,"title":"62 \/ Pea Lime Soup","option1":"62","option2":"Pea Lime Soup","option3":null,"sku":"FMSUDTF82G","requires_shipping":true,"taxable":true,"featured_image":{"id":36611095134434,"product_id":7524204347618,"position":1,"created_at":"2022-01-27T21:15:42+00:00","updated_at":"2022-01-27T21:15:50+00:00","alt":null,"width":1228,"height":766,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-01-27at21.12.50.png?v=1643318150","variant_ids":[42354619154658,42354619220194,42354619285730,42354619351266,423546194168
02,42354619482338,42354619547874,42354619613410,42354619678946,42354619744482,42354619810018,42354619875554]},"available":false,"name":"Surly Disc Trucker Frameset - Pea Lime Soup - 62 \/ Pea Lime Soup","public_title":"62 \/ Pea Lime Soup","options":["62","Pea Lime Soup"],"price":95000,"weight":15000,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":29164641943778,"position":1,"preview_image":{"aspect_ratio":1.603,"height":766,"width":1228,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-01-27at21.12.50.png?v=1643318150"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42354619875554,"title":"64 \/ Pea Lime Soup","option1":"64","option2":"Pea Lime Soup","option3":null,"sku":"FMSUDTF84G","requires_shipping":true,"taxable":true,"featured_image":{"id":36611095134434,"product_id":7524204347618,"position":1,"created_at":"2022-01-27T21:15:42+00:00","updated_at":"2022-01-27T21:15:50+00:00","alt":null,"width":1228,"height":766,
"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-01-27at21.12.50.png?v=1643318150","variant_ids":[42354619154658,42354619220194,42354619285730,42354619351266,42354619416802,42354619482338,42354619547874,42354619613410,42354619678946,42354619744482,42354619810018,42354619875554]},"available":false,"name":"Surly Disc Trucker Frameset - Pea Lime Soup - 64 \/ Pea Lime Soup","public_title":"64 \/ Pea Lime Soup","options":["64","Pea Lime Soup"],"price":95000,"weight":15000,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":29164641943778,"position":1,"preview_image":{"aspect_ratio":1.603,"height":766,"width":1228,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-01-27at21.12.50.png?v=1643318150"}},"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-01-27at21.12.50.png?v=1643318150","\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-02-22at21.21.42_076b1dce-d885-4d51-9d67-ee3007b91003.png?v=1645565035"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-01-27at21.12.50.png?v=1643318150","options":["Size","Colour"],"media":[{"alt":null,"id":29164641943778,"position":1,"preview_image":{"aspect_ratio":1.603,"height":766,"width":1228,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-01-27at21.12.50.png?v=1643318150"},"aspect_ratio":1.603,"height":766,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-01-27at21.12.50.png?v=1643318150","width":1228},{"alt":null,"id":29317883691234,"position":2,"preview_image":{"aspect_ratio":1.921,"height":1170,"width":2248,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-02-22at21.21.42_076b1dce-d885-4d51-9d67-ee3007b91003.png?v=1645565035"},"aspect_ratio":1.921,"height":1170,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-02-22at21.21.42_076b1dce-d885-4d51-9d67-ee3007b91003.png?v=1645565
035","width":2248}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003ePlease get in touch with a member of the team to discuss the availability of size, build kit, and colour if the option you require is out of stock - 0131 374 5324 \/ edinburgh@projektride.co.uk\u003c\/span\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eDisc Trucker enjoys the same reputation as Long Haul Trucker: It’s one of the best-riding and most value-packed drop bar touring bikes out there. Sometimes, however, a combination of load, climate, and terrain demands a bit more braking performance than a standard rim-brake LHT can provide.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThat’s where the newly redesigned Disc Trucker comes in. Packing reliable stopping power and a horde of useful mounting points, shortened chainstays up the Disc Trucker’s stiffness and maneuverabilit
y around corners. Add in improved fit and handling under load, plus captured thru-axles for tool-free removal and installation, and the Disc Trucker is ready to help you meet — or dodge — your daily obligations.\u003c\/p\u003e\n\u003cdiv class=\"experiential\" data-mce-fragment=\"1\"\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eDynamo routing on the fork, plus three-pack mounts on the blade and every braze-on you’ll ever need for racks,mudguards, water bottle cages, and more\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e12mm thru-axles for a stiffer feel and increased stability when fully loaded\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eShortened seat tube and slightly sloped top tube for improved stand-over clearance, plus increased stack height for a more upright and comfortable riding position on those long hauls\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eFlat-mount disc brake mounts\u003c\/li\u003e\n\u003cli data-mce-fragment=
\"1\"\u003eFrame sizes 42–56cm are available for 26” diameter wheels, while frame sizes 56–64cm are available for 700c diameter wheels\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eClearance for 26” x 2.1” tyres with or without mudguards, or 700c x 47mm with or without mudguards\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThanks for considering ProjektRide for your next purchase. All bikes are fully assembled and test rode before leaving our bike shop in Edinburgh. Please allow 5-7 days for bicycle delivery although we aim to post bikes out the same day.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eIf any purchases are to be made using any cycle to work schemes, please either pop into the shop or get in touch via email\/phone to get the ball rolling. If you are not 100% sure with bike sizing, please feel free to contact us to double check.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eAll bike sales include a free running in service after 6-10 we
eks.\u003c\/p\u003e\n\u003c\/div\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {42354619154658 : "deny",42354619220194 : "deny",42354619285730 : "deny",42354619351266 : "deny",42354619416802 : "deny",42354619482338 : "deny",42354619547874 : "deny",42354619613410 : "deny",42354619678946 : "deny",42354619744482 : "deny",42354619810018 : "deny",42354619875554 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {42354619154658 : parseInt("1"),42354619220194 : parseInt("0"),42354619285730 : parseInt("0"),42354619351266 : parseInt("0"),42354619416802 : parseInt("0"),42354619482338 : parseInt("1"),42354619547874 : parseInt("1"),42354619613410 : parseInt("0"),42354619678946 : parseInt("0"),42354619744482 : parseInt("2"),42354619810018 : parseInt("0"),42354619875554 : parseInt("0"),};
window._RestockRocketConfig.variantsPreorderCount = {42354619154658 : parseInt(""),42354619220194 : parseInt(""),42354619285730 : parseInt(""),42354619351266 : parseInt(""),42354619416802 : pa
rseInt(""),42354619482338 : parseInt(""),42354619547874 : parseInt(""),42354619613410 : parseInt(""),42354619678946 : parseInt(""),42354619744482 : parseInt(""),42354619810018 : parseInt(""),42354619875554 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {42354619154658 : null,42354619220194 : null,42354619285730 : null,42354619351266 : null,42354619416802 : null,42354619482338 : null,42354619547874 : null,42354619613410 : null,42354619678946 : null,42354619744482 : null,42354619810018 : null,42354619875554 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {42354619154658 : parseInt(""),42354619220194 : parseInt(""),42354619285730 : parseInt(""),42354619351266 : parseInt(""),42354619416802 : parseInt(""),42354619482338 : parseInt(""),42354619547874 : parseInt(""),42354619613410 : parseInt(""),42354619678946 : parseInt(""),42354619744482 : parseInt(""),42354619810018 : parseInt(""),42354619875554 : parseInt(""),};
window._RestockRocketConfig.variantsPreo
rderMaxCountForMarket = {42354619154658 : null,42354619220194 : null,42354619285730 : null,42354619351266 : null,42354619416802 : null,42354619482338 : null,42354619547874 : null,42354619613410 : null,42354619678946 : null,42354619744482 : null,42354619810018 : null,42354619875554 : null,};
window._RestockRocketConfig.variantsShippingText = {42354619154658 : "",42354619220194 : "",42354619285730 : "",42354619351266 : "",42354619416802 : "",42354619482338 : "",42354619547874 : "",42354619613410 : "",42354619678946 : "",42354619744482 : "",42354619810018 : "",42354619875554 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {42354619154658 : null,42354619220194 : null,42354619285730 : null,42354619351266 : null,42354619416802 : null,42354619482338 : null,42354619547874 : null,42354619613410 : null,42354619678946 : null,42354619744482 : null,42354619810018 : null,42354619875554 : null,};
window._RestockRocketConfig.selected_variant_id = 42354619154658;
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/019bab4d-6c49-7d7e-b3eb-7d9317e290bf/restock-rocket-shopify-428/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019bab4d-6c49-7d7e-b3eb-7d9317e290bf/restock-rocket-shopify-428/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('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.norm
alizedLocale)) {
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
eks.\u003c\/p\u003e\n\u003c\/div\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {42354619154658 : "deny",42354619220194 : "deny",42354619285730 : "deny",42354619351266 : "deny",42354619416802 : "deny",42354619482338 : "deny",42354619547874 : "deny",42354619613410 : "deny",42354619678946 : "deny",42354619744482 : "deny",42354619810018 : "deny",42354619875554 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {42354619154658 : parseInt("1"),42354619220194 : parseInt("0"),42354619285730 : parseInt("0"),42354619351266 : parseInt("0"),42354619416802 : parseInt("0"),42354619482338 : parseInt("1"),42354619547874 : parseInt("1"),42354619613410 : parseInt("0"),42354619678946 : parseInt("0"),42354619744482 : parseInt("2"),42354619810018 : parseInt("0"),42354619875554 : parseInt("0"),};
window._RestockRocketConfig.variantsPreorderCount = {42354619154658 : parseInt(""),42354619220194 : parseInt(""),42354619285730 : parseInt(""),42354619351266 : parseInt(""),42354619416802 : pa
rseInt(""),42354619482338 : parseInt(""),42354619547874 : parseInt(""),42354619613410 : parseInt(""),42354619678946 : parseInt(""),42354619744482 : parseInt(""),42354619810018 : parseInt(""),42354619875554 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {42354619154658 : null,42354619220194 : null,42354619285730 : null,42354619351266 : null,42354619416802 : null,42354619482338 : null,42354619547874 : null,42354619613410 : null,42354619678946 : null,42354619744482 : null,42354619810018 : null,42354619875554 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {42354619154658 : parseInt(""),42354619220194 : parseInt(""),42354619285730 : parseInt(""),42354619351266 : parseInt(""),42354619416802 : parseInt(""),42354619482338 : parseInt(""),42354619547874 : parseInt(""),42354619613410 : parseInt(""),42354619678946 : parseInt(""),42354619744482 : parseInt(""),42354619810018 : parseInt(""),42354619875554 : parseInt(""),};
window._RestockRocketConfig.variantsPreo<
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;
}
}
// 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.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('Netwo
rk 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' && integration.enabled && integration.page_typ
es.includes(window._RestockRocketConfig.pageType);
})
if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.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;
const retryDelay = 500;
function attemptCartCheck(attempt = 1) {
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);
});
} else if (attempt
<
.restock-rocket-button,.restock-rocket-button-float{opacity:1!important;border:none!important;cursor:pointer!important;background-image:none!important;box-shadow:none!important;padding:15px 20px;font-size:16px;width:100%;font-family:inherit}@font-face{font-family:OpenSans;font-weight:200;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Light.woff)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-float-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{position:relative;font-size:13px;line-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property:all;transition-duration:.3s;display:flex;flex-direction:column;justify-content:center;}.restock-rocket-wrapper-inline{width:100%;height:100%;margin-top:20px}.restock-rocket-preorder-description{padding:10px 15px;margin-top:20px;display:flex;flex-direction:column;gap:10px;}.preorder-description-details{margin-bottom:0;display:flex;flex-direction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #e
bebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-option:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder-discount-badge{background:#ebebeb;height:25px;line-height:25px;padding:0 15px;border-radius:25px;font-size:0.8rem;flex:0 0 auto}.restock-rocket-payment-input{margin-right:10px;margin-top:-3px;vertical-align:middle;margin-left:0;accent-color:#202223}.restock-rocket-payment-description{margin-top:4px;flex:1 1 100%}.restock-rocket-preorder-badge{font-size:13px;line-height:1;padding:5px 13px 6px;border-radius:40px;height:auto;border:none;width:auto;z-index:2;margin:0;background:0 0}.preorder-badge-collection{position:absolute;top:10px;right:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restoc
- k-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restock-rocket-acknowledge-checkbox-label{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:inherit;}.restock-rocket-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-align:center}.restock-rocket-preorder-countdown-timer .countdown-units{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-direction:column;align-items:center;gap:6px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:40px;padding:10px 6px;text-align:center;font-size:20px;line-height:1}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:14p
x;font-weight:500;text-align:center;text-transform:capitalize;opacity:.7}@media (max-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:55px;padding:14px 10px;font-size:26px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:11px}}@media (max-width:480px){.restock-rocket-preorder-countdown-timer{padding:12px}.restock-rocket-preorder-countdown-timer .countdown-units{width:100%;gap:10px}.restock-rocket-preorder-countdown-timer .countdown-box{width:100%;min-width:50px;padding:12px 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:70
- 0;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-keyframes slide-out-left{0%{-webkit-tBUYransform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}}.restock-rocket-preorder-progress-bar{padding:12px 15px;margin-bottom:20px;font-family:inherit;}.restock-rocket-preorder-progress-bar .preorder-progress-text{margin-bottom:8px;}.restock-rocket-preorder-progress-bar .preorder-progress-bar-row{display:flex;align-items:center;gap:10px;}.restock-rocket-preorder-progress-bar .preorder-progress-track{flex:1;height:12px;overflow:hidden;}.restock-rocket-preorder-progress-bar .preorder-progress-fill{display:block;height:100%;min-width:2px;transition:width 0.3s ease;}.restock-rocket-preorder-progress-bar .preorder-progress-percentage{font-weight:500;min-width:35px;text-align:right;}
- SELL
- RIDE CONFIDENT
Shimano Steps battery, 504Wh, frame down tube intergrated mount - BT-E8035
£560.99£659.99
SKU: BTE8035A
Product Details
- High quality, long lasting integrated frame mounting lithium-ion battery pack for Shimano STEPS systems
- In normal mode the riding distance could exceed 100 km
- Waterproof design as well as impact and vibration resistant
- 1000 charge cycles without significant power loss
- Approximately five hours charge time
- Charge level display with error signal info and on/off switch
- Charging port
- Lock system for off bike security
- High 504Wh capacity (36V, 14Ah)
- Average weight 2900g
-
ColourBlack
-
Size504 Wh
-
Product TypeBatteries & Chargers
Would you like to add on any equipment?
ProjektRide
Buy Sell Ride Confident
FAQ
Questions and answers
-
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