FrogParts & Components
Second-Hand BikesCockpitSee More
Handlebars
Grips & Bar-TapeEarly RiderShop All New Bikes
Shop All Second-Hand
Custom Builds
See More
ProjektRide Bike Shop Edinburgh
Brakes
Custom Build Inspiration
Mountain Bikes
Complete Brakes
Custom BuildsElectric Bikes
Custom Builds for sale
Services
Kids Bikes
Brake Pads
See More
Custom Build Inspiration
See More
Shop by Brand
Book a Service
Forks
Gloria
Rear Suspension
Amflow
Workshop
Track Your Service
Finishing KitWorkshop PricesYeti
Insure Your Bike
Surly
Parts & Components
TubesDate, new to old
Saddles
cketConfig.marketId = 382140642;window._RestockRocketConfig.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-11-11T14:27:02.312Z","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"
Hopery":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":"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,"shobutton type="submit" class="btn">SortSeat Posts & ClampsGloves
n_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\"]","preorder_index_add_to_cart_butto>
Sockslica) in two layers: an outer one (cap) which grants performances (dry \u0026amp; wet, mileage, contact feeling), an inner one (base) which, thanks to an higher gradient of those fibrils, slows down the penetration of foreign bodies towards underneath layers\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp data-mce-fragment=\"1\"\u003e\u003cstrong data-mce-fragment=\"1\"\u003eKey Benefits \u003c\/strong\u003e\u003c\/p\u003e\n\u003cul data-mce-fragment=\"1\"\u003e\n\u003cli data-mce-fragment=\"1\"\u003eTubeless-ready\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eGood rolling resistance\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eDry \u0026amp; wet grip,\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eSupreme comfort\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eExcellent puncture protection\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eMileage longevity\u003c\/li\u003e\n\u003cli data-mce-fragment=\"1\"\u003eSuperior handling for extreme safety feeling.\u003c\/li\u003e
Price
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
70700","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Pirelli Cinturato Velo Black 700c - 26c","public_title":"26c","options":["26c"],"price":5699,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]},{"id":43067643887842,"title":"28c","option1":"28c","option2":null,"option3":null,"sku":"PIR-3370800","requires_shipping":true,"taxable":true,"featured_image":null,"available":true,"name":"Pirelli Cinturato Velo Black 700c - 28c","public_title":"28c","options":["28c"],"price":5699,"weight":0,"compare_at_price":null,"inventory_management":"shopify","barcode":"","requires_selling_plan":false,"selling_plan_allocations":[]}],"images":["\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-07-03at18.07.57.png?v=1656868142","\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-07-03at18.08.11.png?v=1656868141","\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-07-03at18.08.Cockpit
Gears & Drivetrain
":1246,"src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-07-03at18.08.21.png?v=1656868142"},"aspect_ratio":1.056,"height":1180,"media_type":"image","src":"\/\/projektride.co.uk\/cdn\/shop\/products\/Screenshot2022-07-03at18.08.21.png?v=1656868142","width":1246}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cdiv class=\"title\" data-mce-fragment=\"1\"\u003eDESCRIPTION\u003c\/div\u003e\n\u003cdiv class=\"description\" data-mce-fragment=\"1\"\u003e\n\u003cp data-mce-fragment=\"1\"\u003eCinturato Velo is the tubeless-ready clincher tyre from Pirelli, crafted around protection and comfort, without compromising performances.\u003c\/p\u003e\n\u003cp data-mce-fragment=\"1\"\u003ePirelli’s experience and the reliability of SmartNET™ Silica technology combined with the tubeless-ready comfort and the resistance of the Armour Tech™ technology facilitated the creation of a new clincher tyre with a unique DNA, perfect for long-distances
Sell Your Bike 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 || Stems
E-bike Batteries and chargers
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(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._RestockRocketConf
Contact Usript(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._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:Grips & Bar-Tape
<
Wheels
Open search barrder-description{padding:10px 15px;margin-top:20px;display:flex;flex-direction:column;gap:10px;}.preorder-description-details{margin-bottom:0;display:flex;flex-direction:column;gap:10px;}.preorder-detail-item{display:flex;flex-direction:row;justify-content:start;gap:8px;align-items:center;}.restock-rocket-payment-widget{border:1px solid #ebebeb;margin-bottom:20px;}.restock-rocket-payment-option{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:15px 20px;}.restock-rocket-payment-option:not(:last-child){border-bottom:1px solid #ebebeb;}.restock-rocket-payment-input-container{flex:1 1 auto;min-width:0}.restock-rocket-preorder-discount-badge{background:#ebebeb;height:25px;line-height:25px;padding:0 15px;border-radius:25px;font-size:0.8rem;flex:0 0 auto}.restock-rocket-payment-input{margin-right:10px;margin-top:-3px;vertical-align:middle;margin-left:0;accent-color:#202223}.restock-rocket-payment-description{margin-top:4px;flex:1 1 100%}.restock-rocket-preorder-badge{font-size:13px;line-height:1;paddin
Headsets
Complete Wheels
FromBrake PadsAccessoriesRemiDemi
£
spo-cs-disabled
Bottles and CagesSpeed-Brake Spares
Splice
Locks
ForksMudguardsspo-defaultTo
Front Suspension
spo-disabled
Phone Holders
BrandFinishing Kit
Size
TyresBells
