ns 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) {
conso
h(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_types.includes(window._RestockRocketConfig.pageType);
})
if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_c
t(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.updDecrease quantity<
7500,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45068753731810,"title":"650b x 40 \/ Tan \/ Durable \/ LIGHT AND SUPPLE FOR 40MM VERSIONS","option1":"650b x 40","option2":"Tan","option3":"Durable \/ LIGHT AND SUPPLE FOR 40MM VERSIONS","sku":"TR7268","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Teravail Cannonball Tyre - 650b x 40 \/ Tan \/ Durable \/ LIGHT AND SUPPLE FOR 40MM VERSIONS","public_title":"650b x 40 \/ Tan \/ Durable \/ LIGHT AND SUPPLE FOR 40MM VERSIONS","options":["650b x 40","Tan","Durable \/ LIGHT AND SUPPLE FOR 40MM VERSIONS"],"price":6000,"weight":0,"compare_at_price":7500,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45068753764578,"title":"650b x 47 \/ Black \/ Durable \/ LIGHT AND SUPPLE FOR 40MM VERSIONS","option1":"650b x 47","option2":"Black","option3":"Durable \/ LIGHT AND SUPPLE FOR 40MM VERSIONS","sku":"","
E FOR 40MM VERSIONS"],"price":6000,"weight":0,"compare_at_price":7500,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45068753830114,"title":"700c x 35 \/ Black \/ Durable \/ LIGHT AND SUPPLE FOR 40MM VERSIONS","option1":"700c x 35","option2":"Black","option3":"Durable \/ LIGHT AND SUPPLE FOR 40MM VERSIONS","sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Teravail Cannonball Tyre - 700c x 35 \/ Black \/ Durable \/ LIGHT AND SUPPLE FOR 40MM VERSIONS","public_title":"700c x 35 \/ Black \/ Durable \/ LIGHT AND SUPPLE FOR 40MM VERSIONS","options":["700c x 35","Black","Durable \/ LIGHT AND SUPPLE FOR 40MM VERSIONS"],"price":6000,"weight":0,"compare_at_price":7500,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":45068753862882,"title":"700c x 35 \/ Tan \/ Durable \/ LIGHT AND SUPPLE FOR 40MM VERSIONS","option1":"700c x 35","option2":"Tan","opDepth: 17cm
ame: 'product',
shopLocale: 'en',
dataKey: 'top-strip-promotion-badge',
storefrontCurrency: 'GBP',
storefrontCountry: 'GB',
storefrontLanguage: 'en',
shopDomain: 'projektride.co.uk',
variantPrice: '202500',
cartPrice: '0',
selector: 'shopify-osm-Ac2tTRTlRaTI0R3BZb__klarna_on_site_messaging_app_block_8gNReH',
topPadding: '0',
bottomPadding: '0',
});
}
Cannonball is a go-to gravel race tire for normal conditions. The tread pattern features a directional, tight-knit center tread that sheds dirt and debris to decrease rolling resistance, and side knobs for effective cornering traction. Cannonball is built for all-around gravel riders and racers.
Grey / Extra Large - Sold Out
at_price":69900,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54900747469183,"title":"Large \/ White","option1":"Large","option2":"White","option3":null,"sku":"KN23B-LAVD-LG-WH","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona Lava Dome - Large \/ White","public_title":"Large \/ White","options":["Large","White"],"price":67900,"weight":12000,"compare_at_price":69900,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54900747501951,"title":"Extra Large \/ Black","option1":"Extra Large","option2":"Black","option3":null,"sku":"KN23B-LAVD-XL-BL","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona Lava Dome - Extra Large \/ Black","public_title":"Extra Large \/ Black","options":["Extra Large","Black"],"price":67900,"weight":12000,"compare_at_price":69900,"inventory_management":"shopify","barcode":"","req
{
window.appBlockPlacements.push({
productVariants: [{"id":43690191814882,"title":"Small \/ Black","option1":"Small","option2":"Black","option3":null,"sku":"KN23B-LAVD-SM-BL","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona Lava Dome - Small \/ Black","public_title":"Small \/ Black","options":["Small","Black"],"price":67900,"weight":12000,"compare_at_price":69900,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54900747403647,"title":"Small \/ White","option1":"Small","option2":"White","option3":null,"sku":"KN23B-LAVD-SM-WH","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona Lava Dome - Small \/ White","public_title":"Small \/ White","options":["Small","White"],"price":67900,"weight":12000,"compare_at_price":69900,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43690191847650,"title"
-LG-BL","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona Lava Dome - Large \/ Black","public_title":"Large \/ Black","options":["Large","Black"],"price":67900,"weight":12000,"compare_at_price":69900,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54900747469183,"title":"Large \/ White","option1":"Large","option2":"White","option3":null,"sku":"KN23B-LAVD-LG-WH","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Kona Lava Dome - Large \/ White","public_title":"Large \/ White","options":["Large","White"],"price":67900,"weight":12000,"compare_at_price":69900,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":54900747501951,"title":"Extra Large \/ Black","option1":"Extra Large","option2":"Black","option3":null,"sku":"KN23B-LAVD-XL-BL","requires_shipping":true,"taxable":true,"featured_image":null,"available":fa
The Lava Dome is kind of like your best friend, but in bike form. It’s awesome in the dirt. It’s awesome to rally around town. It’s awesome poking around neighbourhood singletrack, and it does it all in a dependable way. The Lava Dome features an easy-to-use 9-speed drivetrain with a clutch rear derailleur as well as sleek internal cable routing and dropouts. With strong 29” wheels that can accept up to a 2.6” tires, this bike is ready for everything in its path!
“I'm on my 3rd set of Cannonballs. Pulled the 1st set off when I flated because the tread was worn thru. Bad me ! Raced on theses in Kansas, Bokepacked in Canada and just plan rode these. They have been almost bullet proof. Have used them tubeless and tubed both work very well. In 6 years of use I've had 2 flats. That alone speaks for these tires.”REAR SHOCK
n/a
nslations, 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 age = Date.now() - updatedAt.getTime();
if (age
.uk\/cdn\/shop\/files\/IMG_0053_600x.png?v=1712051355"
],"description": "Details\n\n\nGRAVELCannonball is a go-to gravel race tire for normal conditions. The tread pattern features a directional, tight-knit center tread that sheds dirt and debris to decrease rolling resistance, and side knobs for effective cornering traction. Cannonball is built for all-around gravel riders and racers.HOW IT WORKS- Center lugs are raised and ramped for rolling efficiency; the diamond-shaped lugs squeeze in for grip as they contact dirt, then back out to shed debris.- Transitions lugs are spaced out and vary in height to boost traction. - L-shaped side lugs dig in for grip while braking through corners, but roll quickly when off the brakes.\n \n\n\n\nReviews \n \nEXTREMELY FAST GRAVEL TIRE EXCELLING IN LIGHT GRAVEL \/ ROAD\n⭐️⭐️⭐️⭐️\n \n\n\n\n\nSubmitted 2 months ago\nBy False Hope\nFrom Richmond Virginia\n\n\n“Bought these as a gravel race tire and they are just that. Very very fast with predictabl
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(restockRocketContainerWorking Hourse good grip, and I really like the round tire Profile of the tread surface, it makes a great contact patch at any angle and makes the bike handle super lively. I ride a mix of all types of road surface in upstate NY on these and find them up for everything I ask, including being devilishly handsome in their tan wall glory.”\n\n\n\nBottom Line Yes, I would recommend to a friend\n\n\n\n\n\n\n\n\n","brand": {
"@type": "Thing",
"name": "Teravail"
},"gtin8": "","offers": [{
"@type" : "Offer","availability" : "http://schema.org/InStock",
"price" : 60.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/teravail-cannonball-tyre?variant=45068753699042"
},
{
"@type" : "Offer","sku": "TR7268","availability" : "http://schema.org/InStock",
"price" : 60.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/teravail-cannonball-tyre?variant=45068753731810"
},
{
"@type" : "Offer","avail