
.
Extra Large
Extra Large
Website by
Juan Borges Designsa-white-1-1024x1024.jpg?v=1720100830","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-olive-1.jpg?v=1720100831","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-orange-1.jpg?v=1720100831","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-red-1.jpg?v=1720100831","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-tan-1.jpg?v=1720100831","\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-yellow-black-1.jpg?v=1720100831"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-black-1.jpg?v=1720100831","options":["Colour"],"media":[{"alt":null,"id":34187515003106,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-black-1.jpg?v=1720100831"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voi
.\/shop\/files\/voile-straps-32-inch-nylon-buckle-cyan-white-1-1024x1024.jpg?v=1720100830"},"aspect_ratio":1.0,"height":1024,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-cyan-white-1-1024x1024.jpg?v=1720100830","width":1024},{"alt":null,"id":34187515134178,"position":5,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-green-1.jpg?v=1720100831"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-green-1.jpg?v=1720100831","width":1999},{"alt":null,"id":34187515166946,"position":6,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-grey-1.jpg?v=1720100831"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buck
ve, and non-reflective.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eFew things in life are as reliable as the original Voile Strap®. Over the last 30 years they have become the ultimate alternative to duct tape, nylon straps, and bungee cords.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eOn the job, in the outdoors, and everywhere in between: they are the definitive way to \u003c\/span\u003e\u003cb\u003esecure\u003c\/b\u003e\u003cspan\u003e, \u003c\/span\u003e\u003cb\u003ebundle\u003c\/b\u003e\u003cspan\u003e, and \u003c\/span\u003e\u003cb\u003erepair\u003c\/b\u003e\u003cspan\u003e almost anything on the go.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003e\u003cb\u003eLoad Circumference Min-Max:\u003c\/b\u003e 5.5in — 29.7in \/ 14cm — 75.3cm\u003cbr\u003e\u003cb\u003eMaterial:\u003c\/b\u003e UV-Resistant Polyurethane\u003cbr\u003e\u003cb\u003eBuckle:\u003c\/b\u003e Super-Tough® Nylon\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/dSurly Preamble Frameset - horfrost White
e-straps-32-inch-nylon-buckle-orange-1.jpg?v=1720100831"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-orange-1.jpg?v=1720100831","width":1999},{"alt":null,"id":34187515298018,"position":10,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-red-1.jpg?v=1720100831"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-red-1.jpg?v=1720100831","width":1999},{"alt":null,"id":34187515330786,"position":11,"preview_image":{"aspect_ratio":1.0,"height":1999,"width":1999,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-tan-1.jpg?v=1720100831"},"aspect_ratio":1.0,"height":1999,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/voile-straps-32-inch-nylon-buckle-tan-1.jpg?v=1720100831","width":1999},{"alt":nu
ing 160mm Fox Factory 36,\u003cbr\u003eFox Float X, Maxxis DHF 2.5 \u0026amp; DHR II 2.4 EXO casing,\u003cbr\u003eand more powerful brakes\u003c\/li\u003e\n\u003cli\u003eFox Transfer dropper post\u003c\/li\u003e\n\u003cli\u003eDT Swiss XM Wheels\u003c\/li\u003e\n\u003cli\u003e4 piston brakes\u003c\/li\u003e\n\u003cli\u003eODI Elite Pro grips\u003c\/li\u003e\n\u003cli\u003e200 front and 180 rear rotors\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"Yeti-Text_Frame-Highlights-BG_140-LR\"\u003e\n\u003cdiv class=\"Yeti-Text_Frame-Highlights-Text\"\u003e\n\u003cp class=\"Yeti-Title\"\u003eFRAME HIGHLIGHTS\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eNEW Threaded bot tom bracket\u003c\/li\u003e\n\u003cli\u003eNEW High-clearance downtube\u003c\/li\u003e\n\u003cli\u003eNEW Dual -density downtube protection\u003c\/li\u003e\n\u003cli\u003eUniversal Derailleur Hanger (UDH)\u003c\/li\u003e\n\u003cli\u003eSecure, fully enclosed internal cable management\u003c\/li\u003e\n\u003cl
£650.00
>
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2025-09-30at13.32.33_600x.png?v=1759240885)"> class=\"Yeti-Text_Size-Guide-BG\"\u003e\n\u003cdiv class=\"Yeti-Text_Size-Guide-Text\"\u003e\n\u003cp class=\"Yeti-Title\"\u003eSIZE GUIDE\u003c\/p\u003e\n\u003cdiv id=\"sizechart\"\u003e\n\u003ctable id=\"sizechart\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd id=\"sizechart\"\u003e\u003cstrong\u003eSMALL\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e5'1\" - 5'7\"\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd id=\"sizechart\"\u003e\u003cstrong\u003eMEDIUM\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e5'5\" - 5'11\"\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\
!settings.multi_language_enabled) {
return settings;
}
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
const headers = {
'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
'ngrok-skip-browser-warning': 'skip'
};
if (window.Shopify?.theme?.role === 'main') {
headers['X-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) {
>
<];
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) {
console.debug('STOQ - using cached settings');
initializeScripts(validCachedSettings);
} else {
console.debug('STOQ - fetching fresh settings');
const headers = {
'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop,
'ngrok-skip-browser-warning': 'skip'
};
if (window.Shopify?.them 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_collection || settings.preorder_collection_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} els
-height:1;padding:7px;height:auto;z-index:3}.restock-rocket-wrapper{background-color:rgba(0,0,0,.5);z-index:123123123;width:100%;height:100%;overflow:auto;position:fixed;right:0;top:0;transition-property:all;transition-duration:.3s;display:flex;flex-direction:column;justify-content:center;}.restock-rocket-wrapper-inline{width:100%;height:100%;margin-top:20px}.restock-rocket-preorder-description{padding:10px 15px;margin-top:20px;display:flex;flex-direction:column;gap:10px;}.preorder-description-details{margin-bottom:0;display:flex;flex-direction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #ebebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-option:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder3ctd id=\"sizechart\"\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e6'5\" - 6'11\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-content-type=\"row\" data-appearance=\"contained\" data-element=\"main\"\u003e\n\u003cdiv data-enable-parallax=\"0\" data-parallax-speed=\"0.5\" data-background-images=\"{}\" data-background-type=\"image\" data-video-loop=\"true\" data-video-play-only-visible=\"true\" data-video-lazy-load=\"true\" data-video-fallback-src=\"\" data-element=\"inner\" data-pb-style=\"GTBXSM8\"\u003e\n\u003cdiv data-content-type=\"html\" data-appearance=\"default\" data-element=\"main\" data-decoded=\"true\"\u003e\n\u003cp class=\"Yeti-Title\"\u003eSPECIFICATION\u003c\/p\u003e\n\u003cp class=\"Yeti-Spec_text\"\u003eC\/Series carbon fibre frame, Switch Infinity suspension technology, threaded bottom bracket, fully enclosed internal cable r3e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eHEADSET\u003c\/td\u003e\n\u003ctd\u003eCANE CREEK 40 INTEGRATED\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eWHEELSET\u003c\/td\u003e\n\u003ctd\u003eDT SWISS M1900 30MM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eBB\u003c\/td\u003e\n\u003ctd\u003eSRAM DUB BSA 73\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eGRIPS\u003c\/td\u003e\n\u003ctd\u003eODI ELITE PRO\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eBAR\u003c\/td\u003e\n\u003ctd\u003eBURGTEC RIDE WIDE ALLOY ENDURO 35X780MM 30MM RISE\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eSTEM\u003c\/td\u003e\n\u003ctd\u003eBURGTEC ENDURO MK3 35X50MM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eCRANK\u003c\/td\u003e\n\u003ctd\u003eSRAM GX EAGLE 30T 170MM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eSEAT\03ci\u003ePlease note: Specifications are subject to change without notice.\u003c\/i\u003e\u003c\/p\u003e\n\u003cbr\u003e\u003cbr\u003e\n\u003cp class=\"Yeti-Title\"\u003eGEOMETRY\u003c\/p\u003e\n\u003cp class=\"Yeti-Spec_text\"\u003eAll measurements are shown in millimetres.\u003c\/p\u003e\n\u003cdiv\u003e\u003cpicture\u003e\u003csource type=\"image\/webp\" srcset=\"https:\/\/www.silverfish-uk.com\/media\/.renditions\/wysiwyg\/products\/Yeti\/SB140_GEO_ART-2023.webp\" width=\"800\" height=\"603\"\u003e\u003cimg width=\"800\" height=\"603\" src=\"https:\/\/www.silverfish-uk.com\/media\/.renditions\/wysiwyg\/products\/Yeti\/SB140_GEO_ART-2023.jpg\" alt=\"\" loading=\"lazy\"\u003e\u003c\/picture\u003e\u003c\/div\u003e\n\u003cbr\u003e\n\u003cdiv id=\"overflowTable\"\u003e\n\u003ctable class=\"YetiGeo\"\u003e\n\u003ctbody\u003e\n\u003ctr class=\"c\"\u003e\n\u003ctd\u003e\u003c\/td\u003e\n\u003ctd\u003e160MM FORK\u003c\/td\u003e\n\u003ctd\u003eSM\u003c\/td\u003e\n\u003ctd\u003eMD\u003c\/td\u003e\n\u003ctd\u003eLG\tr class=\"a\"\u003e\n\u003ctd\u003eD\u003c\/td\u003e\n\u003ctd\u003eEFF. SEATTUBE ANGLE\u003c\/td\u003e\n\u003ctd\u003e77.0\u003c\/td\u003e\n\u003ctd\u003e77.0\u003c\/td\u003e\n\u003ctd\u003e77.0\u003c\/td\u003e\n\u003ctd\u003e77.0\u003c\/td\u003e\n\u003ctd\u003e77.0\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eE\u003c\/td\u003e\n\u003ctd\u003eACTUAL SEATTUBE ANGLE\u003c\/td\u003e\n\u003ctd\u003e71.8\u003c\/td\u003e\n\u003ctd\u003e72.2\u003c\/td\u003e\n\u003ctd\u003e72.4\u003c\/td\u003e\n\u003ctd\u003e72.8\u003c\/td\u003e\n\u003ctd\u003e73.3\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eF\u003c\/td\u003e\n\u003ctd\u003eCHAINSTAY LENGTH\u003c\/td\u003e\n\u003ctd\u003e436\u003c\/td\u003e\n\u003ctd\u003e438\u003c\/td\u003e\n\u003ctd\u003e440\u003c\/td\u003e\n\u003ctd\u003e442\u003c\/td\u003e\n\u003ctd\u003e444\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eG\u003c\/td\u003e\n\u003ctd\u003eWHEELBASE\u003c\/td\u003e\n\u00
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 "public_title":"Extra Large \/ Green","options":["Extra Large","Green"],"price":669900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":64739631399295,"position":1,"preview_image":{"aspect_ratio":0.837,"height":833,"width":697,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb2514emr.webp?v=1741953615"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55196410642815,"title":"Extra Large \/ Grey","option1":"Extra Large","option2":"Grey","option3":null,"sku":"YCB25149CXLRGDFXC056600","requires_shipping":true,"taxable":true,"featured_image":{"id":74358288777599,"product_id":14979885334911,"position":2,"created_at":"2025-03-14T12:00:15+00:00","updated_at":"2025-03-14T12:00:15+00:00","alt":null,"width":697,"height":833,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb2514raw.webp?v=1741953615","variant_ids":[55196410347903,55196410446207,55196410544511,55196410642815]},"available":true,"name":"Yeti Cycles SB140 C-Series C2 Lunc<
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(restockRocketContainer);
}
function createRestockRocketScript(scriptUrl) {
true,"name":"Yeti Cycles SB140 C-Series C2 Lunch Ride 29\" Factory Bike - Extra Large \/ Blue","public_title":"Extra Large \/ Blue","options":["Extra Large","Blue"],"price":669900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":64739631464831,"position":3,"preview_image":{"aspect_ratio":0.837,"height":833,"width":697,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb2514turq.webp?v=1741953615"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55196410708351,"title":"Extra Extra Large \/ Green","option1":"Extra Extra Large","option2":"Green","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Yeti Cycles SB140 C-Series C2 Lunch Ride 29\" Factory Bike - Extra Extra Large \/ Green","public_title":"Extra Extra Large \/ Green","options":["Extra Extra Large","Green"],"price":669900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires<slations || {}));
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 !== '') {
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.cachedSet":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/ycb2514emr.webp?v=1741953615","\/\/projektride.co.uk\/cdn\/shop\/files\/ycb2514raw.webp?v=1741953615","\/\/projektride.co.uk\/cdn\/shop\/files\/ycb2514turq.webp?v=1741953615"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb2514emr.webp?v=1741953615","options":["Size","Color"],"media":[{"alt":null,"id":64739631399295,"position":1,"preview_image":{"aspect_ratio":0.837,"height":833,"width":697,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb2514emr.webp?v=1741953615"},"aspect_ratio":0.837,"height":833,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb2514emr.webp?v=1741953615","width":697},{"alt":null,"id":64739631432063,"position":2,"preview_image":{"aspect_ratio":0.837,"height":833,"width":697,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb2514raw.webp?v=1741953615"},"aspect_ratio":0.837,"height":833,"m
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) {
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(winde\n\u003cdiv class=\"Yeti-Text_Intro-BG\"\u003e\n\u003cdiv class=\"Yeti-Text_Intro-Text\"\u003e\n\u003cp class=\"Yeti-Model\"\u003eSB140 LR\u003c\/p\u003e\n\u003cdiv class=\"yet-section yet-group\"\u003e\n\u003cdiv class=\"yet-col yet-span_1_of_2\"\u003e\u003cpicture\u003e\u003csource type=\"image\/webp\" srcset=\"https:\/\/www.silverfish-uk.com\/media\/.renditions\/wysiwyg\/products\/Yeti\/DSC03953.webp\" width=\"350\" height=\"233\"\u003e\u003cimg width=\"350\" height=\"233\" src=\"https:\/\/www.silverfish-uk.com\/media\/.renditions\/wysiwyg\/products\/Yeti\/DSC03953.jpg\" alt=\"\" loading=\"lazy\"\u003e\u003c\/picture\u003e\u003c\/div\u003e\n\u003cdiv class=\"yet-col yet-span_1_of_2\"\u003e\u003cpicture\u003e\u003csource type=\"image\/webp\" srcset=\"https:\/\/www.silverfish-uk.com\/media\/.renditions\/wysiwyg\/products\/Yeti\/DSC03926.webp\" width=\"350\" height=\"233\"\u003e\u003cimg width=\"350\" height=\"233\" src=\"https:\/\/www.silverfish-uk.com\/media\/.renditions\/wysiwyg\/products\/Yeti\/DSC03926.
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/CBE4ED64-46D7-4264-A6FC-2B63FB86B64D_696a86f9-a7f0-498e-b185-b3a24161851d_600x.jpg?v=1761673251)">e?.role === 'main') {
headers['X-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
e if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else if(window._RestockRocketConfig.pageType === 'product') {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct);
} else if(hijackIntegration) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else {
console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig
{
if (hasUpdates) {
console.debug('STOQ - cart selling plans updated su 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.updateCartSellingPlans()
.then(hasUpdates => {
if (hasUpdates) {
console.debug('ST<://d382hokyqag45a.cloudfront.net/assets/OpenSans-Light.woff)}@font-face{font-family:OpenSans;font-weight:300;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-Regular.woff)}@font-face{font-family:OpenSans;font-weight:600;src:url(https://d382hokyqag45a.cloudfront.net/assets/OpenSans-SemiBold.woff)}.restock-rocket-button-container{position:relative;z-index:1;width:100%}.restock-rocket-button-container-float-right{position:fixed;z-index:123123;top:calc(50% - 200px);right:0;transform:rotate(270deg);transform-origin:bottom right}.restock-rocket-button-container-float-left{position:fixed;z-index:123123;top:calc(50% - 200px);left:40px;transform:rotate(90deg);transform-origin:top left}.restock-rocket-button-container-float-left:hover,.restock-rocket-button-container-float-right:hover,.restock-rocket-button-container:hover,.restock-rocket-button-float:hover,.restock-rocket-button:hover{opacity:.8}.restock-rocket-button{min-height:50px;margin-top:10px;margin-bottom:10px}.restock-rocket-button-collection{posbel{flex:1;cursor:pointer;}.restock-rocket-preorder-countdown-timer{display:flex;flex-direction:column;align-items:center;padding:16px;margin:8px 0;font-family:inherit;}.restock-rocket-preorder-countdown-timer .countdown-header{font-size:16px;margin-bottom:6px;text-align:center}.restock-rocket-preorder-countdown-timer .countdown-units{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.restock-rocket-preorder-countdown-timer .countdown-unit{display:flex;flex-direction:column;align-items:center;gap:6px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:40px;padding:10px 6px;text-align:center;font-size:20px;line-height:1}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:14px;font-weight:500;text-align:center;text-transform:capitalize;opacity:.7}@media (max-width:768px){.restock-rocket-preorder-countdown-timer{padding:14px}.restock-rocket-preorder-countdown-timer .countdown-box{min-width:55px;padding:14px 10px;font-size:26px}.restock-rocket-preorder-countdown-timer .coun
n-width:0}.restock-rocket-preorder-discount-badge{background:#ebebeb;height:25px;line-height:25px;padding:0 15px;border-radius:25px;font-size:0.8rem;flex:0 0 auto}.restock-rocket-payment-input{margin-right:10px;margin-top:-3px;vertical-align:middle;margin-left:0;accent-color:#202223}.restock-rocket-payment-description{margin-top:4px;flex:1 1 100%}.restock-rocket-preorder-badge{font-size:13px;line-height:1;padding:5px 13px 6px;border-radius:40px;height:auto;border:none;width:auto;z-index:2;margin:0;background:0 0}.preorder-badge-collection{position:absolute;top:10px;right:10px}.preorder-badge-product{margin-left:10px}.restock-rocket-price-strike{text-decoration:line-through;color: #666666;}.restock-rocket-discounted-price{margin-left:10px;}.restock-rocket-acknowledgement-checkbox{margin-bottom:12px;display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height: 1.5;}.restock-rocket-acknowledge-checkbox-input{width:18px;height:18px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color: #0d0d0d;}.restast-left{left:0;transform:translateX(-100%);-webkit-transform:translateX(-100%);border-radius:0 10px 10px 0}.restock-rocket-toast-left.slide-out{-webkit-animation:.5s forwards slide-out-left;animation:.5s forwards slide-out-left}.restock-rocket-toast-right{right:0;transform:translateX(100%);-webkit-transform:translateX(100%);border-radius:10px 0 0 10px}.restock-rocket-toast-right.slide-out{-webkit-animation:.5s forwards slide-out-right;animation:.5s forwards slide-out-right}@keyframes slide{100%{transform:translateX(0)}}@-webkit-keyframes slide{100%{-webkit-transform:translateX(0)}}@keyframes slide-out-left{0%{transform:translateX(0)}100%{transform:translateX(-100%)}}@-webkit-keyframes slide-out-left{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(-100%)}}@keyframes slide-out-right{0%{transform:translateX(0)}100%{transform:translateX(100%)}}@-webkit-keyframes slide-out-right{0%{-webkit-transform:translateX(0)}100%{-webkit-transform:translateX(100%)}}
ket-preorder-countdown-timer .countdown-label{font-size:11px}}@media (max-width:480px){.restock-rocket-preorder-countdown-timer{padding:12px}.restock-rocket-preorder-countdown-timer .countdown-units{width:100%;gap:10px}.restock-rocket-preorder-countdown-timer .countdown-box{width:100%;min-width:50px;padding:12px 8px;font-size:24px}.restock-rocket-preorder-countdown-timer .countdown-label{font-size:10px}}.restock-rocket-toast{position:fixed;cursor:pointer;background:#fff;border:0;min-width:40px;min-height:40px;box-shadow:0 0 15px rgba(0,0,0,.1)!important;z-index:622004;padding:20px 30px;font-family:inherit;font-size:inherit;color:#000;display:flex;justify-content:center;align-items:center}.restock-rocket-toast a{text-decoration:none;font-weight:700;color:#000}.restock-rocket-toast .dismiss{margin-left:15px;z-index:1;font-size:20px;}.restock-rocket-toast-top{top:60px}.restock-rocket-toast-bottom{bottom:75px}.restock-rocket-toast-left,.restock-rocket-toast-right{-webkit-animation:.5s forwards slide;animation:.5sLife Systems Pocket First Aid Kit - HIRE