<
maxRetries) {
console.debug(`STOQ - API not ready, retry ${attempt}/${maxRetries}`);
setTimeout(() => attemptCartCheck(attempt + 1), retryDelay);
} else {
console.debug('STOQ - API not loaded after max retries, skipping cart selling plan check');
}
}
attemptCartCheck();
}
Hire
Amflow
{"id":15398331384191,"title":"Early Rider Bella Velio Pistachio Green","handle":"early-rider-bella-velio-pistachio-green","description":"\u003cp\u003eSTANDOVER HEIGHT\u003cbr\u003e\n 22CM\u003cbr\u003e\nFRAME\u003cbr\u003e\nWALNUT \u0026amp; A-GRADE BIRCH LAMINATED BLEND\u003cbr\u003e\nHEADTUBE\u003cbr\u003e\nCNC MACHINED AL6061\u003cbr\u003e\nMUDGUARDS\u003cbr\u003e\nUV COATED IMPACT RESISTANT ABS\u003cbr\u003e\nSTEERER\u003cbr\u003e\nCNC MACHINED AL6061\u003cbr\u003e\nHUBS\u003cbr\u003e\n6 SPOKE CONVEX HUBS\u003cbr\u003e\nWHEEL BEARINGS\u003cbr\u003e\nSHIELDED CARTRIDGE BEARINGS\u003cbr\u003e\nWHEEL BOLTS\u003cbr\u003e\nCNC MACHINED AL7075 ALUMINIUM\u003cbr\u003e\nHEADSET BEARINGS\u003cbr\u003e\nANGULAR CONTACT DEEP GROOVE CARTRIDGE\u003cbr\u003e\nTOP CAP\u003cbr\u003e\nANODIZED AL6061 - LASER ETCHED\u003cbr\u003e\nSPRING ADJUSTER\u003cbr\u003e\nIMPACT RESISTANT ABS\u003cbr\u003e\nTYRES\u003cbr\u003e\nPUNCTURE PROOF EVA FOAM\u003cbr\u003e\nAXLES\u003cbr\u003e\nHOLLOW AL6061 CNC MACHINED\u003cbr\u003e\nWEIGHT\u003cbr\u003e\n2.8KG\u003cbr\u003e\nBAR ENDS\u003cbr\u003e\nIMPACT ABSORBING POLYMER\u003cbr\u003e\nGRIPS\u003cbr\u003e\nSOFT TOUCH EVA FOAM\u003cbr\u003e\nSADDLE\u003cbr\u003e\nFOOD SAFE SILICONE\u003cbr\u003e\nSPEC NOTICE\u003cbr\u003e\nEvery effort has been made to ensure accuracy throughout this website. However, Early Rider reserves the right to change prices and bike specifications without prior notice\u003c\/p\u003e","published_at":"2025-11-13T16:39:10+00:00","created_at":"2025-11-13T16:39:10+00:00","vendor":"Early Rider","type":"Bike","tags":["Early Rider","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":19900,"price_min":19900,"price_max":19900,"available":false,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":56393231532415,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"V-B8-PG","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Early Rider Bella Velio Pistachio Green","public_title":null,"options":["Default Title"],"price":19900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/Bella-Velio-PISTACHIO-GREEN-Profile-white-3200x1800_d2be93bd-67d3-437c-8bbc-745743a8e734_1753974492.jpg?v=1763051953"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Bella-Velio-PISTACHIO-GREEN-Profile-white-3200x1800_d2be93bd-67d3-437c-8bbc-745743a8e734_1753974492.jpg?v=1763051953","options":["Title"],"media":[{"alt":null,"id":68666745815423,"position":1,"preview_image":{"aspect_ratio":1.778,"height":1406,"width":2500,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Bella-Velio-PISTACHIO-GREEN-Profile-white-3200x1800_d2be93bd-67d3-437c-8bbc-745743a8e734_1753974492.jpg?v=1763051953"},"aspect_ratio":1.778,"height":1406,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Bella-Velio-PISTACHIO-GREEN-Profile-white-3200x1800_d2be93bd-67d3-437c-8bbc-745743a8e734_1753974492.jpg?v=1763051953","width":2500}],"r
equires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eSTANDOVER HEIGHT\u003cbr\u003e\n 22CM\u003cbr\u003e\nFRAME\u003cbr\u003e\nWALNUT \u0026amp; A-GRADE BIRCH LAMINATED BLEND\u003cbr\u003e\nHEADTUBE\u003cbr\u003e\nCNC MACHINED AL6061\u003cbr\u003e\nMUDGUARDS\u003cbr\u003e\nUV COATED IMPACT RESISTANT ABS\u003cbr\u003e\nSTEERER\u003cbr\u003e\nCNC MACHINED AL6061\u003cbr\u003e\nHUBS\u003cbr\u003e\n6 SPOKE CONVEX HUBS\u003cbr\u003e\nWHEEL BEARINGS\u003cbr\u003e\nSHIELDED CARTRIDGE BEARINGS\u003cbr\u003e\nWHEEL BOLTS\u003cbr\u003e\nCNC MACHINED AL7075 ALUMINIUM\u003cbr\u003e\nHEADSET BEARINGS\u003cbr\u003e\nANGULAR CONTACT DEEP GROOVE CARTRIDGE\u003cbr\u003e\nTOP CAP\u003cbr\u003e\nANODIZED AL6061 - LASER ETCHED\u003cbr\u003e\nSPRING ADJUSTER\u003cbr\u003e\nIMPACT RESISTANT ABS\u003cbr\u003e\nTYRES\u003cbr\u003e\nPUNCTURE PROOF EVA FOAM\u003cbr\u003e\nAXLES\u003cbr\u003e\nHOLLOW AL6061 CNC MACHINED\u003cbr\u003e\nWEIGHT\u003cbr\u003e\n2.8KG\u003cbr\u003e\nBAR ENDS\u003cbr\u003e\nIMPACT AB
SORBING POLYMER\u003cbr\u003e\nGRIPS\u003cbr\u003e\nSOFT TOUCH EVA FOAM\u003cbr\u003e\nSADDLE\u003cbr\u003e\nFOOD SAFE SILICONE\u003cbr\u003e\nSPEC NOTICE\u003cbr\u003e\nEvery effort has been made to ensure accuracy throughout this website. However, Early Rider reserves the right to change prices and bike specifications without prior notice\u003c\/p\u003e"}Yeti
[]
tockRocketConfig.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
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 age = Date.now() - updatedAt.getTime();
if (age !settings.multi_language_enabled) {
return settings;
}
Skip to content if (!settings.translations) {
console.debug('STOQ - No translations found, skipping translation');
return settings;
}
const normalizedLocale = window._RestockRocketConfig.normalizedLocale;
const translations = settings.translations;
if (!normalizedLocale) {
// No matching locale has translations; drop payload to save memory
console.debug('STOQ - No matching locale for translations. Available:', Object.keys(translations || {}));
delete settings.translations;
return settings;
}
console.debug(`STOQ - Applying translations 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 !== '')