UTO (ex Eovolt)Product Details
Durable and lightweight, the Adventure Race Top Tube Bag is designed with ultra-distance racing and audaxing in mind. An X21 technical waterproof outer, waterproof 6oz nylon inner lining and YKK aquaguard two-way zip keeps inclement weather at bay, whilst reflective detailing boosts visibility and safety when riding through the night.
Built to be practical and functional, the bag is held firmly in place with a rubberised velcro strap and an adjustable MOLLE hypalon fitting, which allows the bag to function seamlessly with all Restrap Frame Bags. A rigid internal plastic structure keeps the bag upright and stable and the universal headset fitting accommodates all headsets, including bikes with a low stack height. A stretch mesh side pocket provides storage for nutrition, wrappers and other on-the-fly essentials.SKU - RS_RTT_STD_BLK
This site has limited support for your browser. We recommend switching to Edge, Chrome, Safari, or Firefox.a class="product__media product__media--featured"
href="/collections/best-selling-collection/products/hire-smith-convoy-helmet"
title="Hire Lazer Compact Helmet"
aria-label="Hire Lazer Compact Helmet"
style="background-image: url(//projektride.co.uk/cdn/shop/files/my2023_tempo-kineticore-black_right_1400x1011800x600-removebg-preview_1_600x.png?v=1747484784)">
\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe bolt-on top tube bag fastens securely to the top tube bolt bosses common on gravel and adventure bikes, with a choice of mounting positions to accommodate every bike and frame size possible. A closed-cell foam padding structure protects your frame and electronics from damage and for added convenience, a protected cable port enables charging of devices on the go.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eOpening and closing via an easy access one-finger zipper puller, the bolt-on top tube bag is a useful standalone bag for adventure cycling or as part of a full Expedition Series setup. For bikes without bolt-on bosses, see our\u003cspan data-mce-fragment=\"1\"\u003e \u003c\/span\u003e\u003ca href=\"https:\/\/www.apidura.com\/shop\/expedition-top-tube-pack\/\" data-mce-fragment=\"1\" data-mce-href=\"https:\/\/www.apidura.com\/shop\/expedition-top-tube-pack\/\"\u003eExpedition Top Tube Pack\u003c\/a\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/d
= 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
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) {
if (!settings || !settings.preorder_enabled) {
return;
}
// Listen for stoq:preorder-api-ready event dispatched by preorder.js
window.addEventListener('stoq:preorder-api-ready', function(event) {
console.debug('STOQ - Preorder API ready, updating cart selling plans');