ckRocketConfig.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 Log in
Brake PadsCreate account
buy_button_selector":null,"preorder_add_to_cart_button_selector":"","preorder_badge_selector":"","preorder_button_out_of_stock_text":"Out of stock","preorder_button_add_to_cart_text":"Add to cart","preorder_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_enabled":false,"preorder_collection_form_selector":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_bad
49314,43981374914786,43981374947554,43981374980322,43981392904418,43981695844578,43981695877346,43981695910114,43981695942882,43981986070754,43981987905762,43981987938530,44052906967266,44052907327714,44052907360482,44052907393250,44052907426018,44052907458786,44052907491554,44052909097186,44052909129954,44140302827746,44140302893282,44140317016290,44155590508770,44155590541538,44155594211554,44155594244322,44155594277090,44155594309858,44155594342626,44155594375394,44155594440930,44155594473698,44155594506466,44195991847138,44195991945442,44329993437410,44329993470178,44329993502946,44329993535714,44329993568482,44957136584930,44957136781538,44957136945378,45068753961186,45068753993954,45069622640866,45069622903010,45069622968546,45069750730978,45069750763746,45353010921698,45353010954466,45353010987234,45353018261730,45353018294498,45353018327266,55569712382335,55569712447871,55569712480639,55569933074815,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,5622081499993t_locations_enabled":false};
window._RestockRocketConfig.cachedVariantShippingTextsMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569933140351,55569712382335,55569712415103,55569712480639,55569933173119,55570017616255,55569933074815,55570017550719,55569712447871,55569933107583,55570017583487],"product_variants_source":"custom","name":"Preorder","preorder_button_text":"Preorder","preorder_button_description":"Note: This is a preorder. Items will ship based on the estimated delivery date.","preorder_button_description_background_color":"#ebebeb","preorder_button_description_text_color":"#000000","preorder_button_description_border_radius":10,"preorder_button_description_show_quantity_limit":false,"preorder_button_description_quantity_limit_suffix":" units available for preorder","preorder_button_description_shipping_text_prefix":"Shipping:erty_enabled":false,"shipping_line_item_property_enabled":true,"custom_line_item_property_text":null,"preorder_button_text_color":"#ffffff","preorder_button_background_color":"#565557","preorder_button_colors_enabled":true,"markets_enabled":false,"market_id":13779632354,"shopify_market_ids":[],"use_shopify_selling_plan":true,"use_simplified_shipping_text":false,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledgee,"quantityLimitDisabled":false},"type":"hijack","css_config":null,"js_config":null,"created_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfig.product = {"id":8640113705186,"title":"Hydrapak Force 3L","handle":"hydrapak-force-3l","description":"\u003cp\u003eDesigned for action, the Force is built ultra-durable with hunters and tactical operators in mind. A new, lightweight and rugged 840D Nylon handle that’s there when you need to grab your reservoir and tucks away when you don’t. The 36” flexible HydraFusion™ drink tube insulates in hot weather and protects in tough conditions. The high-flow bite valve not only has a dust cover, but self-seals and features a one hand on\/off lever to prevent leaks.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eULTRA DURABLE\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eMade of ultra-durable, abrasion resistant TPU with 3eNew, lightweight valve self seals after each sip and can be opened and locked with one hand to prevent leaks when not in use.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003ePLUG-N-PLAY CONNECT SYSTEM\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eEasily disconnect the drink tube (an auto shut off valve prevents leaking) and remove the reservoir from your pack for convenient refilling.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eEASY TO REVERSE\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eReverse the reservoir for deep cleaning and complete drying.\u003c\/p\u003e\n\u003cdiv id=\"accordion-benefits\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cdiv\u003ePlug-N-Play® connect system lets you easily disconnect the drink tube from the reservoir for easy filling\u003c\/div\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cdiv\u003eMade of ultra-durable, abrasion resistant TPU \u0026amp; RF welded seams for superior durability and elasticity\u00
default\" data-element_type=\"section\"\u003e\n\u003cdiv class=\"elementor-container elementor-column-gap-default\"\u003e\n\u003cdiv class=\"elementor-row\"\u003e\n\u003cdiv class=\"elementor-column elementor-element elementor-element-5dm5gg2 elementor-col-100 elementor-top-column\" data-element_type=\"column\"\u003e\n\u003cdiv class=\"elementor-column-wrap elementor-element-populated\"\u003e\n\u003cdiv class=\"elementor-widget-wrap\"\u003e\n\u003cdiv class=\"elementor-widget elementor-element elementor-element-kt2kot9 elementor-widget-video elementor-aspect-ratio-169\" data-element_type=\"video.default\"\u003e\n\u003cdiv class=\"elementor-widget-container\"\u003e\n\u003cdiv class=\"elementor-video-wrapper\"\u003e\n\u003cdiv class=\"tab-pane fade\" id=\"product-details\" data-product='{\"id_shop_default\":\"1\",\"id_manufacturer\":\"18\",\"id_supplier\":\"0\",\"reference\":\"HYAS263\",\"is_virtual\":\"0\",\"delivery_in_stock\":\"\",\"delivery_out_stock\":\"\",\"id_category_default\":\"77\",\"on_sale\":\"0\",\ed. A 3D bottom, Shape-Loc\\u2122 baffles and side exit port combine to provide superior fit and performance in the widest variety of packs for extended backpacking and hiking adventures.\u0026lt;\\\/p\u0026gt;\\n\u0026lt;ul style=\\\"list-style-type:disc;\\\"\u0026gt;\\n\u0026lt;li\u0026gt;UNIVERSAL HANGER: Compatible with clips, hooks \u0026amp;amp; loops in a wide range of packs.\u0026lt;\\\/li\u0026gt;\\n\u0026lt;li\u0026gt;COMET\\u2122 BITE VALVE: Lightweight, self-sealing valve can be opened \u0026amp;amp; locked with one hand.\u0026lt;\\\/li\u0026gt;\\n\u0026lt;li\u0026gt;GRAB HANDLE: Soft touch flexible handle simplifies filling \u0026amp;amp; carrying.\u0026lt;\\\/li\u0026gt;\\n\u0026lt;li\u0026gt;SLIM PROFILE: Shape-loc baffles create a low reservoir profile \u0026amp;amp; increase stabilization during activities.\u0026lt;\\\/li\u0026gt;\\n\u0026lt;li\u0026gt;REVERSIBLE: Use the internal drying tab to reverse the reservoir for deep cleaning and complete drying.\u0026lt;\\\/li\u0026gt;\\n\u0026lt;li\
span>{{ it.product.badgeText | safe }}Checkout the hire items in your basket and pay with all major credit cards, PayPal or Klarna. Payments can be made in store without going through the online shop. Please call the shop to book out in-person.>
>
{{/if}}
img src="//projektride.co.uk/cdn/shop/files/collection_512x512.png?v=1690612759" alt="" class="icons-row__image">
Bike Packingli class="result result--full">
5. Collect In Store
p class="result__title">{{ it.item.text }}Collect your bike in store alongside all optional equipment. Please bring a form of identification (Driver's licence or Passport) to complete the booking.>
>
Second-Hand BikesProduct Details
<
Our Disc Brake Cleaner can improve braking performance by rapidly removing brake dust and oil, as well as dirt and grime from all braking parts. Its unique formula has added conditioners that rehydrate your disc brake pads to dramatically reduce brake squeal, prolong the disc pad life and restore braking performance.<
<
Muc-Off Disc Brake Cleaner air-dries rapidly without leaving any residue, and it’s perfectly safe on rubber, plastic, anodized metals, carbon fibre and painted surfaces.
<
Second-Hand BikesShop All Second-HandCustom Builds
I'm looking to buy this product, when will it arrive and how much does postage cost?
Seat Posts & ClampsForks
We also have a physical store, if you are local please pop in -
alse,"translations":{},"payment_options":[{"billing_type":"no_remaining_balance","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","billing_at":"2025-07-26T09:20:38.472Z","billing_after_n_intervals":7,"billing_after_interval_type":"day","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"billing_title":"Full payment","billing_description":null,"discount_text":"Save {{ discount }}","shopify_selling_plan_id":713071886719,"is_default":true,"type":"full","translations":{}}],"require_preorder_acknowledgement":false,"preorder_acknowledgement_text":"I acknowledge and agree to the preorder terms and conditions for this product.","preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","countdown_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5
Count = {42133857042658 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {42133857042658 : null,};
window._RestockRocketConfig.variantsShippingText = {42133857042658 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {42133857042658 : null,};
window._RestockRocketConfig.selected_variant_id = 42133857042658;
window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019b6e86-8dbc-7c58-99fb-8c695965347e/restock-rocket-shopify-423/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b6e86-8dbc-7c58-99fb-8c695965347e/restock-rocket-shopify-423/assets/restockrocket-collection.js'
window._RestockRocketConfig.scriptHost = window._RestockRocketConfhe, 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