s":null,"delivery_at":"2025-07-26T09:20:18.169Z","delivery_type":"asap","quantity_limit_text":"{{ quantity }} units available for preorder","preorder_button_description_show_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
How to measure: Stand barefoot with your back straight and against a wall. Tuck a ruler or something that extends to the floor between your legs. Using both hands, and keeping it level, pull the ruler up into your crotch as if you were sitting on the saddle. Measure the distance from the top edge of the ruler to the ground to find your inside leg measurement. Your inside leg is very important to your final bike size so please measure carefully.
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":"2025-11-12T16:23:34+00:00","created_at":"2024-10-08T16:13:17+01:00","vendor":"Trek","type":"Bicycles","tags":["FX"],"price":82500,"price_min":82500,"price_max":82500,"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":46036040646882,"title":"Red \/ Small","option1":"Red","option2":"Small","option3":null,"sku":"5258489","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Trek FX 2 Disc Equipped - Red \/ Small","public_title":"Red \/ Small","options":["Red","Small"],"price":82500,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barc
{
"@context": "http://schema.org/",
"@type": "Product",
"name": "Trek FX 2 Disc Equipped",
"url": "https:\/\/projektride.co.uk\/products\/trek-fx-2-disc-equipped","image": [
"https:\/\/projektride.co.uk\/cdn\/shop\/files\/FX2DISCEQ_22_35018_A_PRIMARY_1440x.webp?v=1728400487"
],"description": "The FX 2 Disc Equipped is a stylish and versatile hybrid bike that comes with a whole suite of ride-ready accessories. Train, commute or ride for fun with the lightweight aluminium frame, 18 speeds, and semi-skinny tyres that are fast on the road and stable on loose terrain.\nIt's right for you if...You want a high-value hybrid bike with quality parts, ride-ready accessories and the superior all-weather stopping power of disc brakes.\nThe tech you getA lightweight aluminium frame with hydraulic disc brakes for all-weather stopping power, a Shimano drivetrain with 18 speeds and a wide range of gearing so you're never pedalling too hard or too soft, and all the accessories you need to ride!\nThe final wordThe FX 2 Disc Equipped is a go-anywhere hybrid bike with parts that perform on training rides, trips to the market or your morning commute. Plus it comes with a rear rack, mudguards and lights so you’re ready to ride straight away.\n \nHow tall are you?To measure your height, stand up straight, barefoot, with your back, heels, shoulders and head all touching a wall. While looking straight ahead, place a book or straight edge on your head and slowly push it against the wall. Your straight edge should be parallel with the floor. Mark the spot where the bottom of the book is touching the wall. The distance from the marked spot to the floor is your height.\nWhat is your inside leg?How to measure: Stand barefoot with your back straight and against a wall. Tuck a ruler or something that extends to the floor between your legs. Using both hands, and keeping it level, pull the ruler up into your crotch as if you were sitting on the saddle. Measure the distance from the top edge of the ruler to the ground to find your inside leg measurement. Your inside leg is very important to your final bike size so please measure carefully.\n\n\n\n\n\n\n\nSize\nRider Height\nInseam\n\n\n\n\nS\n\n155 - 165 cm\n5'1\" - 5'5\"\n\n\n72 - 78 cm\n28\" - 31\"\n\n\n\nM\n\n165 - 175 cm\n5'5\" - 5'9\"\n\n\n77 - 83 cm\n30\" - 33\"\n\n\n\nL\n\n175 - 186 cm\n5'9\" - 6'1\"\n\n\n82 - 88 cm\n32\" - 35\"\n\n\n\nXL\n\n186 - 197 cm\n6'1\" - 6'6\"\n\n\n87 - 93 cm\n34\" - 37\"\n\n\n\n\n\n\n\n\n\n","sku": "5258485","brand": {
"@type": "Thing",
"name": "Trek"
},"gtin8": "","offers": [{
"@type" : "Offer","sku": "5258489","availability" : "http://schema.org/InStock",
"price" : 825.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/trek-fx-2-disc-equipped?variant=46036040646882"
},
{
"@type" : "Offer","sku": "5258490","availability" : "http://schema.org/InStock",
"price" : 825.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/trek-fx-2-disc-equipped?variant=46036040614114"
},
{
"@type" : "Offer","sku": "5258485","availability" : "http://schema.org/InStock",
"price" : 825.0,
"priceCurrency" : "GBP",
"url" : "https:\/\/projektride.co.uk\/products\/trek-fx-2-disc-equipped?variant=46036057751778"
},
{
"@type" : "Offer","sku": "5258486","availability" : "http://schema.org/InS
div class="logo-list__slide-image" style="background-image: url(//projektride.co.uk/cdn/shop/files/IMG_0248_360x.jpg?v=1693300961); width: 120px; padding-top: 57.9%;">
<
<
<
Genesis Alloy 31.8mm -6 deg 100 mmContact Us
Track Service Progress
Insure Your Bike
Tyres :Cookie Policy
Refund policy
Workshop Prices
Delivery & Returns
Crossbar
INFORMATION
Gender :
Genesis reserves the right to change product specifications without notice. Genesis will always ensure that these changes do not detract from the ride experience of the bike.
{"id":8321457389794,"title":"Genesis Croix De Fer 40","handle":"genesis-croix-de-fer-40","description":"\u003cp data-mce-fragment=\"1\"\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\" data-mce-style=\"font-weight: 400;\"\u003eBuilt to go the distance.\u003c\/span\u003e\u003cspan s
les front and rear, tubeless ready rims and tyres, flat mount disc brakes, a third bottle mount, rack and guard mounts and fixings for Anything Cages on the forks complete the package.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cdiv class=\"card grid-item\"\u003e\n\u003cdiv class=\"card-header pl-0 pr-0\" id=\"specheadingrims\"\u003e\n\u003cdiv class=\"btn btn-link pl-0 pr-0 text-center text-md-left collapsed text-uppercase\" aria-controls=\"specrims\" aria-expanded=\"true\" data-target=\"#specrims\" data-toggle=\"collapse\"\u003e\u003cstrong\u003eBrake Type :\u003c\/strong\u003e\u003c\/div\u003e\n\u003cspan\u003e \u003c\/span\u003e\u003cspan\u003eHydraulic Disc\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"card grid-item\"\u003e\n\u003cdiv class=\"card-header pl-0 pr-0\" id=\"specheadingrims\"\u003e\n\u003cdiv class=\"btn btn-link pl-0 pr-0 text-center text-md-left collapsed text-uppe
:null,"requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Genesis Croix De Fer 40 - X-Small","public_title":"X-Small","options":["X-Small"],"price":180000,"weight":0,"compare_at_price":249999,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44891535081698,"title":"Small","option1":"Small","option2":null,"option3":null,"sku":null,"requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Genesis Croix De Fer 40 - Small","public_title":"Small","options":["Small"],"price":180000,"weight":0,"compare_at_price":249999,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44891535114466,"title":"Medium","option1":"Medium","option2":null,"option3":null,"sku":null,"requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Genesis Croix De Fer 40 - Medium","public_title":"Medium","options":["Medium"],"pric
[email protected]e":180000,"weight":0,"compare_at_price":249999,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44891535147234,"title":"Large","option1":"Large","option2":null,"option3":null,"sku":"GN11010LG","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Genesis Croix De Fer 40 - Large","public_title":"Large","options":["Large"],"price":180000,"weight":0,"compare_at_price":249999,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":44891535180002,"title":"X-Large","option1":"X-Large","option2":null,"option3":null,"sku":"GN11010XL","requires_shipping":true,"taxable":true,"featured_image":null,"available":false,"name":"Genesis Croix De Fer 40 - X-Large","public_title":"X-Large","options":["X-Large"],"price":180000,"weight":0,"compare_at_price":249999,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images"
l_4.jpg?v=1709550592","width":1534},{"alt":null,"id":32991146606818,"position":11,"preview_image":{"aspect_ratio":1.534,"height":1000,"width":1534,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/ftp_f_freewheel_imagessportlinefwbikesgn21060_detail_5.jpg?v=1709550592"},"aspect_ratio":1.534,"height":1000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/ftp_f_freewheel_imagessportlinefwbikesgn21060_detail_5.jpg?v=1709550592","width":1534},{"alt":null,"id":32991146639586,"position":12,"preview_image":{"aspect_ratio":1.498,"height":1000,"width":1498,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/ftp_f_freewheel_imagessportlinefwbikesgn21060_detail_7_grx_edit.jpg?v=1709550592"},"aspect_ratio":1.498,"height":1000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/ftp_f_freewheel_imagessportlinefwbikesgn21060_detail_7_grx_edit.jpg?v=1709550592","width":1498},{"alt":null,"id":32991146672354,"position":13,"preview_image":{"aspect_ratio":1.534,"height":1000,"width":1534
,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/ftp_f_freewheel_imagessportlinefwbikesgn21060_detail_8.jpg?v=1709550592"},"aspect_ratio":1.534,"height":1000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/ftp_f_freewheel_imagessportlinefwbikesgn21060_detail_8.jpg?v=1709550592","width":1534},{"alt":null,"id":32991146705122,"position":14,"preview_image":{"aspect_ratio":1.534,"height":1000,"width":1534,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/ftp_f_freewheel_imagessportlinefwbikesgn21060_detail_9.jpg?v=1709550592"},"aspect_ratio":1.534,"height":1000,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/ftp_f_freewheel_imagessportlinefwbikesgn21060_detail_9.jpg?v=1709550592","width":1534}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp data-mce-fragment=\"1\"\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\" data-mce-style=\"font-weight: 400;\"\u003eBuilt to go the distance.\u003c\/span\u003e\u003cspan style=\"fon
\"1\"\u003e\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\" data-mce-style=\"font-weight: 400;\"\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\" data-mce-style=\"font-weight: 400;\"\u003eThe ability to run up to a 45mm rear tyre and a 50mm front tyre on the provided 700c rims increase the all-terrain ability of the Croix - and it doesn't end there. If you want to experiment with 650B wheels, you could run up to a 44mm rear tyre and a 50mm front tyre.\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\" data-mce-style=\"font-weight: 400;\"\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\" data-mce-style=\"font-weight: 400;\"\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003c\/span\u003e\u003cspan style=\"font-weight: 400;\" data-mce-fragment=\"1\" data-mce-style=\"font-weight: 400;\"\u003eThru-axles front
and rear, tubeless ready rims and tyres, flat mount disc brakes, a third bottle mount, rack and guard mounts and fixings for Anything Cages on the forks complete the package.\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cbr data-mce-fragment=\"1\"\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cdiv class=\"card grid-item\"\u003e\n\u003cdiv class=\"card-header pl-0 pr-0\" id=\"specheadingrims\"\u003e\n\u003cdiv class=\"btn btn-link pl-0 pr-0 text-center text-md-left collapsed text-uppercase\" aria-controls=\"specrims\" aria-expanded=\"true\" data-target=\"#specrims\" data-toggle=\"collapse\"\u003e\u003cstrong\u003eBrake Type :\u003c\/strong\u003e\u003c\/div\u003e\n\u003cspan\u003e \u003c\/span\u003e\u003cspan\u003eHydraulic Disc\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"card grid-item\"\u003e\n\u003cdiv class=\"card-header pl-0 pr-0\" id=\"specheadingrims\"\u003e\n\u003cdiv class=\"btn btn-link pl-0 pr-0 text-center text-md-left collapsed text-uppercase\" ar
{
"@context": "http://schema.org/",
"@type": "Product",
"name": "Genesis Croix De Fer 40",
"url": "https:\/\/projektride.co.uk\/products\/genesis-croix-de-fer-40","image": [
"https:\/\/projektride.co.uk\/cdn\/shop\/products\/ftp_f_freewheel_imagessportlinefwbikesgn21060_side_grx_edit_1534x.jpg?v=1709550592"
],"description": "Built to go the distance.A modern classic, the Croix de Fer keeps on turning and this interpretation is our most rounded model yet.At its heart is the ever faithful Reynolds 725 tubing. Featured throughout, this is thin in comparison to regular chromoly, saving a little weight and enhancing the ride quality. Matched to our steel fork, this is a bike which gives a reassuring ride, even when loaded.That theme continues with a refined gravel \u0026amp; adventure suitable groupset providing a reliable shifting on and off road. We've gone for a 46\/30T chainset with Shimano GRX shifters and hydraulic brake callipers to match.The ability to run up to a 45mm rear tyre and a 50mm front tyre on the provided 700c rims increase the all-terrain ability of the Croix - and it doesn't end there. If you want to experiment with 650B wheels, you could run up to a 44mm rear tyre and a 50mm front tyre.Thru-axles front and rear, tubeless ready rims and tyres, flat mount disc brakes, a third bottle mount, rack and guard mounts and fixings for Anything Cages on the forks complete the package.\n\n \n\n\nBrake Type :\n Hydraulic Disc\n\n\n\n\nFork Material :\n Chromoly\n\n\n\n\nFrame Material :\n Steel\n\n\n\n\nBottom Bracket :\n Prowheel BB68+\n\n\n\n\nWheel Size :\n 700c\n\n\n\n\nBrake Levers :\n Shimano GRX ST-RX600 11 Speed\n\n\n\n\nIntended Use :\n Adventure, Gravel\n\n\n\n\nBrakes :\n Shimano GRX BR-RX400 Hydraulic Disc\n\n\n\n\nCassette Freewheel :\n Shimano CS-HG700-11 11-34T\n\n\n\n\nChain :\n KMX X11\n\n\n\n\nChain Set :\n Genesis RPL-521 TT 46\/30T\n\n\n\n\nFork :\n Chromoly Disc Fork With Anything Cage Mounts\n\n\n\n\nFront Derailleur :\n Shimano GRX FD-RX810\n\n\n\n\nGrip Tape :\n Genesis\n\n\n\n\nHeadset :\n PT-1770 EC34 Upper \/ EC34 Lower\n\n\n\n\nHubs :\n Formula Front - CL-712 \/ Rear - RXC-142S\n\n\n\n\nPedals :\n NW-91K With Cage\n\n\n\n\nRear Derailleur :\n Shimano GRX RD-RX810 Medium Cage\n\n\n\n\nRims :\n WTB ST i23 TCS 2.0 32H\n\n\n\n\nSaddle :\n Genesis\n\n\n\n\nSeat Post :\n Genesis Alloy 27.2 x 350 mm\n\n\n\n\nShifters :\n Shimano GRX ST-RX6
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#FeaturedImage--template--24610452406655__1645734801adfd4c07 { --overlay-opacity: 0.2; }
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
e,"insert_button_after_selector_search":null,"show_button_on_search":false,"app_proxy_path_prefix":"/apps/restockrocket-production","collection_link_selector":"","index_link_selector":"","page_link_selector":"","search_link_selector":"","collection_check_link_visibility":true,"collection_buttons_container":null,"index_buttons_container":null,"page_buttons_container":null,"search_buttons_container":null,"extension_enable_url_variant_detection":true,"extension_enable_value_variant_detection":true,"extension_value_variant_selector":"[name='id']","resubscribe_text":"This product is out of stock. Get notified when it's restocked again by entering your details below!","preorder_enabled":true,"preorder_buy_button_selector":null,"preorder_add_to_cart_button_selector":"","preorder_badge_selector":"","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_selec
tor":"form[action*=\"/cart/add\"]","preorder_collection_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_index_enabled":false,"preorder_index_form_selector":"form[action*=\"/cart/add\"]","preorder_index_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_page_enabled":false,"preorder_page_form_selector":"form[action*=\"/cart/add\"]","preorder_page_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_search_enabled":false,"preorder_search_form_selector":"form[action*=\"/cart/add\"]","preorder_search_add_to_cart_button_selector":"form[action*=\"/cart/add\"] button","preorder_collection_badge_selector":null,"preorder_index_badge_selector":null,"preorder_page_badge_selector":null,"preorder_search_badge_selector":null,"preorder_badge_selector_type":"afterend","preorder_collection_badge_selector_type":"afterend","preorder_button_child_selector":"span","preorder_button_disclaimer_insert_selector":"","preorder_button_disclaimer_insert_selector_
dow._RestockRocketConfig.product.variants.find(function(variant) { return variant.id == window._RestockRocketConfig.selected_variant_id }).available;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');
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
<<
maxRetries) {
console.debug(`STOQ - API not ready, retry ${attempt}/${maxRetries}`);
setTimeout(() => attemptCartCheck(attempt + 1), retryDelay);
} else {
console.debug('STOQ - API not loaded after max retries, skipping cart selling plan check');
}
}
attemptCartCheck();
}