• <

    Header Image
    img src="//projektride.co.uk/cdn/shop/files/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849_2048x2048.png?v=1691610428" alt="Hire Kryptolok Standard U-Lock & 4 foot Kryptoflex cable" class="mfp-zoom-in-cur" id="32068917788898">
    <
    Home
       

    <
    {"id":8129336180962,"title":"Hire Kryptolok Standard U-Lock \u0026 4 foot Kryptoflex cable","handle":"kryptolok-standard-u-lock-with-4-foot-kryptoflex-cable-hire","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eA high security U-lock at a great price.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003eFeatures:\u003c\/b\u003e\u003c\/p\u003e\n\u003cul class=\"description-overview\"\u003e\n\u003cli\u003e12.7mm hardened performance steel shackle\u003c\/li\u003e\n\u003cli\u003eNew patent-pending hardened double deadbolt design gives additional protection against twist attacks\u003c\/li\u003e\n\u003cli\u003eHigh security disc-style cylinder is pick and drill resistant\u003c\/li\u003e\n\u003cli\u003eIncludes 2 stainless steel keys, with ergonomic design to reduce the amount of torque, and keep them from bending or breaking\u003c\/li\u003e\n\u003cli\u003eIncludes 120cm x 10mm Kryptoflex double looped cable to secure your front wheel or accessories\u003c\/li\u003e\n\u003cli\u003eNew dust cover\u003c\/li\u003e\n\u003cli\u003eIncludes flexframe-u bracket providing convenient multi-location u-lock transport\u003c\/li\u003e\n\u003cli\u003eProtective vinyl coating\u003c\/li\u003e\n\u003cli\u003eKey Safe Program\u003c\/li\u003e\n\u003cli\u003eProduct dimensions: 10.2cm x 22.9cm\u003c\/li\u003e\n\u003cli\u003eProduct weight: 1.66 kgs\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cspan\u003eProjektRide Bike Hire Edinburgh.\u003c\/span\u003e\u003c\/p\u003e","published_at":"2025-10-15T14:27:21+01:00","created_at":"2023-08-09T20:47:06+01:00","vendor":"Kryptonite","type":"Bike Hire - Equipment","tags":["spo-cs-disabled","spo-default","spo-disabled","spo-notify-me-disabled"],"price":0,"price_min":0,"price_max":0,"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":44210951880930,"title":"Default Title","option1":"Default Title","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":true,"featured_image":null,"available":true,"name":"Hire Kryptolok Standard U-Lock \u0026 4 foot Kryptoflex cable","public_title":null,"options":["Default Title"],"price":0,"weight":2000,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849.png?v=1691610428"],"featured_image":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849.png?v=1691610428","options":["Title"],"media":[{"alt":null,"id":32068917788898,"position":1,"preview_image":{"aspect_ratio":0.93,"height":1024,"width":952,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849.png?v=1691610428"},"aspect_ratio":0.93,"height":1024,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849.png?v=1691610428","width":952}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003eA high security U-lock at a great price.\u003c\/p\u003e\n\u003cp\u003e\u003cb\u003eFeatures:\u003c\/b\u003e\u003c\/p\u003e\n\u003cul class=\"description-overview\"\u003e\n\u003cli\u003e12.7mm hardened performance steel shackle\u003c\/li\u003e\n\u003cli\u003eNew patent-pending hardened double deadbolt design gives additional protection against twist attacks\u003c\/li\u003e\n\u003cli\u003eHigh security disc-style cylinder is pick and drill resistant\u003c\/li\u003e\n\u003cli\u003eIncludes 2 stainless steel keys, with ergonomic design to reduce the amount of torque, and keep them from bending or breaking\u003c\/li\u003e\n\u003cli\u003eIncludes 120cm x 10mm Kryptoflex double looped cable to secure your front wheel or accessories\u003c\/li\u003e\n\u003cli\u003eNew dust cover\u003c\/li\u003e\n\u003cli\u003eIncludes flexframe-u bracket providing convenient multi-location u-lock transport\u003c\/li\u003e\n\u003cli\u003eProtective vinyl coating\u003c\/li\u003e\n\u003cli\u003eKey Safe Program\u003c\/li\u003e\n\u003cli\u003eProduct dimensions: 10.2cm x 22.9cm\u003c\/li\u003e\n\u003cli\u003eProduct weight: 1.66 kgs\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cspan\u003eProjektRide Bike Hire Edinburgh.\u003c\/span\u003e\u003c\/p\u003e"}
    { "@context": "http://schema.org/", "@type": "Product", "name": "Hire Kryptolok Standard U-Lock \u0026 4 foot Kryptoflex cable", "url": "https:\/\/projektride.co.uk\/products\/kryptolok-standard-u-lock-with-4-foot-kryptoflex-cable-hire","image": [ "https:\/\/projektride.co.uk\/cdn\/shop\/files\/Screenshot2022-03-09at20.04.46_560e2033-8232-4bd3-a423-3ce8c9f11849_952x.png?v=1691610428" ],"description": "\nA high security U-lock at a great price.\nFeatures:\n\n12.7mm hardened performance steel shackle\nNew patent-pending hardened double deadbolt design gives additional protection against twist attacks\nHigh security disc-style cylinder is pick and drill resistant\nIncludes 2 stainless steel keys, with ergonomic design to reduce the amount of torque, and keep them from bending or breaking\nIncludes 120cm x 10mm Kryptoflex double looped cable to secure your front wheel or accessories\nNew dust cover\nIncludes flexframe-u bracket providing convenient multi-location u-lock transport\nProtective vinyl coating\nKey Safe Program\nProduct dimensions: 10.2cm x 22.9cm\nProduct weight: 1.66 kgs\n\nProjektRide Bike Hire Edinburgh.","brand": { "@type": "Thing", "name": "Kryptonite" },"offers": [{ "@type" : "Offer","availability" : "http://schema.org/InStock", "price" : 0.0, "priceCurrency" : "GBP", "url" : "https:\/\/projektride.co.uk\/products\/kryptolok-standard-u-lock-with-4-foot-kryptoflex-cable-hire?variant=44210951880930" } ] }
    <
    Hire Genesis Croix de Fer 30 (Drop Handlebars)

    <

    a class="product__media product__media--featured" href="/products/genesis-croix-de-fer" title="Hire Genesis Croix de Fer 30 (Drop Handlebars)" aria-label="Hire Genesis Croix de Fer 30 (Drop Handlebars)" style="background-image: url(//projektride.co.uk/cdn/shop/files/GenesisBroadway_3_600x.jpg?v=1745313082)">
    span class="visually-hidden">Hire Genesis Croix de Fer 30 (Drop Handlebars)
    > >

    div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/IMG_8048_600x.jpg?v=1745313399)">

    >
    • <<<
    • Hire Genesis Croix de Fer 20 (Flat Handlebars)
    • <
    a class="product__media product__media--featured" href="/products/hire-genesis-croix-de-fer-10-flat-handlebars" title="Hire Genesis Croix de Fer 20 (Flat Handlebars)" aria-label="Hire Genesis Croix de Fer 20 (Flat Handlebars)" style="background-image: url(//projektride.co.uk/cdn/shop/files/Genesis_Broadway_600x.jpg?v=1761139300)"> span class="visually-hidden">Hire Genesis Croix de Fer 20 (Flat Handlebars)> >
    >
    <
    Hire Genesis Tour De Fer (Flat Handlebars)
    5. Collect In StoreCollect your bike in store alongside all optional equipment. Please bring a form of identification (Driver's licence or Passport) to complete the booking.

    img src="//projektride.co.uk/cdn/shop/files/ride_confident_512x512.png?v=1690612532" alt="" class="icons-row__image">

    Edinburgh<6. Ride Confident!

    EH9 1QN

    #FeaturedImage--template--16831240536290__1d6422c8-bf97-41bc-a8a2-12b01ca58992 { --overlay-opacity: 0.2; }
    div class="featured-image__bg bg-pos-center-center" style="background-image: url('//projektride.co.uk/cdn/shop/files/356973949_266453656020526_96430508332420410_n_2048x.jpg?v=1690228321');background-attachment: fixed;">>

    _image":{"id":74358276260223,"product_id":14979883729279,"position":2,"created_at":"2025-03-14T11:59:24+00:00","updated_at":"2025-03-14T11:59:24+00:00","alt":null,"width":697,"height":833,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25167cspru_1_87b8d739-bd95-4dc7-b4e6-9352d6a93e96.webp?v=1741953564","variant_ids":[55196404416895,55196404449663,55196404482431,55196404515199]},"available":true,"name":"Yeti Cycles SB165 C-Series C2 Factory 29\" \/ 27.5\" Bike - Spruce \/ Medium","public_title":"Spruce \/ Medium","options":["Spruce","Medium"],"price":679900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":64739621994879,"position":2,"preview_image":{"aspect_ratio":0.837,"height":833,"width":697,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25167cspru_1_87b8d739-bd95-4dc7-b4e6-9352d6a93e96.webp?v=1741953564"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55196404482431,"title":"Spruce \/ Large","option1":"Spruce","o

    an":false,"selling_plan_allocations":[]},{"id":55196404515199,"title":"Spruce \/ Extra Large","option1":"Spruce","option2":"Extra Large","option3":null,"sku":"YCB25167CXLPSUDHC028701","requires_shipping":true,"taxable":true,"featured_image":{"id":74358276260223,"product_id":14979883729279,"position":2,"created_at":"2025-03-14T11:59:24+00:00","updated_at":"2025-03-14T11:59:24+00:00","alt":null,"width":697,"height":833,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25167cspru_1_87b8d739-bd95-4dc7-b4e6-9352d6a93e96.webp?v=1741953564","variant_ids":[55196404416895,55196404449663,55196404482431,55196404515199]},"available":true,"name":"Yeti Cycles SB165 C-Series C2 Factory 29\" \/ 27.5\" Bike - Spruce \/ Extra Large","public_title":"Spruce \/ Extra Large","options":["Spruce","Extra Large"],"price":679900,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":64739621994879,"position":2,"preview_image":{"aspect_ratio":0.837,"height":833,"width":697,"sr

    2027647,"position":3,"preview_image":{"aspect_ratio":0.837,"height":833,"width":697,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25167crawg_6.webp?v=1741953564"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55196404580735,"title":"Raw Gloss \/ Medium","option1":"Raw Gloss","option2":"Medium","option3":null,"sku":"YCB25167CMDRGGDHC028701","requires_shipping":true,"taxable":true,"featured_image":{"id":74358276292991,"product_id":14979883729279,"position":3,"created_at":"2025-03-14T11:59:24+00:00","updated_at":"2025-03-14T11:59:24+00:00","alt":null,"width":697,"height":833,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25167crawg_6.webp?v=1741953564","variant_ids":[55196404547967,55196404580735,55196404613503,55196404646271]},"available":true,"name":"Yeti Cycles SB165 C-Series C2 Factory 29\" \/ 27.5\" Bike - Raw Gloss \/ Medium","public_title":"Raw Gloss \/ Medium","options":["Raw Gloss","Medium"],"price":679900,"weight":0,"compare_at_price":null,"inventory_management":"shopify"

    re_at_price":null,"inventory_management":"shopify","barcode":"","featured_media":{"alt":null,"id":64739622027647,"position":3,"preview_image":{"aspect_ratio":0.837,"height":833,"width":697,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25167crawg_6.webp?v=1741953564"}},"requires_selling_plan":false,"selling_plan_allocations":[]},{"id":55196404646271,"title":"Raw Gloss \/ Extra Large","option1":"Raw Gloss","option2":"Extra Large","option3":null,"sku":"YCB25167CLGRGGDHC028701","requires_shipping":true,"taxable":true,"featured_image":{"id":74358276292991,"product_id":14979883729279,"position":3,"created_at":"2025-03-14T11:59:24+00:00","updated_at":"2025-03-14T11:59:24+00:00","alt":null,"width":697,"height":833,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25167crawg_6.webp?v=1741953564","variant_ids":[55196404547967,55196404580735,55196404613503,55196404646271]},"available":true,"name":"Yeti Cycles SB165 C-Series C2 Factory 29\" \/ 27.5\" Bike - Raw Gloss \/ Extra Large","public_title":"Raw Gloss \/ ExtI need equipment - can I hire this too?t_ratio":0.837,"height":833,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25167crawg_5.webp?v=1741953563","width":697},{"alt":null,"id":64739621994879,"position":2,"preview_image":{"aspect_ratio":0.837,"height":833,"width":697,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25167cspru_1_87b8d739-bd95-4dc7-b4e6-9352d6a93e96.webp?v=1741953564"},"aspect_ratio":0.837,"height":833,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25167cspru_1_87b8d739-bd95-4dc7-b4e6-9352d6a93e96.webp?v=1741953564","width":697},{"alt":null,"id":64739622027647,"position":3,"preview_image":{"aspect_ratio":0.837,"height":833,"width":697,"src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25167crawg_6.webp?v=1741953564"},"aspect_ratio":0.837,"height":833,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/files\/ycb25167crawg_6.webp?v=1741953564","width":697}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cdiv class=\"product info detailed\"\u003e\n\u0 u003e\n\u003c\/div\u003e\n\u003cdiv class=\"Yeti-Text_Team-BG_165MX\"\u003e\n\u003cdiv class=\"Yeti-Text_Team-Text_165MX\"\u003e\n\u003cp class=\"Yeti-Title\"\u003eYOU ASK. IT GIVES.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"Yeti-Text_Size-Guide-BG\"\u003e\n\u003cdiv class=\"Yeti-Text_Size-Guide-Text\"\u003e\n\u003cp class=\"Yeti-Title\"\u003eSIZE GUIDE\u003c\/p\u003e\n\u003cdiv id=\"sizechart\"\u003e\n\u003ctable id=\"sizechart\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd id=\"sizechart\"\u003e\u003cstrong\u003eSMALL\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e5'1\" - 5'7\"\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd id=\"sizechart\"\u003e\u003cstrong\u003eMEDIUM\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e\u003c\/td\u003e\n\u003ctd id=\"sizechart\"\u003e5'5\" - 5

    coded=\"true\"\u003e\n\u003cp class=\"Yeti-Title\"\u003eSPECIFICATION\u003c\/p\u003e\n\u003cp class=\"Yeti-Spec_text\"\u003eC \/ Series carbon fibre frame, threaded bottom bracket, fully enclosed internal cable routing, 148mm x 12mm BOOST dropouts, integrated derailleur hanger and axle.\u003c\/p\u003e\n\u003ctable class=\"YetiSpec\"\u003e\n\u003ctbody\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eFORK\u003c\/td\u003e\n\u003ctd\u003eFOX FACTORY 38 GRIP X2 \/ 170MM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eSHOCK\u003c\/td\u003e\n\u003ctd\u003eFOX FACTORY DHX2 2 POS LEVER (SM:400 MD:450 LG:500 XL:550 STEEL)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eTYRE (F)\u003c\/td\u003e\n\u003ctd\u003eMAXXIS ASSEGAI 2.5 EXO+\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eTYRE (R)\u003c\/td\u003e\n\u003ctd\u003eMAXXIS MINION DHR II 2.4 DD\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eROTOR (F)\u

    03e\n\u003c\/tr\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eCRANK\u003c\/td\u003e\n\u003ctd\u003eSRAM GX EAGLE 30T 170MM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eSADDLE\u003c\/td\u003e\n\u003ctd\u003eSILVERADO CUSTOM\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eBRAKES\u003c\/td\u003e\n\u003ctd\u003eSRAM CODE R\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eDERAILLEUR\u003c\/td\u003e\n\u003ctd\u003eSRAM GX EAGLE\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eCASSETTE\u003c\/td\u003e\n\u003ctd\u003eSRAM GX EAGLE 1275 10-52\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eCHAIN\u003c\/td\u003e\n\u003ctd\u003eSRAM GX EAGLE\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eSHIFTER\u003c\/td\u003e\n\u003ctd\u003eSRAM GX EAGLE\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eSEATPOST\u003c\/td\u003e\n\u0

    lazy\"\u003e\u003c\/picture\u003e\u003c\/div\u003e\n\u003cbr\u003e\n\u003cdiv id=\"overflowTable\"\u003e\n\u003ctable class=\"YetiGeo\"\u003e\n\u003ctbody\u003e\n\u003ctr class=\"c\"\u003e\n\u003ctd\u003e\u003c\/td\u003e\n\u003ctd\u003e180MM FORK\u003c\/td\u003e\n\u003ctd\u003eSM\u003c\/td\u003e\n\u003ctd\u003eMD\u003c\/td\u003e\n\u003ctd\u003eLG\u003c\/td\u003e\n\u003ctd\u003eXL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eA\u003c\/td\u003e\n\u003ctd\u003eSEAT TUBE LENGTH\u003c\/td\u003e\n\u003ctd\u003e365\u003c\/td\u003e\n\u003ctd\u003e400\u003c\/td\u003e\n\u003ctd\u003e440\u003c\/td\u003e\n\u003ctd\u003e470\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eB\u003c\/td\u003e\n\u003ctd\u003eEFF. TOP TUBE LENGTH\u003c\/td\u003e\n\u003ctd\u003e573\u003c\/td\u003e\n\u003ctd\u003e604\u003c\/td\u003e\n\u003ctd\u003e625\u003c\/td\u003e\n\u003ctd\u003e653\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eC\u003c\/td\u003e\n\u003ct"b\"\u003e\n\u003ctd\u003eG\u003c\/td\u003e\n\u003ctd\u003eESTIMATED BB HEIGHT\u003c\/td\u003e\n\u003ctd\u003e345\u003c\/td\u003e\n\u003ctd\u003e345\u003c\/td\u003e\n\u003ctd\u003e345\u003c\/td\u003e\n\u003ctd\u003e345\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eH\u003c\/td\u003e\n\u003ctd\u003eSTANDOVER\u003c\/td\u003e\n\u003ctd\u003e730\u003c\/td\u003e\n\u003ctd\u003e738\u003c\/td\u003e\n\u003ctd\u003e744\u003c\/td\u003e\n\u003ctd\u003e750\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"b\"\u003e\n\u003ctd\u003eI\u003c\/td\u003e\n\u003ctd\u003eHEADTUBE LENGTH\u003c\/td\u003e\n\u003ctd\u003e95\u003c\/td\u003e\n\u003ctd\u003e101\u003c\/td\u003e\n\u003ctd\u003e107\u003c\/td\u003e\n\u003ctd\u003e118\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"a\"\u003e\n\u003ctd\u003eJ\u003c\/td\u003e\n\u003ctd\u003eFORK (AXLE TO CROWN)\u003c\/td\u003e\n\u003ctd\u003e588\u003c\/td\u003e\n\u003ctd\u003e588\u003c\/td\u003e\n\u003ctd\u003e588\u003c\/td\u003e\n\u003ctd\u003e588\u003c\/td

    <

    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
    <
    !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