a class="product__media product__media--featured"
href="/collections/genesis/products/genesis-croix-de-fer-12"
title="Genesis Croix De Fer 10"
aria-label="Genesis Croix De Fer 10"
style="background-image: url(//projektride.co.uk/cdn/shop/files/gn10710_detail_01_600x.jpg?v=1723720250)">
span class="visually-hidden">Genesis Croix De Fer 10
{"id":7799143989474,"title":"Ortlieb Seat Pack Quick Release 13L","handle":"ortlieb-seat-pack-quick-release-13l","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eHitting the trails on a mountain bike, racing up alpine passes on a road bike, or exploring the unpaved paths on a gravel bike. Whatever adventure you choose, the waterproof Seat-Pack QR is there to accompany you and keep your belongings safe. The innovative Seat-Lock fastening system enables quick attachment, no matter which bike you’re taking out. The fastening system can be removed completely residue-free, and with the help of a special adapter of just 4.3 centimetre in width, this bag can even be used with a dropper post.\u003ca class="product__media product__media--featured"
href="/collections/yeti/products/yeti-cycles-sb140-t-series-29-frame"
title="Yeti Cycles SB140 T-Series 29" Frame"
aria-label="Yeti Cycles SB140 T-Series 29" Frame"
style="background-image: url(//projektride.co.uk/cdn/shop/files/ycf25149tturq_1_600x.webp?v=1742310713)">
\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eThe bag’s reinforcement, four compression straps and compression valve ensure that your gear stays in place, and the entire bag remains stable without any swinging movement. Even bumpy and demanding trails are easy to ride without distraction. A protective plate on the underside of the saddlebag prevents damage in case of tire contact, and the quick bag attachment and removal are a real asset as well. The bag can be removed from the bike in mere seconds using the levers on the fastening system, and carried into your lodging for the evening with its contents completely dry and dust-free. The roll-top closure promises to keep your belongings dry, even in the foulest weather.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003eShould the 13-liter storage space run out, the elastic cord on the outside allows for the easily accessible stowing of additional items like a vest or jacket. However, the recommended maximum load of the Seat-Pack QR is four kilograms (2.2
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/files/ycb25167trawg_1_600x.webp?v=1741953631)">>
<
<
<
a class="product__media product__media--featured"
href="/products/life-systems-pocket-first-aid-kit-hire"
title="Life Systems Pocket First Aid Kit - HIRE"
aria-label="Life Systems Pocket First Aid Kit - HIRE"
style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot2022-02-24at21.18.22_5c0e6e2d-1913-4fd1-a90d-b486895960b6_600x.png?v=1691610357)">
span class="visually-hidden">Life Systems Pocket First Aid Kit - HIRE
];
if (value !== null && value !== undefined && value !== '') {
settings[key] = value;
}
});
} else {
console.debug('STOQ - No translated fields found for locale:', normalizedLocale);
}
delete settings.translations;
return settings;
} catch (e) {
console.debug('STOQ - error applying translations:', e);
return settings;
}
}
// First try to get settings from metafields with expiry check
Turquoise
If the item is showing in stock, we aim to post the product within 24 hours. Please allow 5 working days to receive the item. esponse.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(function(settings) {
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}`);
if(settings.enable_app) {
const hijackIntegration = window._RestockRocketConfig.integrations.find(function(integration) {
return integration.type === 'hijack' &&
Postage is free on orders over £50. Orders under £50, our postage charge is £3.99._RestockRocketConfig.pageType === 'product') {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlProduct);
} else if(hijackIntegration) {
createRestockRocketScript(window._RestockRocketConfig.scriptUrlCollection);
} else {
console.debug(`STOQ - no scripts enabled for ${window._RestockRocketConfig.pageType}`);
}
// Check and update cart selling plans after scripts are loaded
if (settings.preorder_enabled) {
updateCartSellingPlans();
}
// Dispatch custom event when app is loaded
const appLoadedEvent = new CustomEvent('stoq:loaded', {
detail: {
pageType: window._RestockRocketConfig.pageType,
enabled: settings.enable_app,
settings: settings
}
});
console.debug('STOQ - dispatching app loaded event');
window.dispatchEvent(appLoadedEvent);
}
}
function updateCartSellingPlans() {
// Wait for the API to be available with retries
const maxRetriesGreyEntry Level ServiceWe also have a physical store, if you are local please pop in -<
"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_restrict_country":false,"sms_default_channel":true,"optin_required":false,"optin_success_text":"Registration confirmed! You'll receive an alert when the product is restocked.","storefront_button_border_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"ProjektRide
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 explicitbike
<
span class="visually-hidden">Genesis Croix De Fer 20 >
From £40
>
Sale
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/products/ftp_f_freewheel_imagessportlinefwbikesgn21040_detail_010_600x.jpg?v=1709550485)">
From £40
>
Bottom bracket chase and Face