corrosion. We’ve also given the Allday flat crown forks and a lugged seat clamp for that classic style\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {44155594211554 : "continue",44155594244322 : "continue",44155594277090 : "continue",44155594309858 : "continue",44155594342626 : "continue",44155594375394 : "continue",44155594408162 : "continue",44155594440930 : "continue",44155594473698 : "continue",44155594506466 : "continue",};
window._RestockRocketConfig.variantsInventoryQuantity = {44155594211554 : parseInt("0"),44155594244322 : parseInt("0"),44155594277090 : parseInt("0"),44155594309858 : parseInt("0"),44155594342626 : parseInt("0"),44155594375394 : parseInt("0"),44155594408162 : parseInt("0"),44155594440930 : parseInt("0"),44155594473698 : parseInt("0"),44155594506466 : parseInt("0"),};
window._RestockRocketConfig.variantsPreorderCount = {44155594211554 : parseInt(""),44155594244322 : parseInt(""),441555
94277090 : parseInt(""),44155594309858 : parseInt(""),44155594342626 : parseInt(""),44155594375394 : parseInt(""),44155594408162 : parseInt(""),44155594440930 : parseInt(""),44155594473698 : parseInt(""),44155594506466 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {44155594211554 : null,44155594244322 : null,44155594277090 : null,44155594309858 : null,44155594342626 : null,44155594375394 : null,44155594408162 : null,44155594440930 : null,44155594473698 : null,44155594506466 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {44155594211554 : parseInt(""),44155594244322 : parseInt(""),44155594277090 : parseInt(""),44155594309858 : parseInt(""),44155594342626 : parseInt(""),44155594375394 : parseInt(""),44155594408162 : parseInt(""),44155594440930 : parseInt(""),44155594473698 : parseInt(""),44155594506466 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {44155594211554 : null,44155594244322 : null,44155594277090 : null,
44155594309858 : null,44155594342626 : null,44155594375394 : null,44155594408162 : null,44155594440930 : null,44155594473698 : null,44155594506466 : null,};
window._RestockRocketConfig.variantsShippingText = {44155594211554 : "",44155594244322 : "",44155594277090 : "",44155594309858 : "",44155594342626 : "",44155594375394 : "",44155594408162 : "",44155594440930 : "",44155594473698 : "",44155594506466 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {44155594211554 : null,44155594244322 : null,44155594277090 : null,44155594309858 : null,44155594342626 : null,44155594375394 : null,44155594408162 : null,44155594440930 : null,44155594473698 : null,44155594506466 : null,};
window._RestockRocketConfig.selected_variant_id = 44155594211554;
window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;window._RestockRocketConfig.scriptUrl
Product = 'https://cdn.shopify.com/extensions/019d8c88-5443-7fe6-b195-c434b5d26398/restockrocket-1-477/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019d8c88-5443-7fe6-b195-c434b5d26398/restockrocket-1-477/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
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