Juan Borges DesignsRefund policy
.
Servicing
Servicing
Workshop Prices
Cycle to Work
window._RestockRocketConfig = window._RestockRocketConfig || {}
// Helper function to normalize locale format from hyphen to underscore (e.g., 'en-US' -> 'en_us')
// This matches the backend's Mobility.normalize_locale behavior
// Returns empty string if locale is empty or invalid (matches original behavior)
function normalizeLocale(locale) {
if (!locale || locale.trim() === '') {
return '';
}
return locale.toString().toLowerCase().replace(/-/g, '_');
}
window._RestockRocketConfig.locale = 'en';
window._RestockRocketConfig.normalizedLocale = normalizeLocale('en');
window._RestockRocketConfig.shop = 'projektride.myshopify.com';
window._RestockRocketConfig.pageType = 'product';window._RestockRocketConfig.marketId = 382140642;window._RestockRocketConfig.countryName = 'United Kingdom';
window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.cartInventoryQuantity = {};window._RestockRocketConfig.cachedSettings = {"id":38500,"shop_id":38436,"currency":"GBP","created_at":"2025-07-26T09:13:57.337Z","updated_at":"2025-12-28T14:44:23.508Z","enable_app":true,"enable_signup_widget":false,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":true,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"disableDebugLoggingForNonPreorderItem":false},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placehDelivery & Returns
up_type":"single_market","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":null,"preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","cache":true,"cached_at":"2026-01-08T16:12:13.364Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074,43936000835810,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,43936078037218,43936078069986,43936088195298,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,439361
window._RestockRocketConfig = window._RestockRocketConfig || {}
// Helper function to normalize locale format from hyphen to underscore (e.g., 'en-US' -> 'en_us')
// This matches the backend's Mobility.normalize_locale behavior
// Returns empty string if locale is empty or invalid (matches original behavior)
function normalizeLocale(locale) {
if (!locale || locale.trim() === '') {
return '';
}
return locale.toString().toLowerCase().replace(/-/g, '_');
}
window._RestockRocketConfig.locale = 'en';
window._RestockRocketConfig.normalizedLocale = normalizeLocale('en');
window._RestockRocketConfig.shop = 'projektride.myshopify.com';
window._RestockRocketConfig.pageType = 'product';window._RestockRocketConfig.marketId = 382140642;window._RestockRocketConfig.countryName = 'United Kingdom';
window._RestockRocketConfig.countryIsoCode = 'GB';window._RestockRocketConfig.cartInventoryQuantity = {};window._RestockRocketConfig.cachedSettings = {"id":38500,"shop_id":38436,"currency":"GBP","created_at":"2025-07-26T09:13:57.337Z","updated_at":"2025-12-28T14:44:23.508Z","enable_app":true,"enable_signup_widget":false,"storefront_button_text":"Notify me when available","storefront_button_text_color":"#FFFFFF","storefront_button_background_color":"#202223","storefront_form_header":"Notify me","storefront_form_description":"Get a notification as soon as this product is back in stock by signing up below!","storefront_form_button_text":"Notify me when available","storefront_form_button_text_color":"#FFFFFF","storefront_form_button_background_color":"#202223","storefront_form_terms":"Promise we won't spam. You'll only receive notifications for this product.","storefront_form_error":"Please enter a valid email address","storefront_form_success":"Thank you! We will notify you when the product is available.","enable_powered_by":true,"show_button_on_preorder":true,"sms_enabled":false,"email_enabled":true,"storefront_button_disable_tag":"rocket-hide","theme_config":{"disableDebugLoggingForNonPreorderItem":false},"storefront_form_email_placeholder":"Email address","storefront_form_phone_placeholder":"SMS","storefront_form_phone_label":"Phone number","storefront_form_email_label":"Email","storefront_form_phone_error":"Please enter a valid phone number","storefront_form_customer_name_placehDelivery & Returns
up_type":"single_market","shopify_app_id":5940125,"preorder_progress_bar_insert_selector":null,"preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","cache":true,"cached_at":"2026-01-08T16:12:13.364Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074,43936000835810,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,43936078037218,43936078069986,43936088195298,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,439361
0322,43981392773346,43981392838882,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,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655INFORMATION
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":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,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: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T0
ext":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 acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_ac
648792","width":892},{"alt":null,"id":31376510419170,"position":3,"preview_image":{"aspect_ratio":0.653,"height":888,"width":580,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-01-02at08.33.40.png?v=1672648792"},"aspect_ratio":0.653,"height":888,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-01-02at08.33.40.png?v=1672648792","width":580}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe marriage of cargo racks and hydration cages, the Outpost Cargo Cage gives you the ability to mount additional gear to your bike. Two premium cargo straps secure large bottles, sleeping pads or our Outpost Cargo Bag for hauling all your adventure gear. Turn any bike into an adventure bike.\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eShaped to fit larger bulky bottles, gear and bags\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\
Working Hours"\u003eDual nylon webbing cinch straps with built in rubberized grip\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eThree mounting hole positions for ideal fit and balance\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eTriple Boss fork or frame mounting compatible\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e3kg\/6.6 lb cargo weight limit based on frame or fork standards\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eCompatible with market cargo bags, best paired with Blackburn Outpost Cargo Bag\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e126 grams cage only, straps 14 grams each\u003c\/li\u003e\n\u003c\/ul\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {43724401049826 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {43724401049826 : parseInt("48"),};
window._RestockRocketConfig.variantsPreorderCount = {43724401049826 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {43724401049826 :
ext":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 acknowledge and agree to the preorder terms and conditions for this product.","disable_button_until_ac
648792","width":892},{"alt":null,"id":31376510419170,"position":3,"preview_image":{"aspect_ratio":0.653,"height":888,"width":580,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-01-02at08.33.40.png?v=1672648792"},"aspect_ratio":0.653,"height":888,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2023-01-02at08.33.40.png?v=1672648792","width":580}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe marriage of cargo racks and hydration cages, the Outpost Cargo Cage gives you the ability to mount additional gear to your bike. Two premium cargo straps secure large bottles, sleeping pads or our Outpost Cargo Bag for hauling all your adventure gear. Turn any bike into an adventure bike.\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eShaped to fit larger bulky bottles, gear and bags\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\
Working Hours"\u003eDual nylon webbing cinch straps with built in rubberized grip\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eThree mounting hole positions for ideal fit and balance\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eTriple Boss fork or frame mounting compatible\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e3kg\/6.6 lb cargo weight limit based on frame or fork standards\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eCompatible with market cargo bags, best paired with Blackburn Outpost Cargo Bag\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003e126 grams cage only, straps 14 grams each\u003c\/li\u003e\n\u003c\/ul\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {43724401049826 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {43724401049826 : parseInt("48"),};
window._RestockRocketConfig.variantsPreorderCount = {43724401049826 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {43724401049826 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {43724401049826 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {43724401049826 : null,};
window._RestockRocketConfig.variantsShippingText = {43724401049826 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {43724401049826 : null,};
window._RestockRocketConfig.selected_variant_id = 43724401049826;
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/019bf9e0-3016-7510-aaea-4318e35b6645/restock-rocket-shopify-436/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019bf9e0-3016-7510-aaea-4318e35b6645/restock-rocket-shopify-436/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
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
Mon - Fri: 09:00 <
!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[keyabled)) {
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.pageType}`);
}
// Dispatch custom event when app is loaded
// Cart selling plan updates will be t
!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[keyabled)) {
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.pageType}`);
}
// Dispatch custom event when app is loaded
// Cart selling plan updates will be t
Tel
ess-bar .preorder-progress-bar-row{display:flex;align-items:center;gap:10px;}.restock-rocket-preorder-progress-bar .preorder-progress-track{flex:1;height:12px;overflow:hidden;}.restock-rocket-preorder-progress-bar .preorder-progress-fill{display:block;height:100%;min-width:2px;transition:width 0.3s ease;}.restock-rocket-preorder-progress-bar .preorder-progress-percentage{font-weight:500;min-width:35px;text-align:right;}
ess-bar .preorder-progress-bar-row{display:flex;align-items:center;gap:10px;}.restock-rocket-preorder-progress-bar .preorder-progress-track{flex:1;height:12px;overflow:hidden;}.restock-rocket-preorder-progress-bar .preorder-progress-fill{display:block;height:100%;min-width:2px;transition:width 0.3s ease;}.restock-rocket-preorder-progress-bar .preorder-progress-percentage{font-weight:500;min-width:35px;text-align:right;}
Location
EH9 1QN
EH9 1QN Website by
Juan Borges Designs
.
.
false,"storefront_form_empty_error":"Please fill in one or more of the options above","storefront_form_push_input":"Send notification to your browser","insert_button_after_selector_page":null,"show_button_on_page":false,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it's restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":null,"preorder_add_to_cart_button_selector":"","preorder_badge_selector":"","pre
order_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_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":"","preorder_button_disclaimer_insert_selector_type":"afterend","preorder_payment_insert_selector":"","preorder_payment_insert_selector_type":"afterend","preorder_price_container_selector":"","preorder_price_container_selector_insert_type":"afterend","preorder_terms_insert_selector":"","preorder_terms_insert_selector_type":"afterend","preorder_original_price_selector":"","preorder_price_format":"{{amount}} {{currency}}","show_badge_if_any_variant_is_preorder":false,"enable_console_debug":false,"inline_form_enabled":false,"inline_form_selector":null,"inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"storefront_form_show_image":false,"storefront_form_text_color":"#202223","storefront_form_background_color":"#FFFFFF","storefront_form_border_radius":0,"market_setup_type":"single_market","shopify_app_id":5940125,"preo
rder_progress_bar_insert_selector":null,"preorder_progress_bar_insert_selector_type":"beforebegin","countdown_timer_insert_selector":null,"countdown_timer_insert_selector_type":"afterend","cache":true,"cached_at":"2026-01-08T16:12:13.364Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43916521013474,43934694998242,43934695031010,43934695620834,43935975440610,43935975473378,43935989399778,43935989432546,43935990284514,43935994118370,43935995625698,43935995855074,43936000835810,43936003195106,43936003227874,43936008012002,43936008044770,43936022757602,43936022790370,43936022823138,43936022855906,43936056115426,43936061030626,43936064930018,43936070631650,43936078037218,43936078069986,43936088195298,43936093470946,43936101138658,43936107266274,43936124076258,43936124109026,43936124141794,43936124174562,43936129941730,43936129974498,43936130007266,43936142393570,43936142426338,43936142459106,43936152060130,43936152092898,43936152125666,43936193118434,43936250429666,43936255803618,43936266682594,43936266715362,43936293978338,43936294011106,43936316424418,43936316457186,43936320880866,43936320913634,43936320946402,43936327041250,43936327074018,43936327106786,43936331661538,43936332349666,43936333103330,43936351224034,43936353714402,43936362889442,43936362922210,43936388153570,43936389333218,43936395526370,43936398508258,43936401522914,43936408568034,43936414400738,43936700727522,43936706101474,43936706134242,43936706167010,43936706199778,43936706232546,43936706265314,43938308587746,43938308653282,43938308718818,43938308751586,43938308784354,43938308817122,43938322612450,43938322645218,43938322677986,43981336051938,43981336084706,43981336117474,43981336150242,43981345587426,43981345620194,43981345652962,43981345685730,43981357580514,43981357613282,43981362462946,43981362495714,43981362528482,43981369016546,43981369049314,43981374914786,43981374947554,43981374980322,43981392773346,43981392838882,43981392904418,43981
695844578,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,55570550194559,55570550227327,55604008976767,55638316908927,55638316941695,55638316974463,56220814999935,56220815032703,56270279606655,56270279639423,56270279672191,56314171064703,563141710
97471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-01-27T17:03:12Z","market_locations_enabled":false,"market_id":382140642,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-01-27T16:45:04Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2026-01-27T16:45:04Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantShippingText
sMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,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: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_tehuge super grippy platform with 10 rear-loading steel pins per side to keep your feet planted on even the roughest of trails. With a weight of only 355g, they won't slow you down on the climbs. Designed from stealth rubber down and shaped with a subtle convex profile to provide you with more grip thanks to the pedal sitting in the natural arch of your foot. The thin leading edge chamfered design gives you maximum clearance to reduce pedal strikes and deflect off trail obstacles.\u003c\/p\u003e\n\u003ch2 data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eOneUp Flat Composite Pedals Features\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003e10 rear-loading Steel pins\/side, with Nyloc nuts\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eDU plus cartridge bearing axle system\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eThin leading edge chamfered design to deflect off obstacles\u003c\/li\u003e\n\u003cli data-
mce-fragment=\"1\"\u003eWide platform design for increased stability\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eContoured shape provides an ultimate connected feel\u003c\/li\u003e\n\u003c\/ul\u003e","published_at":"2025-02-01T09:48:00+00:00","created_at":"2021-12-09T10:59:27+00:00","vendor":"OneUp","type":"","tags":["Pedals","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":4950,"price_min":4950,"price_max":4950,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":42140096102626,"title":"Black","option1":"Black","option2":null,"option3":null,"sku":"1C0399BLK","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"One-Up Components Composite Pedals - Black","public_title":"Black","options":["Black"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling
97471,56398983725439,56398983758207,56398983790975,56399322251647,56565020721535,56565020754303,56565020787071],"updated_at":"2026-01-27T17:03:12Z","market_locations_enabled":false,"market_id":382140642,"preorder_location_filter_enabled":false,"preorder_location_filter_ids":[],"collection_id":null};window._RestockRocketConfig.cachedInStockVariantIds = { in_stock_variant_ids: [] };window._RestockRocketConfig.cachedOutOfStockVariantIds = { out_of_stock_variant_ids: [] };window._RestockRocketConfig.cachedVariantPreorderLimits = {"variant_preorder_limits":{},"updated_at":"2026-01-27T16:45:04Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantPreorderLimitsMarketKey = "variant_preorder_limits_for_market_382140642";window._RestockRocketConfig.cachedVariantShippingTexts = {"variant_shipping_texts":{},"updated_at":"2026-01-27T16:45:04Z","shopify_market_id":382140642,"market_locations_enabled":false};
window._RestockRocketConfig.cachedVariantShippingText
sMarketKey = "variant_shipping_texts_for_market_382140642";window._RestockRocketConfig.sellingPlans = [{"shopify_selling_plan_group_id":98590196095,"shopify_selling_plan_id":713071886719,"enabled":true,"variant_ids":[55569712382335,55569712415103,55569712480639,55570017616255,55570017550719,55569712447871,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: ","delivery_exact_time":null,"delivery_after_n_intervals":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_tehuge super grippy platform with 10 rear-loading steel pins per side to keep your feet planted on even the roughest of trails. With a weight of only 355g, they won't slow you down on the climbs. Designed from stealth rubber down and shaped with a subtle convex profile to provide you with more grip thanks to the pedal sitting in the natural arch of your foot. The thin leading edge chamfered design gives you maximum clearance to reduce pedal strikes and deflect off trail obstacles.\u003c\/p\u003e\n\u003ch2 data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eOneUp Flat Composite Pedals Features\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003e10 rear-loading Steel pins\/side, with Nyloc nuts\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eDU plus cartridge bearing axle system\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eThin leading edge chamfered design to deflect off obstacles\u003c\/li\u003e\n\u003cli data-
mce-fragment=\"1\"\u003eWide platform design for increased stability\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eContoured shape provides an ultimate connected feel\u003c\/li\u003e\n\u003c\/ul\u003e","published_at":"2025-02-01T09:48:00+00:00","created_at":"2021-12-09T10:59:27+00:00","vendor":"OneUp","type":"","tags":["Pedals","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":4950,"price_min":4950,"price_max":4950,"available":true,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":42140096102626,"title":"Black","option1":"Black","option2":null,"option3":null,"sku":"1C0399BLK","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"One-Up Components Composite Pedals - Black","public_title":"Black","options":["Black"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":42140096135394,"title":"Red","option1":"Red","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":36266272850146,"product_id":7469339214050,"position":2,"created_at":"2021-12-09T10:59:46+00:00","updated_at":"2021-12-09T10:59:46+00:00","alt":null,"width":800,"height":720,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-components-comp-flat-mtb-pedals-internal-rednotset-1c0399grn.jpg?v=1639047586","variant_ids":[42140096135394]},"available":false,"name":"One-Up Components Composite Pedals - Red","public_title":"Red","options":["Red"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":28815665725666,"position":2,"preview_image":{"aspect_ratio":1.111,"height":720,"width":800,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-components-comp-flat-mtb-pedals-internal-rednotset-1c0399grn.jpg?v=1639047586"}},"requires_selling_plan":false,"selling_plan
_allocations":[]},{"id":44329993437410,"title":"purple","option1":"purple","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":39633801609442,"product_id":7469339214050,"position":7,"created_at":"2023-09-04T15:21:42+01:00","updated_at":"2023-09-04T15:21:44+01:00","alt":null,"width":1600,"height":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_PURPLE_Top.jpg?v=1693837304","variant_ids":[44329993437410]},"available":true,"name":"One-Up Components Composite Pedals - purple","public_title":"purple","options":["purple"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":32239621898466,"position":7,"preview_image":{"aspect_ratio":1.0,"height":1600,"width":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_PURPLE_Top.jpg?v=1693837304"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44329993470178,"title":"Green","option1":"Green","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":39633801314530,"product_id":7469339214050,"position":6,"created_at":"2023-09-04T15:21:16+01:00","updated_at":"2023-09-04T15:21:18+01:00","alt":null,"width":1600,"height":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_GREEN_Top.jpg?v=1693837278","variant_ids":[44329993470178]},"available":true,"name":"One-Up Components Composite Pedals - Green","public_title":"Green","options":["Green"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":32239621603554,"position":6,"preview_image":{"aspect_ratio":1.0,"height":1600,"width":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_GREEN_Top.jpg?v=1693837278"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44329993502946,"title":"Orange","option1":"Orange","option2":null,"option3":null,"sku":""
,"requires_shipping":true,"taxable":true,"featured_image":{"id":39633801281762,"product_id":7469339214050,"position":5,"created_at":"2023-09-04T15:20:56+01:00","updated_at":"2023-09-04T15:20:58+01:00","alt":null,"width":1600,"height":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_ORANGE_Top.jpg?v=1693837258","variant_ids":[44329993502946]},"available":true,"name":"One-Up Components Composite Pedals - Orange","public_title":"Orange","options":["Orange"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":32239621538018,"position":5,"preview_image":{"aspect_ratio":1.0,"height":1600,"width":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_ORANGE_Top.jpg?v=1693837258"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44329993535714,"title":"Blue","option1":"Blue","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":39633801183458,"product_id":7469339214050,"position":4,"created_at":"2023-09-04T15:20:33+01:00","updated_at":"2023-09-04T15:20:35+01:00","alt":null,"width":1600,"height":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_BLUE_Top.jpg?v=1693837235","variant_ids":[44329993535714]},"available":true,"name":"One-Up Components Composite Pedals - Blue","public_title":"Blue","options":["Blue"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":32239621406946,"position":4,"preview_image":{"aspect_ratio":1.0,"height":1600,"width":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_BLUE_Top.jpg?v=1693837235"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44329993568482,"title":"Teal","option1":"Teal","option2":null,"option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":{"id":39633800921314,"product_id":7469339214050,"position":3,"crea
ted_at":"2023-09-04T15:20:06+01:00","updated_at":"2023-09-04T15:20:09+01:00","alt":null,"width":1600,"height":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_TURQUOISE_Top.jpg?v=1693837209","variant_ids":[44329993568482]},"available":true,"name":"One-Up Components Composite Pedals - Teal","public_title":"Teal","options":["Teal"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":32239621079266,"position":3,"preview_image":{"aspect_ratio":1.0,"height":1600,"width":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_TURQUOISE_Top.jpg?v=1693837209"}},"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-composite-pedals-p56008-179347_image.jpg?v=1639047569","\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-components-comp-flat-mtb-pedals-internal-rednotset-1c0399grn.jpg?v=1639047586","\/\/projektride.co.uk\/c
dn\/shop\/files\/OneUp-Components_CompPedal_TURQUOISE_Top.jpg?v=1693837209","\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_BLUE_Top.jpg?v=1693837235","\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_ORANGE_Top.jpg?v=1693837258","\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_GREEN_Top.jpg?v=1693837278","\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_PURPLE_Top.jpg?v=1693837304"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-composite-pedals-p56008-179347_image.jpg?v=1639047569","options":["Color"],"media":[{"alt":null,"id":28815663202530,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1000,"width":1000,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-composite-pedals-p56008-179347_image.jpg?v=1639047569"},"aspect_ratio":1.0,"height":1000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-composite-pedals-p56008-179347_image.jpg?v=1639047569","width":1000},{"alt,44329993502946 : parseInt(""),44329993535714 : parseInt(""),44329993568482 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {42140096102626 : null,42140096135394 : null,44329993437410 : null,44329993470178 : null,44329993502946 : null,44329993535714 : null,44329993568482 : null,};
window._RestockRocketConfig.variantsShippingText = {42140096102626 : "",42140096135394 : "",44329993437410 : "",44329993470178 : "",44329993502946 : "",44329993535714 : "",44329993568482 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {42140096102626 : null,42140096135394 : null,44329993437410 : null,44329993470178 : null,44329993502946 : null,44329993535714 : null,44329993568482 : null,};
window._RestockRocketConfig.selected_variant_id = 44329993535714;
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/019bf9e0-3016-7510-aaea-4318e35b6645/restock-rocket-shopify-436/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019bf9e0-3016-7510-aaea-4318e35b6645/restock-rocket-shopify-436/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
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 transla
ted_at":"2023-09-04T15:20:06+01:00","updated_at":"2023-09-04T15:20:09+01:00","alt":null,"width":1600,"height":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_TURQUOISE_Top.jpg?v=1693837209","variant_ids":[44329993568482]},"available":true,"name":"One-Up Components Composite Pedals - Teal","public_title":"Teal","options":["Teal"],"price":4950,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":32239621079266,"position":3,"preview_image":{"aspect_ratio":1.0,"height":1600,"width":1600,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_TURQUOISE_Top.jpg?v=1693837209"}},"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-composite-pedals-p56008-179347_image.jpg?v=1639047569","\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-components-comp-flat-mtb-pedals-internal-rednotset-1c0399grn.jpg?v=1639047586","\/\/projektride.co.uk\/c
dn\/shop\/files\/OneUp-Components_CompPedal_TURQUOISE_Top.jpg?v=1693837209","\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_BLUE_Top.jpg?v=1693837235","\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_ORANGE_Top.jpg?v=1693837258","\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_GREEN_Top.jpg?v=1693837278","\/\/projektride.co.uk\/cdn\/shop\/files\/OneUp-Components_CompPedal_PURPLE_Top.jpg?v=1693837304"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-composite-pedals-p56008-179347_image.jpg?v=1639047569","options":["Color"],"media":[{"alt":null,"id":28815663202530,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1000,"width":1000,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-composite-pedals-p56008-179347_image.jpg?v=1639047569"},"aspect_ratio":1.0,"height":1000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/oneup-composite-pedals-p56008-179347_image.jpg?v=1639047569","width":1000},{"alt,44329993502946 : parseInt(""),44329993535714 : parseInt(""),44329993568482 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {42140096102626 : null,42140096135394 : null,44329993437410 : null,44329993470178 : null,44329993502946 : null,44329993535714 : null,44329993568482 : null,};
window._RestockRocketConfig.variantsShippingText = {42140096102626 : "",42140096135394 : "",44329993437410 : "",44329993470178 : "",44329993502946 : "",44329993535714 : "",44329993568482 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {42140096102626 : null,42140096135394 : null,44329993437410 : null,44329993470178 : null,44329993502946 : null,44329993535714 : null,44329993568482 : null,};
window._RestockRocketConfig.selected_variant_id = 44329993535714;
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/019bf9e0-3016-7510-aaea-4318e35b6645/restock-rocket-shopify-436/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019bf9e0-3016-7510-aaea-4318e35b6645/restock-rocket-shopify-436/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
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 cac
he 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_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) {
const restockRocketScriptElement = document.createElement('script');
restockRocketScriptElement.setAttribute('defer', 'defer');
restockRocketScriptElement.src = scriptUrl;
document.body.appendChild(restockRocketScriptElement);
}
createRestockRocketContainer()
console.debug('STOQ - extension activated')
function applyTranslations(settings) {
try {
// Skip translation logic entirely if multi-language is not enabled
if (!settings ||
!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
];
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;
}
}
// Setup event listener for cart selling plan updates
// This must be called before any scripts are loaded to avoid race conditions
function setupCartSellingPlanUpdater(settings) {
if (!settings || !settings.preorder_enabled) {
return;
}
// Listen for stoq:preorder-api-ready event dispatched by preorder.js
window.addEventListener('stoq:preorder-api-ready', function(event) {
console.debug('STOQ - Preorder API ready, updating cart selling plans');
if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
window._RestockRocket.updat
!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
];
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;
}
}
// Setup event listener for cart selling plan updates
// This must be called before any scripts are loaded to avoid race conditions
function setupCartSellingPlanUpdater(settings) {
if (!settings || !settings.preorder_enabled) {
return;
}
// Listen for stoq:preorder-api-ready event dispatched by preorder.js
window.addEventListener('stoq:preorder-api-ready', function(event) {
console.debug('STOQ - Preorder API ready, updating cart selling plans');
if (window._RestockRocket && window._RestockRocket.updateCartSellingPlans) {
window._RestockRocket.updat
.restock-rocket-button,.restock-rocket-button-float{opacity:1!important;border:none!important;cursor:pointer!important;backgrou
nd-image:none!important;box-shadow:none!important;padding:15px 20px;font-size:16px;width:100%;font-family:inherit}@font-face{font-family:OpenSans;font-weight:200;src:url(https://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-rock-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:.5s forwards slide}.restock-rocket-toast-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%)}}.restock-rocket-preorder-progress-bar{padding:12px 15px;margin-bottom:20px;font-family:inherit;}.restock-rocket-preorder-progress-bar .preorder-progress-text{margin-bottom:8px;}.restock-rocket-preorder-progress-bar .preorder-progress-bar-row{display:flex;align-items:center;gap:10px;}.restock-rocket-preorder-progress-bar .preorder-progress-track{flex:1;height:12px;overflow:hidden;}.restock-rocket-preorder-progress-bar .preorder-progress-fill{display:block;height:100%;min-width:2px;transition:width 0.3s ease;}.restock-rocket-preorder-progress-bar .preorder-progress-percentage{font-weight:500;min-width:35px;text-align:right;}
Hope Tech 4 E4 (dose not include rotors)
£215.00
Product Details
The Tech 4 E4 builds on our 25+ years’ experience designing and manufacturing hydraulic brake systems. The Tech 4 uses all new internal sealing for reduced friction and the pivot spins on roller bearings, allowing the spring rate to be reduced. The lower spring rate in turn gives a lighter lever action, reducing rider fatigue and keeping our legendary feel and modulation.
The updated E4 caliper utilises hybrid style Stainless steel pistons with a phenolic insert allowing for smoother movement and less maintenance, while still able to manage high temperatures without heat transfer during extreme use.
Key Features
// Increased power versus Tech 3
// Lever shape updated to provide a more ergonomic shape orientated to provide the best mechanical advantage during braking.
// Hinged clamp reducing weight and to improve ergonomics
// Tool free bite point and reach adjustments
// Hybrid piston design
// Rigid CNC'd one piece caliper
// Compatible with a wider range of current shifter options
// Complete brake available in Black or Silver with colour accent options of; Black, silver, purple, red, blue, or orange.
// Choose either standard or braided hose (braided hose is an extra cost)
// 30% pressure increase compared with the Tech 3 brake
// Reservoir area increased to lower overall stack height.
// Shifter integration has been improved and now offers 30° of angle adjustment as well as neater packaging and compatibility with the latest shifters. Lateral adjustment on both sides of the master // cylinder is also possible to give a wide range of lever position options.
// Hybrid-style pistons that allow smoother movement and require less maintenance, and a phenolic insert to manage heat transfer during extreme use.
// The Tech 4 retains the tool-free bite point and reach adjustments from the Tech 3
// All Tech 4 brakes are supplied with new racing compound pads. For more information on all our pad compounds see the new pad guide here.
// Maxium Rotor thickness for E4 caliper 2.3mm
// Available in Black, Silver, Red, Blue, Orange & Purple
REVIEWS
"These brakes are extremely impressive and are unmatched in the lever feel and modulation department… Their impressive machining, reliability, and superior performance make them my top pick for MTB brakes."
Bikepacking.com
"Hats off to Hope; these new Tech 4s are rock solid with a superbly smooth feel and have become my new number one brake of choice."
MBR
"Their power rivals other premium stoppers and they have proved to be a reliable brake option with excellent modulation."
Singletracks
"Awesome power with fantastic modulation and a new, lighter lever feel that makes it the worthy recipient of our Product of the Year award for 2022."
VitalMTB
"I could rave on, but in short, these are the best brakes I have used to date."
NSMB
"The Hope Tech 4 E4 brakes might seem like a funny middle child in the Hope Brake lineup, between the 2-piston offerings and their strongest V4 model, but I think the mix of modulation and stop power is ideal for most all-mountain usage."
LoamWolf
"It provides plenty of braking confidence in any scenario, regardless of the weather."
Fanatik

img src="//projektride.co.uk/cdn/shop/files/logo_header_2048x2048.png?v=1634060673" alt="" class="logo--footer">
QUICK LINKS
Contact Us
<
Building Your Bike From the Boxdiv class="featured-image__bg bg-pos-center-center" style="background-image: url('//projektride.co.uk/cdn/shop/files/2571D9FF-E9AE-4004-9A55-C7FD4DD999D6_2048x.jpg?v=1640941114');">
Cookie Policy
Buy Sell Ride Confident
Blog
ProjektRideInsure Your Bike
Website by Terms of Service