a class="product__media product__media--featured"
href="/collections/surly/products/surly-straggler-frameset-black"
title="Surly Straggler Frameset - Black 700c"
aria-label="Surly Straggler Frameset - Black 700c"
style="background-image: url(//projektride.co.uk/cdn/shop/products/Screenshot2022-10-14at20.39.15_600x.png?v=1665776448)">
See More
>
Brake Rotors
Brake Pads
div class="product__media-hover-img product__media" style="background-image: url(//projektride.co.uk/cdn/shop/products/Screenshot2022-10-14at20.42.11_600x.png?v=1665776545)">Brake Spares
Headsets
Singular
_timer_style":"text","countdown_timer_text_color":"#000000","countdown_timer_background_color":"#f5f5f5","countdown_timer_border_radius":8,"countdown_timer_format":"DHMS","countdown_timer_use_schedule_dates":true,"countdown_timer_custom_start_date":null,"countdown_timer_custom_end_date":null,"countdown_timer_starts_text":null,"countdown_timer_ends_text":null,"updated_at":"2025-08-19T10:05:43.042Z","allow_mixed_cart":true}];window._RestockRocketConfig.integrations = [{"id":"15c94526-b6b8-4de1-9bc1-23b1ca52ddb0","shop_id":38436,"enabled":true,"page_types":["product","collection","index","search","page","cart","list-collections","article","blog"],"configuration":{"toastDuration":10000,"toastPosition":"bottom-right","enableXHRHijack":true,"enableFetchHijack":true,"quantityLimitDisabled":false},"type":"hijack","css_config":null,"js_config":null,"created_at":"2025-07-26T09:16:04.076Z","updated_at":"2025-07-26T09:16:04.076Z"}];window._RestockRocketConfig.obfuscateInventoryQuantity = false;window._RestockRocketConfigCustom Builds
Rider Care
ng 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 lo
Enigma<
Brakes
nt.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:Cycle To Work SchemesSee More
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();
}
Complete BrakesCleaners, Degreasers and Lubrication
div class="product-feature__image-bg product-feature__image-bg--square" style="background-image: url(//projektride.co.uk/cdn/shop/files/8A5BDC82-CAF8-4A46-9FF4-B5E6847EEDB3_1024x.jpg?v=1749892417);">
div class="logo-list__slide-image" style="background-image: url(//projektride.co.uk/cdn/shop/files/genesis_logo_360x.png?v=1710022398); width: 120px; padding-top: 14.2%;">>
Logo image
a href="https://shopify.projektride.co.uk/collections/parts-components?filter.p.vendor=OneUp,oneup" class="logo-list__slide-image" style="background-image: url(//projektride.co.uk/cdn/shop/files/Screenshot_2021-12-30_at_20.54.49_360x.png?v=1640897703); width: 120px; padding-top: 50.5%;">
div class="featured-image__bg bg-pos-left-center" style="background-image: url('//projektride.co.uk/cdn/shop/files/SKEBKDRVSYS_68338_06_1_2048x.jpg?v=1765620422');background-attachment: fixed;">
Finishing Kit>
Blue
See More
I have taken several bikes here for servicing and repairs and been consistently impressed by their friendly and helpful advice, and the quality of their repair works. They seem to give a very honest opinion on whether work is required or not.Stems
StemsRobert Moreton
Grips & Bar-Tape
★★★★★
Calum ThistleThese fantastic guys saved our holiday. We were bike trekking around Scotland, and after 3 days, we had serious brake problems. The oil was coming out of the calliper. I called 2 days before our arrival, and they promised to make some time for us. They fixed the problem very fast and they totally didn't take advantage of our situation. I know the prices very well, because I have done all my maintenance myself for many years, and I was surprised by the low cost. Thanks a lot guys.