_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","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"updat
":2238,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2025-02-04_at_16.11.22.png?v=1738685491"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55070375149951,"title":"Red \/ Black \/ Both \/ Non-Briaded","option1":"Red \/ Black","option2":"Both","option3":"Non-Briaded","sku":null,"requires_shipping":true,"taxable":true,"featured_image":{"id":73286462734719,"product_id":14930969067903,"position":3,"created_at":"2025-02-04T16:11:28+00:00","updated_at":"2025-02-04T16:11:31+00:00","alt":null,"width":2238,"height":1942,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2025-02-04_at_16.11.22.png?v=1738685491","variant_ids":[55070374986111,55070375018879,55070375051647,55070375084415,55070375117183,55070375149951]},"available":true,"name":"Hope Tech 4 V4 (dose not include rotors) - Red \/ Black \/ Both \/ Non-Briaded","public_title":"Red \/ Black \/ Both \/ Non-Briaded","options":["Red \/ Black","Both","Non-Briaded"],"price":48000,"weight":0,"compare_at_price":null,"inventor
:"Blue \/ Black \/ Left \/ Braided","options":["Blue \/ Black","Left","Braided"],"price":25000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":64118899999103,"position":4,"preview_image":{"aspect_ratio":1.152,"height":1942,"width":2238,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2025-02-04_at_16.11.35.png?v=1738685506"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55070375215487,"title":"Blue \/ Black \/ Left \/ Non-Briaded","option1":"Blue \/ Black","option2":"Left","option3":"Non-Briaded","sku":null,"requires_shipping":true,"taxable":true,"featured_image":{"id":73286464274815,"product_id":14930969067903,"position":4,"created_at":"2025-02-04T16:11:41+00:00","updated_at":"2025-02-04T16:11:46+00:00","alt":null,"width":2238,"height":1942,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2025-02-04_at_16.11.35.png?v=1738685506","variant_ids":[55070375182719,55070375215487,55070375248255,55070375281023,5QUICK LINKS
le":"Orange \/ Black \/ Both \/ Non-Briaded","option1":"Orange \/ Black","option2":"Both","option3":"Non-Briaded","sku":null,"requires_shipping":true,"taxable":true,"featured_image":{"id":73286465421695,"product_id":14930969067903,"position":5,"created_at":"2025-02-04T16:11:55+00:00","updated_at":"2025-02-04T16:11:58+00:00","alt":null,"width":2238,"height":1942,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2025-02-04_at_16.11.50.png?v=1738685518","variant_ids":[55070375379327,55070375412095,55070375444863,55070375477631,55070375510399,55070375543167]},"available":true,"name":"Hope Tech 4 V4 (dose not include rotors) - Orange \/ Black \/ Both \/ Non-Briaded","public_title":"Orange \/ Black \/ Both \/ Non-Briaded","options":["Orange \/ Black","Both","Non-Briaded"],"price":48000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":64118901080447,"position":5,"preview_image":{"aspect_ratio":1.152,"height":1942,"width":2238,"src":"\/\/projektrTrack Service Progress
ll,"featured_media":{"alt":null,"id":64118903701887,"position":6,"preview_image":{"aspect_ratio":1.152,"height":1942,"width":2238,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2025-02-04_at_16.12.20.png?v=1738685551"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55070375608703,"title":"Purple \/ Black \/ Left \/ Non-Briaded","option1":"Purple \/ Black","option2":"Left","option3":"Non-Briaded","sku":null,"requires_shipping":true,"taxable":true,"featured_image":{"id":73286469353855,"product_id":14930969067903,"position":6,"created_at":"2025-02-04T16:12:26+00:00","updated_at":"2025-02-04T16:12:31+00:00","alt":null,"width":2238,"height":1942,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2025-02-04_at_16.12.20.png?v=1738685551","variant_ids":[55070375575935,55070375608703,55070375641471,55070375674239,55070375707007,55070375739775]},"available":true,"name":"Hope Tech 4 V4 (dose not include rotors) - Purple \/ Black \/ Left \/ Non-Briaded","public_title":"Purple \/ BBuilding Your Bike From the Box-
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 = 'index';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-11-11T14:27:02.312Z","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":t
- rder_radius":0,"storefront_button_disable_tag_hides_button":true,"storefront_button_disable_tag_enabled":false,"quantity_required":false,"storefront_form_quantity_label":"Quantity","enable_alerts":true,"sms_allowed":false,"email_allowed":true,"collect_promotion_consent_default":true,"insert_button_after_selector":null,"insert_button_after_selector_type":"afterend","storefront_button_position_type":"float-right","storefront_form_duplicate_error":"You've already subscribed for alerts to this product.","storefront_mixed_cart_error":"This item needs to be purchased separately. Please check out or clear your cart before adding this item.","storefront_error_heading":"Error","default_locale":"en","collection_page_button_text_color":"#FFFFFF","collection_page_button_background_color":"#202223","show_button_if_any_out_of_stock":false,"show_button_if_any_variant_out_of_stock_collection":false,"show_button_on_index":false,"insert_button_after_selector_collection":null,"insert_button_after_selector_index":null,"push_enab riant_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":"","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":
- _console_debug":false,"inline_form_enabled":false,"inline_form_selector":null,"inline_form_selector_type":"afterend","storefront_form_prefill_customer":true,"market_setup_type":"single_market","shopify_app_id":5940125,"cache":true,"cached_at":"2025-11-11T14:27:02.333Z","multi_language_enabled":false,"translation_locale":"en"};window._RestockRocketConfig.cachedPreorderVariantIds = {"preorder_variant_ids":[42167799447778,43590980075746,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,4 392904418,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,56220814999935,56220815032703,56270279606655,56270279639423,562702796
- nfig.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: ","delivery_exact_time":null,"delivery_after_n_interval ":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 acknowledge and agree to the preorder terms and conditions for this
- nfig":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.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/assets/restockrocket-product.js' window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019b1405-52e0-7e89-a6c1-1ac7fea6dd8f/restock-rocket-shopify-410/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'); ale)) { console.debug('STOQ - locale not explicitly translated, will use default language from cache'); } // Don't return null - continue using cache even for untranslated locales } const updatedAt = new Date(settings.updated_at); if (isNaN(updatedAt.getTime())) { console.debug('STOQ - Invalid updated_at date format in settings'); return null; } const age = Date.now() - updatedAt.getTime(); if (age
- SETTINGS_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(scriptU ys(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; } } // First try to get settings from metafields with expiry check const cachedSettings = window._RestockRocketConfig.ca
- createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct);
} else if(hijackIntegration) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else {
console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`);
}
// Check and update cart selling plans after scripts are loaded
if (settings.preorder_enabled) {
updateCartSellingPlans();
}
// Dispatch custom event when app is loaded
const appLoadedEvent = new CustomEvent('stoq:loaded', {
detail: {
pageType: window._RestockRocketConfig.pageType,
enabled: settings.enable_app,
settings: settings
}
});
console.debug('STOQ - dispatching app loaded event');
window.dispatchEvent(appLoadedEvent);
}
}
function updateCartSellingPlans() {
// Wait for the API to be available with retries
const maxRetries = 10;
const retryDelay = 500;
function atte
- <utton-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{position:relative;font-size:13px;line-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;mar 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;}.restock-rocket-acknowledge-checkbox-label{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-we
=\"_blank\"\u003e\u003cstrong\u003e\"The V4 stands out from the crowd with its powerful performance, both in the lab and on the trail.\"\u003c\/strong\u003e\u003c\/a\u003e\u003cbr\u003eEnduro Mag\u003cbr\u003e\u003cbr\u003e\u003ca href=\"http:\/\/theloamwolf.com\/2022\/12\/13\/review-hope-tech-4-v4-disc-brakes\/\" target=\"_blank\"\u003e\"My new benchmark for an aggressive mountain bike brake, Hope’s Tech 4 V4’s are absolute powerhouses that deliver their stopping power in a well-controlled manner.\" \u003c\/a\u003e\u003cbr\u003eLoam Wolf\u003cbr\u003e\u003cbr\u003e\u003ca href=\"http:\/\/singletrackworld.com\/2022\/12\/hope-tech-4-v4-disc-brake-review\/\" target=\"_blank\"\u003e\"I can’t fault them. They’ve performed brilliantly and consistently, look great, and have overshadowed brakes I’ve got on other bikes. If I was spending my hard earned for new stoppers, then these would be top of the list.\" \u003c\/a\u003e\u003cbr\u003eSingletrack Magazine's 2022 Editor's Choice Award Winner\u003c\
LARGE0,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"featured_media":{"alt":null,"id":64118893379967,"position":1,"preview_image":{"aspect_ratio":1.152,"height":1942,"width":2238,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2025-02-04_at_16.10.28.png?v=1738685436"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55070374756735,"title":"Black \/ Black \/ Both \/ Non-Briaded","option1":"Black \/ Black","option2":"Both","option3":"Non-Briaded","sku":null,"requires_shipping":true,"taxable":true,"featured_image":{"id":73286452380031,"product_id":14930969067903,"position":1,"created_at":"2025-02-04T16:10:33+00:00","updated_at":"2025-02-04T16:10:36+00:00","alt":null,"width":2238,"height":1942,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot_2025-02-04_at_16.10.28.png?v=1738685436","variant_ids":[55070374592895,55070374625663,55070374658431,55070374691199,55070374723967,55070374756735]},"available":true,"name":"Hope Tech 4 V4 (dose not include ro