<

  • <

  • Clothing

    Mon - Fri: 09:00 - 18:30
    Sat: 9:00 - 16:00Submit
    window.appBlockPlacements ||= []; if (window.klarnaAppBlocksManager) { window.klarnaAppBlocksManager.push({ productVariants: [{"id":46046725243106,"title":"Black \/ Purple \/ Small","option1":"Black \/ Purple","option2":"Small","option3":null,"sku":"5296080","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Purple \/ Small","public_title":"Black \/ Purple \/ Small","options":["Black \/ Purple","Small"],"price":845000,"we
    Tel"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725341410,"title":"Black \/ Purple \/ Extra Large","option1":"Black \/ Purple","option2":"Extra Large","option3":null,"sku":"5296083","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Purple \/ Extra Large","public_title":"Black \/ Purple \/ Extra Large","options":["Black \/ Purple","Extra Large"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725374178,"title":"Black \/ Teal \/ Small","option1":"Black \/ Teal","option2":"Small","option3":null,"sku":"5265271","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Teal \/ Small","public_title":"Black \/ Teal \/ Small","options":["Black \/ Teal","Small{"id":8681084748002,"title":"Trek Loft 7D EQ Step-Thru","handle":"trek-loft-7d-eq-step-thru","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cspan\u003eThis is your city. Ride like it. The Loft™ 7D is a lightweight commuter that puts the fun in functionality. 700c wheels and a foot-forward, upright riding position provide optimum speed, comfort and control. This modern-day classic is built to ride. It’s lightweight. It’s durable. It’s comfortable and designed to handle the rigours of the streets.\u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv data-v-5bd42f3c=\"\" data-v-05762449=\"\" id=\"pdl-collapse-item-7ixcvg\" name=\"productSpecsTabB2C\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-7ixcvg\" aria-describedby=\"pdl-collapse-content-7ixcvg\" class=\"\" aria-expanded=\"true\" qaid=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003e\u003cspan data-v-05762449=\"\" data-v-5bd42f3c=\"\" id=\"productSpecsTabB2C\"\u003eSpecs\u003c\/span\u003e\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-7ixcvg\" type=\"button\" class=\"pdl-collapse-item__header is-active items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentcolor\" aria-hidden=\"true\" role=\"presentation\" class=\"pdl-collapse-item__icon pdl-icon pdl-icon--size-24 is-active\" qaid=\"\"\u003e\u003cpath d=\"M0 0h24v24H0z\" fill=\"none\"\u003e\u003c\/path\u003e\u003cpath d=\"M19 13H5v-2h14v2z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-5bd42f3c=\"\" id=\"pdl-collapse-content-7ixcvg\" role=\"tabpanel\" aria-labelledby=\"pdl-collapse-head-7ixcvg\" class=\"pdl-collapse-item__wrap\" data-old-padding-top=\"\" data-old-padding-bottom=\"\" data-old-overflow=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"pdl-collapse-item__content\"\u003e\n\u003cdiv data-v-05762449=\"\"\u003e\n\u003csection id=\"trekProductSpecificationsComponentBOM\" data-magellan-target=\"trekProductSpecificationsComponentBOM\" class=\"details-list grid-container mb-6\"\u003e\n\u003cdiv role=\"tablist\" aria-multiselectable=\"true\" class=\"pdl-collapse pdp-spec-collapse\" qaid=\"pdp-spec-collapse\"\u003e\n\u003cp\u003e*Please note – spec applies to all sizes unless listed separately\u003c\/p\u003e\n\u003cdiv data-v-5bd42f3c=\"\" data-v-05762449=\"\" id=\"pdl-collapse-item-tg19w\" name=\"135\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-tg19w\" aria-describedby=\"pdl-collapse-content-tg19w\" class=\"\" aria-expanded=\"true\" qaid=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003eWheels\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-tg19w\" type=\"button\" class=\"pdl-collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentcolor\" aria-hiddenHeader Image ,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725472482,"title":"Black \/ Teal \/ Extra Large","option1":"Black \/ Teal","option2":"Extra Large","option3":null,"sku":"5265274","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Teal \/ Extra Large","public_title":"Black \/ Teal \/ Extra Large","options":["Black \/ Teal","Extra Large"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725505250,"title":"Carbon Black \/ Small","option1":"Carbon Black","option2":"Small","option3":null,"sku":"5326905","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Carbon Black \/ Small","public_title":"Carbon Black \/ Small","options":["Carbon Black","Small"],"price":845n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eSpokes\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003e14 g stainless steel\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-5bd42f3c=\"\" data-v-05762449=\"\" id=\"pdl-collapse-item-y33e4\" name=\"138\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-y33e4\" aria-describedby=\"pdl-collapse-content-y33e4\" class=\"\" aria-expanded=\"true\" qaid=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003eDrivetrain\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-y33e4\" type=\"button\" class=\"pdl-collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2
    0131 374 5324price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725603554,"title":"Carbon Black \/ Extra Large","option1":"Carbon Black","option2":"Extra Large","option3":null,"sku":"5326908","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Carbon Black \/ Extra Large","public_title":"Carbon Black \/ Extra Large","options":["Carbon Black","Extra Large"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725636322,"title":"Black \/ Oil Slick \/ Small","option1":"Black \/ Oil Slick","option2":"Small","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Oil Slick \/ Small","public_title":"Black \/ Oil Slick \/ Small","options":["Black \/ Oil Slick","Small"],"price":845000,"wdata-v-05762449=\"\"\u003eShimano Tourney RS45, 7-speed twist\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eRear derailleur\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eShimano Acera M360\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eCrank\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003e\u003ca data-v-05762449=\"\" href=\"https:\/\/www.trekbikes.com\/gb\/en_GB\/p\/W526973\"\u003eForged alloy 170 mm, 44t chainring w\/chainguard\u003c\/a\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eBottom bracket\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eTange LN3912, 68 mm, threaded cartridge, 118 mm spindle\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u ],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725734626,"title":"Black \/ Oil Slick \/ Extra Large","option1":"Black \/ Oil Slick","option2":"Extra Large","option3":null,"sku":"5265258","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Oil Slick \/ Extra Large","public_title":"Black \/ Oil Slick \/ Extra Large","options":["Black \/ Oil Slick","Extra Large"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725767394,"title":"Black \/ Red \/ Small","option1":"Black \/ Red","option2":"Small","option3":null,"sku":"5326909","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Red \/ Small","public_title":"Black \/ Red \/ Small","optidiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003eComponents\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-yhzsp4\" type=\"button\" class=\"pdl-collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentcolor\" aria-hidden=\"true\" role=\"presentation\" class=\"pdl-collapse-item__icon pdl-icon pdl-icon--size-24 is-active\" qaid=\"\"\u003e\u003cpath d=\"M0 0h24v24H0z\" fill=\"none\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-5bd42f3c=\"\" id=\"pdl-collapse-content-yhzsp4\" role=\"tabpanel\" aria-labelledby=\"pdl-collapse-head-yhzsp4\" class=\"pdl-collapse-item__wrap\" data-old-padding-top=\"\" data-old-padding-bottom=\"\" data-old-overflow=\"\
    "],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725865698,"title":"Black \/ Red \/ Extra Large","option1":"Black \/ Red","option2":"Extra Large","option3":null,"sku":"5326912","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Red \/ Extra Large","public_title":"Black \/ Red \/ Extra Large","options":["Black \/ Red","Extra Large"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}], templateName: 'product', dataKey: 'top-strip-promotion-badge', storefrontCurrency: 'GBP', storefrontCountry: 'GB', storefrontLanguage: 'en', shopLocale: 'en', shopDomain: 'projektride.co.uk', variantPrice: '845000', cartPrice: '0', selector: 'shopify-osm-A"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eGrips\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eElectra custom hand-stitched\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eStem\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eForged alloy, quill type, 80 mm, 25.4 mm clamp\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eHead set\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eHi-Ten Steel, 1-inch, threaded\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eBrake\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eAlloy, long reach, dual-pivot calliper\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eBrake lever\u003c\/th\u003e\n\
    \/ Medium","options":["Black \/ Purple","Medium"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725308642,"title":"Black \/ Purple \/ Large","option1":"Black \/ Purple","option2":"Large","option3":null,"sku":"5296082","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Purple \/ Large","public_title":"Black \/ Purple \/ Large","options":["Black \/ Purple","Large"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725341410,"title":"Black \/ Purple \/ Extra Large","option1":"Black \/ Purple","option2":"Extra Large","option3":null,"sku":"5296083","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Purple \/ Extra Large","public_title"dth=\"24px\" height=\"24px\" fill=\"currentcolor\" aria-hidden=\"true\" role=\"presentation\" class=\"pdl-collapse-item__icon pdl-icon pdl-icon--size-24 is-active\" qaid=\"\"\u003e\u003cpath d=\"M0 0h24v24H0z\" fill=\"none\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-5bd42f3c=\"\" id=\"pdl-collapse-content-i9d9b9\" role=\"tabpanel\" aria-labelledby=\"pdl-collapse-head-i9d9b9\" class=\"pdl-collapse-item__wrap\" data-old-padding-top=\"\" data-old-padding-bottom=\"\" data-old-overflow=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"pdl-collapse-item__content\"\u003e\n\u003ctable data-v-05762449=\"\" aria-label=\"Specifications\" class=\"sprocket__table spec\"\u003e\n\u003ctbody data-v-05762449=\"\"\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"2\" scope=\"row\"\u003e*Light\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003e\n\u003cEdinburghedium","public_title":"Black \/ Red \/ Medium","options":["Black \/ Red","Medium"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725832930,"title":"Black \/ Red \/ Large","option1":"Black \/ Red","option2":"Large","option3":null,"sku":"5326911","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Red \/ Large","public_title":"Black \/ Red \/ Large","options":["Black \/ Red","Large"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725865698,"title":"Black \/ Red \/ Extra Large","option1":"Black \/ Red","option2":"Extra Large","option3":null,"sku":"5326912","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Red \/ Extra Large","publort and control. This modern-day classic is built to ride. It’s lightweight. It’s durable. It’s comfortable and designed to handle the rigours of the streets.\u003c\/span\u003e\u003c\/p\u003e\n\u003cdiv data-v-5bd42f3c=\"\" data-v-05762449=\"\" id=\"pdl-collapse-item-7ixcvg\" name=\"productSpecsTabB2C\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-7ixcvg\" aria-describedby=\"pdl-collapse-content-7ixcvg\" class=\"\" aria-expanded=\"true\" qaid=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003e\u003cspan data-v-05762449=\"\" data-v-5bd42f3c=\"\" id=\"productSpecsTabB2C\"\u003eSpecs\u003c\/span\u003e\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-7ixcvg\" type=\"button\" class=\"pdl-collapse-item__header is-active items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" wi
    03e\n\u003cp\u003e*Please note – spec applies to all sizes unless listed separately\u003c\/p\u003e\n\u003cdiv data-v-5bd42f3c=\"\" data-v-05762449=\"\" id=\"pdl-collapse-item-tg19w\" name=\"135\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-tg19w\" aria-describedby=\"pdl-collapse-content-tg19w\" class=\"\" aria-expanded=\"true\" qaid=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003eWheels\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-tg19w\" type=\"button\" class=\"pdl-collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentcolor\" aria-hidden=\"true\" role=\"presentation\" class=\"pdl-collapse-item__icon pdl-icon pdl-icon--size-24 is-active\" qaid=\"\"\u003e\u003cpath d=\"M0 0h03e\n\u003ctd data-v-05762449=\"\"\u003e14 g stainless steel\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-5bd42f3c=\"\" data-v-05762449=\"\" id=\"pdl-collapse-item-y33e4\" name=\"138\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-y33e4\" aria-describedby=\"pdl-collapse-content-y33e4\" class=\"\" aria-expanded=\"true\" qaid=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003eDrivetrain\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-y33e4\" type=\"button\" class=\"pdl-collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentcolor\" aria-hidden=\"true\" role=\"presentation\" class=\"p
    3cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eRear derailleur\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eShimano Acera M360\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eCrank\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003e\u003ca data-v-05762449=\"\" href=\"https:\/\/www.trekbikes.com\/gb\/en_GB\/p\/W526973\"\u003eForged alloy 170 mm, 44t chainring w\/chainguard\u003c\/a\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eBottom bracket\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eTange LN3912, 68 mm, threaded cartridge, 118 mm spindle\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" rowspan=\"1\" scope=\"row\"\u003eCassette\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eShimano TZ31 freewheel, 14-34, 7 speed [p15]\u003c\/td\u003e\n\u003c\/tr\
    t-i9d9b9\" class=\"\" aria-expanded=\"true\" qaid=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003eAccessories\u003c\/div\u003e\n\u003cbutton data-v-5bd42f3c=\"\" id=\"pdl-collapse-head-i9d9b9\" type=\"button\" class=\"pdl-collapse-item__header is-active flex-row-reverse items-center\" tabindex=\"0\"\u003e\u003csvg data-v-1e7396ba=\"\" data-v-5bd42f3c=\"\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 24 24\" width=\"24px\" height=\"24px\" fill=\"currentcolor\" aria-hidden=\"true\" role=\"presentation\" class=\"pdl-collapse-item__icon pdl-icon pdl-icon--size-24 is-active\" qaid=\"\"\u003e\u003cpath d=\"M0 0h24v24H0z\" fill=\"none\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-5bd42f3c=\"\" id=\"pdl-collapse-content-i9d9b9\" role=\"tabpanel\" aria-labelledby=\"pdl-collapse-head-i9d9b9\" class=\"pdl-collapse-item__wrap\" data-ol
    nd\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003e\u003ca data-v-05762449=\"\" href=\"https:\/\/www.trekbikes.com\/gb\/en_GB\/p\/W299867\"\u003eKickstand\u003c\/a\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr data-v-05762449=\"\"\u003e\n\u003cth data-v-05762449=\"\" scope=\"row\"\u003eExtras\u003c\/th\u003e\n\u003ctd data-v-05762449=\"\"\u003eRing lock mounts, water bottle\/accessory mounts, painted chain guard, stainless steel and anti-rust hardware\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-5bd42f3c=\"\" data-v-05762449=\"\" id=\"pdl-collapse-item-ea1wm\" name=\"147\" class=\"pdl-collapse-item is-active\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" role=\"tab\" aria-controls=\"pdl-collapse-content-ea1wm\" aria-describedby=\"pdl-collapse-content-ea1wm\" class=\"\" aria-expanded=\"true\" qaid=\"\"\u003e\n\u003cdiv data-v-5bd42f3c=\"\" class=\"flex items-center flex-grow\"\u003eWeight\u003c\/div\u003e

    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._Re
    • stockRocketConfig.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_placeholder":"Name","storefront_form_customer_name_error":"Please enter your name","storefront_form_did_you_mean_error":"Did you mean %{suggested_email}? Or use %{current_email}","form_customer_name_enabled":false,"form_customer_name_required":false,"css_config":"","js_config":null,"collect_promotion_consent":false,"storefront_form_promotion_consent_label":"Notify me about other news, sales, discounts & offers too","show_button_on_collection":false,"sms_default_country":"us","sms_allowed_couh_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":"","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\"]","pr eorder_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_teru003c\/p\u003e\n\u003cp class=\"m-0\"\u003e6'1\" - 6'6\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003ctd data-v-3ac87600=\"\"\u003e\n\u003cp class=\"m-0\"\u003e87 - 93 cm\u003c\/p\u003e\n\u003cp class=\"m-0\"\u003e34\" - 37\"\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-05762449=\"\" class=\"rider-sizing__dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection data-v-05762449=\"\" id=\"GeometryComponent\" data-magellan-target=\"GeometryComponent\" class=\"sizing-and-fit-aftermarket-component sizing-table grid-container mb-6\"\u003e\u003c\/section\u003e","published_at":"2024-10-12T10:44:20+01:00","created_at":"2024-10-12T10:44:20+01:00","vendor":"Trek","type":"Bicycles","tags":["Speed Concept"],"price":845000,"price_min":845000,"price_max":845000,"available":false,"price_varies":false,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at _price_varies":false,"variants":[{"id":46046725243106,"title":"Black \/ Purple \/ Small","option1":"Black \/ Purple","option2":"Small","option3":null,"sku":"5296080","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Purple \/ Small","public_title":"Black \/ Purple \/ Small","options":["Black \/ Purple","Small"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725275874,"title":"Black \/ Purple \/ Medium","option1":"Black \/ Purple","option2":"Medium","option3":null,"sku":"5296081","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Purple \/ Medium","public_title":"Black \/ Purple \/ Medium","options":["Black \/ Purple","Medium"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":f
    • alse,"selling_plan_allocations":[]},{"id":46046725308642,"title":"Black \/ Purple \/ Large","option1":"Black \/ Purple","option2":"Large","option3":null,"sku":"5296082","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Purple \/ Large","public_title":"Black \/ Purple \/ Large","options":["Black \/ Purple","Large"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725341410,"title":"Black \/ Purple \/ Extra Large","option1":"Black \/ Purple","option2":"Extra Large","option3":null,"sku":"5296083","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Purple \/ Extra Large","public_title":"Black \/ Purple \/ Extra Large","options":["Black \/ Purple","Extra Large"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode": "","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725374178,"title":"Black \/ Teal \/ Small","option1":"Black \/ Teal","option2":"Small","option3":null,"sku":"5265271","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Teal \/ Small","public_title":"Black \/ Teal \/ Small","options":["Black \/ Teal","Small"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725406946,"title":"Black \/ Teal \/ Medium","option1":"Black \/ Teal","option2":"Medium","option3":null,"sku":"5265272","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Teal \/ Medium","public_title":"Black \/ Teal \/ Medium","options":["Black \/ Teal","Medium"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selllling_plan_allocations":[]},{"id":46046725570786,"title":"Carbon Black \/ Large","option1":"Carbon Black","option2":"Large","option3":null,"sku":"5326907","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Carbon Black \/ Large","public_title":"Carbon Black \/ Large","options":["Carbon Black","Large"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725603554,"title":"Carbon Black \/ Extra Large","option1":"Carbon Black","option2":"Extra Large","option3":null,"sku":"5326908","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Carbon Black \/ Extra Large","public_title":"Carbon Black \/ Extra Large","options":["Carbon Black","Extra Large"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"sell ing_plan_allocations":[]},{"id":46046725636322,"title":"Black \/ Oil Slick \/ Small","option1":"Black \/ Oil Slick","option2":"Small","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Oil Slick \/ Small","public_title":"Black \/ Oil Slick \/ Small","options":["Black \/ Oil Slick","Small"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":46046725669090,"title":"Black \/ Oil Slick \/ Medium","option1":"Black \/ Oil Slick","option2":"Medium","option3":null,"sku":"","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek Speed Concept SLR 7 - Black \/ Oil Slick \/ Medium","public_title":"Black \/ Oil Slick \/ Medium","options":["Black \/ Oil Slick","Medium"],"price":845000,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_sellin/div\u003e\n\u003c\/div\u003e\n\u003cdiv data-v-05762449=\"\" class=\"rider-sizing__dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection data-v-05762449=\"\" id=\"GeometryComponent\" data-magellan-target=\"GeometryComponent\" class=\"sizing-and-fit-aftermarket-component sizing-table grid-container mb-6\"\u003e\u003c\/section\u003e"}; window._RestockRocketConfig.variantsInventoryPolicy = {46046725243106 : "deny",46046725275874 : "deny",46046725308642 : "deny",46046725341410 : "deny",46046725374178 : "deny",46046725406946 : "deny",46046725439714 : "deny",46046725472482 : "deny",46046725505250 : "deny",46046725538018 : "deny",46046725570786 : "deny",46046725603554 : "deny",46046725636322 : "deny",46046725669090 : "deny",46046725701858 : "deny",46046725734626 : "deny",46046725767394 : "deny",46046725800162 : "deny",46046725832930 : "deny",46046725865698 : "deny",}; window._RestockRocketConfig.variantsInventoryQuantity = {46046725243106 : parseInt("0"),460467 25275874 : parseInt("0"),46046725308642 : parseInt("0"),46046725341410 : parseInt("0"),46046725374178 : parseInt("0"),46046725406946 : parseInt("0"),46046725439714 : parseInt("0"),46046725472482 : parseInt("0"),46046725505250 : parseInt("0"),46046725538018 : parseInt("0"),46046725570786 : parseInt("0"),46046725603554 : parseInt("0"),46046725636322 : parseInt("0"),46046725669090 : parseInt("0"),46046725701858 : parseInt("0"),46046725734626 : parseInt("0"),46046725767394 : parseInt("0"),46046725800162 : parseInt("0"),46046725832930 : parseInt("0"),46046725865698 : parseInt("0"),}; window._RestockRocketConfig.variantsPreorderCount = {46046725243106 : parseInt(""),46046725275874 : parseInt(""),46046725308642 : parseInt(""),46046725341410 : parseInt(""),46046725374178 : parseInt(""),46046725406946 : parseInt(""),46046725439714 : parseInt(""),46046725472482 : parseInt(""),46046725505250 : parseInt(""),46046725538018 : parseInt(""),46046725570786 : parseInt(""),46046725603554 : parseInt(""),46046725636322 : pars
    eInt(""),46046725669090 : parseInt(""),46046725701858 : parseInt(""),46046725734626 : parseInt(""),46046725767394 : parseInt(""),46046725800162 : parseInt(""),46046725832930 : parseInt(""),46046725865698 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderCountForMarket = {46046725243106 : null,46046725275874 : null,46046725308642 : null,46046725341410 : null,46046725374178 : null,46046725406946 : null,46046725439714 : null,46046725472482 : null,46046725505250 : null,46046725538018 : null,46046725570786 : null,46046725603554 : null,46046725636322 : null,46046725669090 : null,46046725701858 : null,46046725734626 : null,46046725767394 : null,46046725800162 : null,46046725832930 : null,46046725865698 : null,}; window._RestockRocketConfig.variantsPreorderMaxCount = {46046725243106 : parseInt(""),46046725275874 : parseInt(""),46046725308642 : parseInt(""),46046725341410 : parseInt(""),46046725374178 : parseInt(""),46046725406946 : parseInt(""),46046725439714 : parseInt(""),46046725472482 : parseInt(""),46046725505250 : parseInt(""),46046725538018 : parseInt(""),46046725570786 : parseInt(""),46046725603554 : parseInt(""),46046725636322 : parseInt(""),46046725669090 : parseInt(""),46046725701858 : parseInt(""),46046725734626 : parseInt(""),46046725767394 : parseInt(""),46046725800162 : parseInt(""),46046725832930 : parseInt(""),46046725865698 : parseInt(""),}; window._RestockRocketConfig.variantsPreorderMaxCountForMarket = {46046725243106 : null,46046725275874 : null,46046725308642 : null,46046725341410 : null,46046725374178 : null,46046725406946 : null,46046725439714 : null,46046725472482 : null,46046725505250 : null,46046725538018 : null,46046725570786 : null,46046725603554 : null,46046725636322 : null,46046725669090 : null,46046725701858 : null,46046725734626 : null,46046725767394 : null,46046725800162 : null,46046725832930 : null,46046725865698 : null,}; window._RestockRocketConfig.variantsShippingText = {46046725243106 : "",46046725275874 : "",46046725308642 : "",46046725341410 : "",46046725374178 : "",46046725406946 : "",46046725439714 : "",46046725472482 : "",46046725505250 : "",46046725538018 : "",46046725570786 : "",46046725603554 : "",46046725636322 : "",46046725669090 : "",46046725701858 : "",46046725734626 : "",46046725767394 : "",46046725800162 : "",46046725832930 : "",46046725865698 : "",}; window._RestockRocketConfig.variantsShippingTextForMarket = {46046725243106 : null,46046725275874 : null,46046725308642 : null,46046725341410 : null,46046725374178 : null,46046725406946 : null,46046725439714 : null,46046725472482 : null,46046725505250 : null,46046725538018 : null,46046725570786 : null,46046725603554 : null,46046725636322 : null,46046725669090 : null,46046725701858 : null,46046725734626 : null,46046725767394 : null,46046725800162 : null,46046725832930 : null,46046725865698 : null,}; window._RestockRocketConfig.selected_variant_id = 46046725243106; 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 < 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.updateCartSellingPlans() .then(hasUpdates => { if (hasUpdates) { console.debug('STOQ - cart selling plans updated successfully'); } else { console.debug('STOQ - no cart selling plan updates needed'); } }) .catch(error => { console.error('STOQ - error updating cart selling plans:', error); }); } }); } // First try to get settings from metafields with expiry check const cachedSettings = window._RestockRocketConfig.cachedSettings; const validCachedSettings = cachedSettings ? checkSettingsExpiry(cac hedSettings) : null; if (validCachedSettings) { console.debug('STOQ - using cached settings'); initializeScripts(validCachedSettings); } else { console.debug('STOQ - fetching fresh settings'); const headers = { 'X-Shopify-Shop-Domain': window._RestockRocketConfig.shop || window.Shopify.shop, 'ngrok-skip-browser-warning': 'skip' }; if (window.Shopify?.theme?.role === 'main') { headers['X-Shopify-Theme-Schema-Name'] = window.Shopify.theme.schema_name; headers['X-Shopify-Theme-Schema-Version'] = window.Shopify.theme.schema_version; headers['X-Shopify-Theme-Store-Id'] = window.Shopify.theme.theme_store_id; } fetch( `${window._RestockRocketConfig.host}/api/v1/setting.json?translation_locale=${window._RestockRocketConfig.normalizedLocale}`, { headers } ) .then(function(response) { if (!response.ok) { throw new Error('Network response was not ok'); } return response.json(); }) .then(function(set
    tings) { initializeScripts(settings); }) .catch(function(error) { // If request failed and we have cached settings (even if expired), use them as fallback if (cachedSettings) { console.debug('STOQ - using expired cached settings as fallback'); initializeScripts(cachedSettings); } else { console.error('STOQ - failed to load settings:', error); } }) .catch(function(e) { console.error(e) }) } function initializeScripts(settings) { settings = applyTranslations(settings); window._RestockRocketConfig.settings = settings; console.debug(`STOQ - settings configured for ${window._RestockRocketConfig.pageType}`); // Setup cart selling plan updater BEFORE loading any scripts to avoid race conditions setupCartSellingPlanUpdater(settings); if(settings.enable_app) { const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) { return integration.type === 'hijack' && i ntegration.enabled && integration.page_types.includes(window._RestockRocketConfig.pageType); }) if(window._RestockRocketConfig.pageType === 'collection' && (settings.show_button_on_collection || settings.preorder_collection_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'index' && (settings.show_button_on_index || settings.preorder_index_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'search' && (settings.show_button_on_search || settings.preorder_search_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._RestockRocketConfig.pageType === 'page' && (settings.show_button_on_page || settings.preorder_page_enabled)) { createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection); } else if(window._R