= 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
window._RestockRocketConfig = window._RestockRocketConfig || {}
// Helper function to normalize locale format from hyphen to underscore (e.g., 'en-US' -> 'en_us')
// This matches the backend's Mobility.normalize_locale behavior
available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":true,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"disableDebugLoggingForNonPreorderItem":false},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_l
];
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');
if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
window._RestockRocket.updat
9LCongratulations! Your order qualifies for free shipping
{"id":8055079272674,"title":"Brooks Challenge Tool Bag","handle":"brooks-challenge-tool-bag","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"col\"\u003e\n\u003cdiv class=\"description\"\u003e\n\u003cp\u003eDesigned to fit saddles with bag loops, this compact bag features buckles that fasten within the bag to enhance security.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eStrap secures tools to prevent rattling\u003c\/li\u003e\n\u003cli\u003eVegetable-tanned leather\u003c\/li\u003e\n\u003cli\u003eHandmade iTools & Maintenance
Size:
03-18T12:56:35+00:00","alt":null,"width":776,"height":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/20902-pm.png?v=1679144195","variant_ids":[43936177291490]},"available":true,"name":"Brooks Challenge Tool Bag - Black","public_title":"Black","options":["Black"],"price":9499,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31694786724066,"position":1,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/20902-pm.png?v=1679144195"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43936177324258,"title":"Brown","option1":"Brown","option2":null,"option3":null,"sku":"B7436A07211","requires_shipping":true,"taxable":true,"featured_image":{"id":39096378327266,"product_id":8055079272674,"position":2,"created_at":"2023-03-18T12:56:33+00:00","updated_at":"2023-03-18T12:56:36+00:00","alt":null,"width":776,"height":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/209
ey","public_title":"Honey","options":["Honey"],"price":9499,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":31694786789602,"position":3,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/20912-pm.png?v=1679144195"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43936177389794,"title":"Pre-Aged","option1":"Pre-Aged","option2":null,"option3":null,"sku":"B7436A07213","requires_shipping":true,"taxable":true,"featured_image":{"id":39096378228962,"product_id":8055079272674,"position":4,"created_at":"2023-03-18T12:56:33+00:00","updated_at":"2023-03-18T12:56:35+00:00","alt":null,"width":776,"height":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/20909-pm.png?v=1679144195","variant_ids":[43936177389794]},"available":true,"name":"Brooks Challenge Tool Bag - Pre-Aged","public_title":"Pre-Aged","options":["Pre-Aged"],"price":9499,"weight":0,"compare_at_price":null,"iClothing and Protection
S, M
14Lpng?v=1679144195","width":776},{"alt":null,"id":31694786756834,"position":2,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/20906-pm.png?v=1679144196"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/20906-pm.png?v=1679144196","width":776},{"alt":null,"id":31694786789602,"position":3,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/20912-pm.png?v=1679144195"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/20912-pm.png?v=1679144195","width":776},{"alt":null,"id":31694786822370,"position":4,"preview_image":{"aspect_ratio":1.0,"height":776,"width":776,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/20909-pm.png?v=1679144195"},"aspect_ratio":1.0,"height":776,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/20909-pm.png?v=1679144195","width":776}],"requSee More
{"id":8108873711842,"title":"EXPEDITION HANDLEBAR PACK","handle":"expedition-handlebar-pack","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"wrap-details read-more\" data-mce-fragment=\"1\"\u003e\n\u003ch3 data-mce-fragment=\"1\"\u003eDESCRIPTION\u003ci class=\"tab-arrow\" data-mce-fragment=\"1\"\u003e\u003c\/i\u003e\n\u003c\/h3\u003e\n\u003cdiv data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eIdeal for carrying lightweight, compressible kit, the Expedition Handlebar Pack is a handy partner for long-distance road bike tours, weekend trips, or even a daily ride to work.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eEliminating the need for a bulky front rack, the bag fastens to handlebars with a reinforced attachment system that adds stability while improving handling and preventing abrasion. Dual roll-top closure keeps the contents secure, while allowing flexible packing capacity. A hands-free air release vent makes compressing the bag hassle-free, while welded seams ensure that contents stay dry in all conditions.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe handlebar bag is available in two sizes: the 14L version is ideal for long haul touring, while the 9L is well suited for endurance road racing and randonneuring. While excellent as a standalone
"\u003e\n\u003ch3 data-mce-fragment=\"1\"\u003eDESCRIPTION\u003ci class=\"tab-arrow\" data-mce-fragment=\"1\"\u003e\u003c\/i\u003e\n\u003c\/h3\u003e\n\u003cdiv data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eIdeal for carrying lightweight, compressible kit, the Expedition Handlebar Pack is a handy partner for long-distance road bike tours, weekend trips, or even a daily ride to work.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eEliminating the need for a bulky front rack, the bag fastens to handlebars with a reinforced attachment system that adds stability while improving handling and preventing abrasion. Dual roll-top closure keeps the contents secure, while allowing flexible packing capacity. A hands-free air release vent makes compressing the bag hassle-free, while welded seams ensure that contents stay dry in all conditions.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe handlebar bag is available in two sizes: the 14L version is ideal for long haul touring, while thee handlebar bag’s attachment points are reinforced with Hypalon, a rubberised nylon used to provide extra protection against friction and abrasion. For the straps, we’ve chosen Woojin buckles for their strength and reliability.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eCare\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eWash the handlebar bag by hand, using a mild diluted soap if necessary. Afterwards, let it air dry.\u003cbr data-mce-fragment=\"1\"\u003eDo not machine wash, machine dry, or iron.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e"}
{
"@context": "http://schema.org/",
"@type": "Product",
"name": "EXPEDITION HANDLEBAR PACK",
"url": "https:\/\/projektride.co.uk\/products\/expedition-handlebar-pack","image": [
"https:\/\/projektride.co.uk\/cdn\/shop\\n\nMaterials\nThe handlebar bag is cut from a three-layer laminate fabric that was developed specifically for Apidura. The material is lightweight, and is highly resistant to tears and abrasion. Notably, it’s welded together at the seams, creating a watertight seal that ensures complete waterproofing.\nThe handlebar bag’s attachment points are reinforced with Hypalon, a rubberised nylon used to provide extra protection against friction and abrasion. For the straps, we’ve chosen Woojin buckles for their strength and reliability.\nCare\nWash the handlebar bag by hand, using a mild diluted soap if necessary. Afterwards, let it air dry.Do not machine wash, machine dry, or iron.\n\n","sku": "BWS","brand": {
"@type": "Thing",
"name": "Apidura"
},"gtin8": "","offers": [{
"@type" : "Offer","sku": "BWS","availability" : "http://schema.org/InStock",
"price" : 100.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/expedition-handlebar-pack?variant
The handlebar bag’s attachment points are reinforced with Hypalon, a rubberised nylon used to provide extra protection against friction and abrasion. For the straps, we’ve chosen Woojin buckles for their strength and reliability.Brakes
Hire Ortlieb 40L Pannier Bags
CareComplete BrakesQUICK LINKSTools & Maintenance
Wash the handlebar bag by hand, using a mild diluted soap if necessary. Afterwards, let it air dry.
About Us
<
BlogClothing and Protectionspan class="visually-hidden">Hire Ortlieb 40L Pannier Bags
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 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)