BOMBTRACK BEYOND AL Complete Bike
Quantity
Frames
Shop by Brand
- 2 Skip to content
- 3
- 4 Close
- Home5 Hire
- 6 Bikes See More
- 7 New Bikes
- See More8
- Shop All New Bikes 9 Road / Gravel / Touring Bikes
- Hybrid / City Bikes10 +
| Handlebar | BOMBTRACK TACKLE gravel bar, 31.8 mm, 25° flare |
| GripsSee More | BOMBTRACK COMMAND bar tape |
| Stem | See MoreBOMBTRACK TRAMP forged aluminium stem, 3° |
| Headset | Sealed integrated aheadset, 1.1/2'' - 1.1/8''Book a Service |
| Levers | SRAM Apex double tap mechanic | Other
| Shifter | SRAM Apex double tap 1 x 11 | Custom Builds
| BrakesCycle To Work Schemes | TRP SPYRE C mechanic disc brakes with 180 mm F / 160 mm R rotors | Insure Your Bike
| Crankset | Book a ServiceBOMBTRACK AMES forged aluminium crank, 24 mm spindle |
| BBParts & Components | BOMBTRACK T47 internal sealed BB for 24 mm spindleSee More |
| Pedals | Brands- | See More
| Chain | HopeKMC X11 chain, 1/2'' x 11/128'', 114L |
| Chainring | Steel, narrow-wide, 36 TCockpit |
| Cassette | SRAM PG-1130 11-speed, 11 - 42 THandlebars |
| Front derailleur | -Grips & Bar-Tape |
| Rear derailleur | SRAM APEX 1, clutch, long cage | Brakes
| Front hub | BOMBTRACK ARC sealed hub, 6-bolt disc | Complete Brakes
| Rear hubBrake Rotors | BOMBTRACK ARC sealed hub, 11-speed, 6-bolt disc |
Klarna



bug('STOQ - multi-language enabled but no translation data in cache, fetching fresh');
return null;
}
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');
}
}
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
<
ngs;
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 no
t 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 || [];
}
if (data && data.read_f