_shipping":true,"preorder_button_description_icons_enabled":true,"preorder_shipping_text":"Shipping: {{ date }}","shipping_applies_to_all_products":true,"shipping_text":"Estimated to ship within 2 months","payment_type":"full","billing_checkout_charge_type":"percentage","billing_checkout_charge_amount":null,"billing_checkout_charge_percentage":"100.0","pricing_type":"no_discount","pricing_amount":null,"pricing_percentage":null,"discount_text":"Save {{ discount }}","billing_title":"Full payment","billing_description":null,"enable_billing_widget":false,"inventory_provider":"stoq","preorder_badge_enabled":false,"preorder_badge_text":"Preorder","preorder_badge_text_color":"#FFFFFF","preorder_badge_background_color":"#000000","preorder_discounted_price_enabled":null,"payment_line_item_property_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,"marke
ts_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_acknowledged":false,"preorder_min_quantity":null,"preorder_max_quantity":null,"countdown_timer_enabled":false,"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,"schedule_offer":false,"schedule_start_date":null,"schedule_end_date":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true,"mixed_cart_error_message":"Preorders must be purchased separately from regular items. Please complete your current order first, or clear your cart to continue.","b2b_enabled":true,"preorder_progress_bar_enabled":false,"preorder_progress_bar_text":"{{ sold }} of {{ total }} claimed","preorder_progress_bar_fill_color":"#000000","preorder_progress_bar_background_color":"#e5e5e5","preorder_progress_bar_text_color":"#FFFFFF","preorder_progress_bar_border_radius":4,"preorder_progress_bar_show_percentage":false}];window._RestockRocketConfig.intProjektRideegrations = [{"id":"15c94526-b6b8-4de1-9bc1-23b1ca52ddb0","shop_id":38436,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"toastDuration":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"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":15398332727679,"title":"Early Rider Belter 14 Violet Haze","handle":"early-rider-belter-14-violet-haze","description":"\u003cp\u003eDesigned for confident city and urban riding, thie Belter 14 features an updated geometry for enhanced stability and responsive handling. The aluminium frameset with sliding dropouts supports a low-maintenance 8mm belt drivetrain, while sealed bearing wheels and Kenda Aptor 1.75\" tires ensure a smooth, reli
able ride. Reduced-diameter grips and kid-optimized gear ratios provide comfort and control for growing hands and legs—perfect for young urban explorers.\u003c\/p\u003e","published_at":"2025-11-13T16:39:38+00:00","created_at":"2025-11-13T16:39:38+00:00","vendor":"Early Rider","type":"Bike","tags":["Early Rider","spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":52900,"price_min":52900,"price_max":52900,"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":56393232974207,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":"BR14-VH-2-IC","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Early Rider Belter 14 Violet Haze","public_title":null,"options":["Default Title"],"price":52900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":null,"requires_selling_plan":false,"selling_plBuy Sell Ride Confidentan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/B14_Violet.jpg?v=1763051981"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/B14_Violet.jpg?v=1763051981","options":["Title"],"media":[{"alt":null,"id":68666753974655,"position":1,"preview_image":{"aspect_ratio":1.112,"height":2159,"width":2400,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/B14_Violet.jpg?v=1763051981"},"aspect_ratio":1.112,"height":2159,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/B14_Violet.jpg?v=1763051981","width":2400}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eDesigned for confident city and urban riding, thie Belter 14 features an updated geometry for enhanced stability and responsive handling. The aluminium frameset with sliding dropouts supports a low-maintenance 8mm belt drivetrain, while sealed bearing wheels and Kenda Aptor 1.75\" tires ensure a smooth, reliable ride. Reduced-diameter grips and kid-optimized gear ratios provide comfort
and control for growing hands and legs—perfect for young urban explorers.\u003c\/p\u003e"};
window._RestockRocketConfig.variantsInventoryPolicy = {56393232974207 : "deny",};
window._RestockRocketConfig.variantsInventoryQuantity = {56393232974207 : parseInt("1"),};
window._RestockRocketConfig.variantsPreorderCount = {56393232974207 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderCountForMarket = {56393232974207 : null,};
window._RestockRocketConfig.variantsPreorderMaxCount = {56393232974207 : parseInt(""),};
window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {56393232974207 : null,};
window._RestockRocketConfig.variantsShippingText = {56393232974207 : "",};
window._RestockRocketConfig.variantsShippingTextForMarket = {56393232974207 : null,};
window._RestockRocketConfig.selected_variant_id = 56393232974207;
window._RestockRocketConfig.selected_variant_available = window._RestockRocketConfig.product.variants.find(function(variant) { return vari
ant.id == window._RestockRocketConfig.selected_variant_id }).available;window._RestockRocketConfig.scriptUrlProduct = 'https://cdn.shopify.com/extensions/019c4de0-280f-760f-b566-2e2f8e837eb8/restock-rocket-shopify-454/assets/restockrocket-product.js'
window._RestockRocketConfig.scriptUrlCollection = 'https://cdn.shopify.com/extensions/019c4de0-280f-760f-b566-2e2f8e837eb8/restock-rocket-shopify-454/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
const LIQUID_CACHE_MAX_AGE = 2 * 60 * 60; // 2 hours in seconds
// Calculate Liquid cache freshness once at initialization
const liquidRenderedAt = window._RestockRocketConfig.liquidRenderedAt;
// Validate timestamp and calculate cache age
if (!liquidRende
redAt || typeof liquidRenderedAt !== 'number' || isNaN(liquidRenderedAt)) {
console.debug('STOQ - Invalid or missing liquidRenderedAt timestamp, assuming fresh');
window._RestockRocketConfig.isLiquidCacheFresh = true;
} else {
const now = Math.floor(Date.now() / 1000); // Current time in seconds
const liquidCacheAge = now - liquidRenderedAt; // Age in seconds
// Handle client clock ahead of server
if (liquidCacheAge
<